diff --git a/.github/conda-env/doctest-env.yml b/.github/conda-env/doctest-env.yml index ab7965b7b..4c0d36728 100644 --- a/.github/conda-env/doctest-env.yml +++ b/.github/conda-env/doctest-env.yml @@ -7,9 +7,10 @@ dependencies: - numpy - matplotlib - scipy - - sphinx + - sphinx<8.2 - sphinx_rtd_theme - ipykernel - nbsphinx - docutils - numpydoc + - sphinx-copybutton diff --git a/.github/conda-env/test-env.yml b/.github/conda-env/test-env.yml index 6731443ab..b0e6c3cea 100644 --- a/.github/conda-env/test-env.yml +++ b/.github/conda-env/test-env.yml @@ -9,3 +9,4 @@ dependencies: - numpy - matplotlib - scipy + - numpydoc diff --git a/.github/scripts/set-conda-test-matrix.py b/.github/scripts/set-conda-test-matrix.py index 954480cb0..6bcd0fa6f 100644 --- a/.github/scripts/set-conda-test-matrix.py +++ b/.github/scripts/set-conda-test-matrix.py @@ -1,19 +1,16 @@ -""" set-conda-test-matrix.py +"""Create test matrix for conda packages in OS/BLAS test matrix workflow.""" -Create test matrix for conda packages -""" -import json, re +import json from pathlib import Path +import re osmap = {'linux': 'ubuntu', 'osx': 'macos', 'win': 'windows', } -blas_implementations = ['unset', 'Generic', 'OpenBLAS', 'Intel10_64lp'] - -combinations = {'ubuntu': blas_implementations, - 'macos': blas_implementations, +combinations = {'ubuntu': ['unset', 'Generic', 'OpenBLAS', 'Intel10_64lp'], + 'macos': ['unset', 'Generic', 'OpenBLAS'], 'windows': ['unset', 'Intel10_64lp'], } diff --git a/.github/scripts/set-pip-test-matrix.py b/.github/scripts/set-pip-test-matrix.py index ed18239d0..a28a63240 100644 --- a/.github/scripts/set-pip-test-matrix.py +++ b/.github/scripts/set-pip-test-matrix.py @@ -1,7 +1,5 @@ -""" set-pip-test-matrix.py +"""Create test matrix for pip wheels in OS/BLAS test matrix workflow.""" -Create test matrix for pip wheels -""" import json from pathlib import Path diff --git a/.github/workflows/doctest.yml b/.github/workflows/doctest.yml index edf1f163f..590d4a97f 100644 --- a/.github/workflows/doctest.yml +++ b/.github/workflows/doctest.yml @@ -13,14 +13,13 @@ jobs: uses: actions/checkout@v3 - name: Setup Conda - uses: conda-incubator/setup-miniconda@v2 + uses: conda-incubator/setup-miniconda@v3 with: python-version: 3.12 activate-environment: doctest-env environment-file: .github/conda-env/doctest-env.yml miniforge-version: latest - miniforge-variant: Mambaforge - channels: conda-forge + channels: conda-forge,defaults channel-priority: strict auto-update-conda: false auto-activate-base: false @@ -37,8 +36,15 @@ jobs: make html make doctest + - name: Run pytest + shell: bash -l {0} + working-directory: doc + run: | + make html + PYTHONPATH=../ pytest + - name: Archive results - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: doctest-output path: doc/_build/doctest/output.txt diff --git a/.github/workflows/install_examples.yml b/.github/workflows/install_examples.yml index cfbf40fe7..6893a99fb 100644 --- a/.github/workflows/install_examples.yml +++ b/.github/workflows/install_examples.yml @@ -20,7 +20,8 @@ jobs: --quiet --yes \ python=3.12 pip \ numpy matplotlib scipy \ - slycot pmw jupyter + slycot pmw jupyter \ + ipython!=9.0 - name: Install from source run: | diff --git a/.github/workflows/os-blas-test-matrix.yml b/.github/workflows/os-blas-test-matrix.yml index 0e5fd25fc..263afb7a4 100644 --- a/.github/workflows/os-blas-test-matrix.yml +++ b/.github/workflows/os-blas-test-matrix.yml @@ -9,7 +9,7 @@ on: - .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 @@ -71,14 +71,14 @@ jobs: unset | Generic | Apple ) ;; # Found in system OpenBLAS ) brew install openblas - echo "BLAS_ROOT=/usr/local/opt/openblas/" >> $GITHUB_ENV - echo "LAPACK_ROOT=/usr/local/opt/openblas/" >> $GITHUB_ENV + echo "LDFLAGS=-L/opt/homebrew/opt/openblas/lib" >> $GITHUB_ENV + echo "CPPFLAGS=-I/opt/homebrew/opt/openblas/include" >> $GITHUB_ENV ;; *) echo "bla_vendor option ${{ matrix.bla_vendor }} not supported" exit 1 ;; esac - echo "FC=gfortran-11" >> $GITHUB_ENV + echo "FC=gfortran-14" >> $GITHUB_ENV - name: Build wheel env: BLA_VENDOR: ${{ matrix.bla_vendor }} @@ -91,10 +91,11 @@ jobs: mkdir -p ${wheeldir} cp ./slycot*.whl ${wheeldir}/ - name: Save wheel - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: - name: slycot-wheels + name: slycot-wheels-${{ matrix.os }}-${{ matrix.python }}-${{ matrix.bla_vendor }} path: slycot-wheels + retention-days: 5 build-conda: @@ -119,18 +120,18 @@ jobs: fetch-depth: 0 submodules: 'recursive' - name: Setup Conda - uses: conda-incubator/setup-miniconda@v2 + uses: conda-incubator/setup-miniconda@v3 with: python-version: ${{ matrix.python }} activate-environment: build-env environment-file: .github/conda-env/build-env.yml miniforge-version: latest - miniforge-variant: Mambaforge + channels: conda-forge,defaults channel-priority: strict auto-update-conda: false auto-activate-base: false - name: Conda build - shell: bash -l {0} + shell: bash -el {0} run: | set -e conda mambabuild conda-recipe @@ -142,10 +143,11 @@ jobs: done python -m conda_index ./slycot-conda-pkgs - name: Save to local conda pkg channel - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: - name: slycot-conda-pkgs + name: slycot-conda-pkgs-${{ matrix.os }}-${{ matrix.python }} path: slycot-conda-pkgs + retention-days: 5 create-wheel-test-matrix: @@ -156,15 +158,23 @@ jobs: outputs: matrix: ${{ steps.set-matrix.outputs.matrix }} steps: + - name: Merge artifacts + uses: actions/upload-artifact/merge@v4 + with: + name: slycot-wheels + pattern: slycot-wheels-* - name: Checkout python-control uses: actions/checkout@v3 - name: Download wheels (if any) - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: slycot-wheels path: slycot-wheels - id: set-matrix - run: echo "matrix=$(python3 .github/scripts/set-pip-test-matrix.py)" >> $GITHUB_OUTPUT + run: | + TEMPFILE="$(mktemp)" + python3 .github/scripts/set-pip-test-matrix.py | tee $TEMPFILE + echo "matrix=$(cat $TEMPFILE)" >> $GITHUB_OUTPUT create-conda-test-matrix: @@ -175,15 +185,23 @@ jobs: outputs: matrix: ${{ steps.set-matrix.outputs.matrix }} steps: + - name: Merge artifacts + uses: actions/upload-artifact/merge@v4 + with: + name: slycot-conda-pkgs + pattern: slycot-conda-pkgs-* - name: Checkout python-control uses: actions/checkout@v3 - name: Download conda packages - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 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 + run: | + TEMPFILE="$(mktemp)" + python3 .github/scripts/set-conda-test-matrix.py | tee $TEMPFILE + echo "matrix=$(cat $TEMPFILE)" >> $GITHUB_OUTPUT test-wheel: @@ -204,8 +222,6 @@ jobs: path: slycot-src - name: Checkout python-control uses: actions/checkout@v3 - with: - repository: 'python-control/python-control' - name: Setup Python uses: actions/setup-python@v4 with: @@ -217,7 +233,7 @@ jobs: 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 ;; + unset | OpenBLAS ) sudo apt-get -y install libopenblas0 ;; *) echo "BLAS ${{ matrix.blas_lib }} not supported for wheels on Ubuntu" exit 1 ;; @@ -240,14 +256,14 @@ jobs: exit 1 ;; esac - name: Download wheels - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 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 + pip install matplotlib scipy pytest pytest-cov pytest-timeout coverage numpydoc pip install slycot-wheels/${{ matrix.packagekey }}/slycot*.whl pip show slycot - name: Test with pytest @@ -268,7 +284,7 @@ jobs: defaults: run: - shell: bash -l {0} + shell: bash -el {0} steps: - name: Checkout Slycot @@ -282,17 +298,17 @@ jobs: if: matrix.os == 'macos' run: brew install coreutils - name: Setup Conda - uses: conda-incubator/setup-miniconda@v2 + uses: conda-incubator/setup-miniconda@v3 with: python-version: ${{ matrix.python }} miniforge-version: latest - miniforge-variant: Mambaforge activate-environment: test-env environment-file: .github/conda-env/test-env.yml + channels: conda-forge,defaults channel-priority: strict auto-activate-base: false - name: Download conda packages - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: slycot-conda-pkgs path: slycot-conda-pkgs @@ -301,22 +317,22 @@ jobs: set -e case ${{ matrix.blas_lib }} in unset ) # the conda-forge default (os dependent) - mamba install libblas libcblas liblapack + conda install libblas libcblas liblapack ;; Generic ) - mamba install 'libblas=*=*netlib' 'libcblas=*=*netlib' 'liblapack=*=*netlib' + conda install 'libblas=*=*netlib' 'libcblas=*=*netlib' 'liblapack=*=*netlib' echo "libblas * *netlib" >> $CONDA_PREFIX/conda-meta/pinned ;; OpenBLAS ) - mamba install 'libblas=*=*openblas' openblas + conda install 'libblas=*=*openblas' openblas echo "libblas * *openblas" >> $CONDA_PREFIX/conda-meta/pinned ;; Intel10_64lp ) - mamba install 'libblas=*=*mkl' mkl + conda install 'libblas=*=*mkl' mkl echo "libblas * *mkl" >> $CONDA_PREFIX/conda-meta/pinned ;; esac - mamba install -c ./slycot-conda-pkgs slycot + conda install -c ./slycot-conda-pkgs slycot conda list - name: Test with pytest run: JOBNAME="$JOBNAME" pytest control/tests diff --git a/.github/workflows/python-package-conda.yml b/.github/workflows/python-package-conda.yml index aac8ab054..0aabf33bf 100644 --- a/.github/workflows/python-package-conda.yml +++ b/.github/workflows/python-package-conda.yml @@ -32,14 +32,13 @@ jobs: - uses: actions/checkout@v3 - name: Setup Conda - uses: conda-incubator/setup-miniconda@v2 + uses: conda-incubator/setup-miniconda@v3 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 + channels: conda-forge,defaults channel-priority: strict auto-update-conda: false auto-activate-base: false @@ -56,6 +55,9 @@ jobs: if [[ '${{matrix.pandas}}' == 'conda' ]]; then mamba install pandas fi + if [[ '${{matrix.mplbackend}}' == 'QtAgg' ]]; then + mamba install pyqt + fi - name: Test with pytest shell: bash -l {0} diff --git a/.github/workflows/ruff-check.yml b/.github/workflows/ruff-check.yml new file mode 100644 index 000000000..e056204bf --- /dev/null +++ b/.github/workflows/ruff-check.yml @@ -0,0 +1,29 @@ +# run ruff check on library source +# TODO: extend to tests, examples, benchmarks + +name: ruff-check + +on: [push, pull_request] + +jobs: + ruff-check-linux: + # ruff *shouldn't* be sensitive to platform + runs-on: ubuntu-latest + + steps: + - name: Checkout python-control + uses: actions/checkout@v3 + + - name: Setup environment + uses: actions/setup-python@v4 + with: + python-version: 3.13 # todo: latest? + + - name: Install ruff + run: | + python -m pip install --upgrade pip + python -m pip install ruff + + - name: Run ruff check + run: | + ruff check diff --git a/.gitignore b/.gitignore index 4a6aa3cc0..9359defa9 100644 --- a/.gitignore +++ b/.gitignore @@ -14,7 +14,7 @@ record.txt .coverage doc/_build doc/generated -examples/.ipynb_checkpoints/ +.ipynb_checkpoints/ .settings/org.eclipse.core.resources.prefs .pydevproject .project @@ -42,3 +42,6 @@ venv/ ENV/ env.bak/ venv.bak/ + +# Files for MacOS +.DS_Store diff --git a/LICENSE b/LICENSE index 5c84d3dcd..fbfc42c67 100644 --- a/LICENSE +++ b/LICENSE @@ -1,5 +1,6 @@ Copyright (c) 2009-2016 by California Institute of Technology -Copyright (c) 2016-2023 by python-control developers +Copyright (c) 2012 by Delft University of Technology +Copyright (c) 2016-2024 by python-control developers All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/Pending b/Pending deleted file mode 100644 index a1b5bda09..000000000 --- a/Pending +++ /dev/null @@ -1,63 +0,0 @@ -List of Pending changes for control-python -RMM, 5 Sep 09 - -This file contains brief notes on features that need to be added to -the python control library. Mainly intended to keep track of "bigger -picture" things that need to be done. - ---> See src/matlab.py for a list of MATLAB functions that eventually need - to be implemented. - -OPEN BUGS - * matlab.step() doesn't handle systems with a pole at the origin (use lsim2) - * TF <-> SS transformations are buggy; see tests/convert_test.py - * hsvd returns different value than MATLAB (2010a); see modelsimp_test.py - * lsim doesn't work for StateSpace systems (signal.lsim2 bug??) - -Transfer code from Roberto Bucher's yottalab to python-control - acker - pole placement using Ackermann method - c2d - contimous to discrete time conversion - full_obs - full order observer - red_obs - reduced order observer - comp_form - state feedback controller+observer in compact form - comp_form_i - state feedback controller+observer+integ in compact form - dsimul - simulate discrete time systems - dstep - step response (plot) of discrete time systems - dimpulse - imoulse response (plot) of discrete time systems - bb_step - step response (plot) of continous time systems - sysctr - system+controller+observer+feedback - care - Solve Riccati equation for contimous time systems - dare - Solve Riccati equation for discrete time systems - dlqr - discrete linear quadratic regulator - minreal - minimal state space representation - -Transfer code from Ryan Krauss's control.py to python-control - * phase margin computations (as part of margin command) - * step reponse - * c2d, c2d_tustin (compare to Bucher version first) - -Examples and test cases - * Put together unit tests for all functions (after deciding on framework) - * Figure out how to import 'figure' command properly (version issue?) - * Figure out source of BadCoefficients warning messages (pvtol-lqr and others) - * tests/test_all.py should report on failed tests - * tests/freqresp.py needs to be converted to unit test - * Convert examples/test-{response,statefbk}.py to unit tests - -Root locus plot improvements - * Make sure that scipy.signal.lti objects still work - * Update calling syntax to be consistent with other plotting commands - -State space class fixes - * Implement pzmap for state space systems - -Basic functions to be added - * margin - compute gain and phase margin (no plot) - * lyap - solve Lyapunov equation (use SLICOT SB03MD.f) - * See http://www.slicot.org/shared/libindex.html for list of functions - ----- -Instructions for building python package - * python setup.py build - * python setup.py install - * python setup.py sdist diff --git a/README.rst b/README.rst index ebcf77c43..825693c91 100644 --- a/README.rst +++ b/README.rst @@ -31,7 +31,7 @@ Try out the examples in the examples folder using the binder service. The package can also be installed on Google Colab using the commands:: - !pip install control + %pip install control import control as ct Features @@ -49,11 +49,11 @@ Features Links ----- -- Project home page: http://python-control.org +- Project home page: https://python-control.org - Source code repository: https://github.com/python-control/python-control -- Documentation: http://python-control.readthedocs.org/ +- Documentation: https://python-control.readthedocs.io/ - Issue tracker: https://github.com/python-control/python-control/issues -- Mailing list: http://sourceforge.net/p/python-control/mailman/ +- Mailing list: https://sourceforge.net/p/python-control/mailman/ Dependencies ------------ @@ -110,7 +110,7 @@ from the github repository or archive, unpack, and run from within the toplevel `python-control` directory:: pip install . - + Article and Citation Information ================================ @@ -129,7 +129,6 @@ the library is available on IEEE Explore. If the Python Control Systems Library or the GitHub site: https://github.com/python-control/python-control - Development =========== @@ -158,7 +157,7 @@ License ------- This is free software released under the terms of `the BSD 3-Clause -License `_. There is no +License `_. There is no warranty; not even for merchantability or fitness for a particular purpose. Consult LICENSE for copying conditions. @@ -178,4 +177,3 @@ Your contributions are welcome! Simply fork the GitHub repository and send a Please see the `Developer's Wiki`_ for detailed instructions. .. _Developer's Wiki: https://github.com/python-control/python-control/wiki - diff --git a/benchmarks/flatsys_bench.py b/benchmarks/flatsys_bench.py index 05a2e7066..a2f8ae1d2 100644 --- a/benchmarks/flatsys_bench.py +++ b/benchmarks/flatsys_bench.py @@ -7,7 +7,6 @@ import numpy as np import math -import control as ct import control.flatsys as flat import control.optimal as opt diff --git a/benchmarks/optestim_bench.py b/benchmarks/optestim_bench.py index fdc4dc824..534d1024d 100644 --- a/benchmarks/optestim_bench.py +++ b/benchmarks/optestim_bench.py @@ -6,7 +6,6 @@ # used for optimization-based estimation. import numpy as np -import math import control as ct import control.optimal as opt @@ -64,7 +63,6 @@ def time_oep_minimizer_methods(minimizer_name, noise_name, initial_guess): 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) diff --git a/benchmarks/optimal_bench.py b/benchmarks/optimal_bench.py index 997b5a241..bd0c0cd6b 100644 --- a/benchmarks/optimal_bench.py +++ b/benchmarks/optimal_bench.py @@ -6,7 +6,6 @@ # 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 @@ -21,7 +20,6 @@ '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', {}), } @@ -129,9 +127,6 @@ def time_optimal_lq_methods(integrator_name, minimizer_name, method): 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], @@ -223,8 +218,6 @@ def time_discrete_aircraft_mpc(minimizer_name): # 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])] @@ -234,7 +227,6 @@ def time_discrete_aircraft_mpc(minimizer_name): 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 diff --git a/control/__init__.py b/control/__init__.py index 45f2a56d6..d2929c799 100644 --- a/control/__init__.py +++ b/control/__init__.py @@ -1,53 +1,27 @@ # __init__.py - initialization for control systems toolbox # -# Author: Richard M. Murray -# Date: 24 May 09 -# -# This file contains the initialization information from the control package. -# -# 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. -# -# $Id$ - -""" -The Python Control Systems Library :mod:`control` provides common functions -for analyzing and designing feedback control systems. +# Initial author: Richard M. Murray +# Creation date: 24 May 2009 +# Use `git shortlog -n -s` for full list of contributors + +"""The Python Control Systems Library (python-control) provides common +functions for analyzing and designing feedback control systems. + +The initial goal for the package is to implement all of the +functionality required to work through the examples in the textbook +`Feedback Systems `_ by Astrom and Murray. In +addition to standard techniques available for linear control systems, +support for nonlinear systems (including trajectory generation, gain +scheduling, phase plane diagrams, and describing functions) is +included. A :ref:`matlab-module` is available that provides many of +the common functions corresponding to commands available in the MATLAB +Control Systems Toolbox. Documentation is available in two forms: docstrings provided with the code, -and the python-control users guide, available from `the python-control +and the python-control User Guide, available from the `python-control homepage `_. -The docstring examples assume that the following import commands:: +The docstring examples assume the following import commands:: >>> import numpy as np >>> import control as ct @@ -57,19 +31,27 @@ 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: +additional subpackages and modules 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 * :mod:`~control.phaseplot`: 2D phase plane diagrams +These subpackages and modules are described in more detail in the +subpackage and module docstrings and in the User Guide. + """ # Import functions from within the control system library # Note: the functions we use are specified as __all__ variables in the modules +# don't warn about `import *` +# ruff: noqa: F403 +# don't warn about unknown names; they come via `import *` +# ruff: noqa: F405 + # Input/output system modules from .iosys import * from .nlsys import * @@ -83,6 +65,7 @@ from .timeplot import * from .bdalg import * +from .ctrlplot import * from .delay import * from .descfcn import * from .dtime import * @@ -105,8 +88,8 @@ from .sysnorm import * # Allow access to phase_plane functions as ct.phaseplot.fcn or ct.pp.fcn -from . import phaseplot -from . import phaseplot as pp +from . import phaseplot as phaseplot +pp = phaseplot # Exceptions from .exception import * diff --git a/control/bdalg.py b/control/bdalg.py index 6ab9cd9ca..0ed490084 100644 --- a/control/bdalg.py +++ b/control/bdalg.py @@ -1,89 +1,67 @@ -"""bdalg.py +# bdalg.py - block diagram algebra +# +# Initial author: Richard M. Murray +# Creation date: 24 May 09 +# Pre-2014 revisions: Kevin K. Chen, Dec 2010 +# Use `git shortlog -n -s bdalg.py` for full list of contributors -This file contains some standard block diagram algebra. +"""Block diagram algebra. -Routines in this module: - -append -series -parallel -negate -feedback -connect - -""" - -"""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. - -Author: Richard M. Murray -Date: 24 May 09 -Revised: Kevin K. Chen, Dec 10 - -$Id$ +This module contains some standard block diagram algebra, including +series, parallel, and feedback functions. """ from functools import reduce -import numpy as np from warnings import warn -from . import xferfcn as tf -from . import statesp as ss + +import numpy as np + from . import frdata as frd +from . import statesp as ss +from . import xferfcn as tf from .iosys import InputOutputSystem -__all__ = ['series', 'parallel', 'negate', 'feedback', 'append', 'connect'] +__all__ = ['series', 'parallel', 'negate', 'feedback', 'append', 'connect', + 'combine_tf', 'split_tf'] -def series(sys1, *sysn): - r"""series(sys1, sys2, [..., sysn]) +def series(*sys, **kwargs): + """series(sys1, sys2[, ..., sysn]) - Return the series connection (`sysn` \* ...\ \*) `sys2` \* `sys1`. + Series connection of I/O systems. + + Generates a new system ``[sysn * ... *] sys2 * sys1``. Parameters ---------- - sys1, sys2, ..., sysn: scalar, array, or :class:`InputOutputSystem` + sys1, sys2, ..., sysn : scalar, array, or `InputOutputSystem` I/O systems to combine. Returns ------- - out : scalar, array, or :class:`InputOutputSystem` + out : `InputOutputSystem` Series interconnection of the systems. + Other Parameters + ---------------- + inputs, outputs : str, or list of str, optional + List of strings that name the individual signals. If not given, + signal names will be of the form 's[i]' (where 's' is one of 'u, + or 'y'). See `InputOutputSystem` for more information. + states : str, or list of str, optional + List of names for system states. If not given, state names will be + of the form 'x[i]' for interconnections of linear systems or + '.' for interconnected nonlinear systems. + name : string, optional + System name (used for specifying signals). If unspecified, a generic + name 'sys[id]' is generated with a unique integer id. + Raises ------ ValueError - if `sys2.ninputs` does not equal `sys1.noutputs` - if `sys1.dt` is not compatible with `sys2.dt` + If `sys2.ninputs` does not equal `sys1.noutputs` or if `sys1.dt` is + not compatible with `sys2.dt`. See Also -------- @@ -92,13 +70,12 @@ def series(sys1, *sysn): Notes ----- 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`. + `NonlinearIOSystem`, `StateSpace`, `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 + If both systems have a defined timebase (`dt` = 0 for continuous time, + `dt` > 0 for discrete time), then the timebase for both systems must match. If only one of the system has a timebase, the return timebase will be set to match it. @@ -117,28 +94,47 @@ def series(sys1, *sysn): (2, 1, 5) """ - return reduce(lambda x, y: y * x, sysn, sys1) + sys = reduce(lambda x, y: y * x, sys[1:], sys[0]) + sys.update_names(**kwargs) + return sys -def parallel(sys1, *sysn): - r"""parallel(sys1, sys2, [..., sysn]) +def parallel(*sys, **kwargs): + r"""parallel(sys1, sys2[, ..., sysn]) - Return the parallel connection `sys1` + `sys2` (+ ...\ + `sysn`). + Parallel connection of I/O systems. + + Generates a parallel connection ``sys1 + sys2 [+ ... + sysn]``. Parameters ---------- - sys1, sys2, ..., sysn: scalar, array, or :class:`InputOutputSystem` + sys1, sys2, ..., sysn : scalar, array, or `InputOutputSystem` I/O systems to combine. Returns ------- - out : scalar, array, or :class:`InputOutputSystem` + out : `InputOutputSystem` Parallel interconnection of the systems. + Other Parameters + ---------------- + inputs, outputs : str, or list of str, optional + List of strings that name the individual signals. If not given, + signal names will be of the form 's[i'` (where 's' is one of 'u', + or 'y'). See `InputOutputSystem` for more information. + states : str, or list of str, optional + List of names for system states. If not given, state names will be + of the form 'x[i]' for interconnections of linear systems or + '.' for interconnected nonlinear systems. + name : string, optional + System name (used for specifying signals). If unspecified, a generic + name 'sys[id]' is generated with a unique integer id. + Raises ------ ValueError - if `sys1` and `sys2` do not have the same numbers of inputs and outputs + If `sys1` and `sys2` do not have the same numbers of inputs and + outputs. See Also -------- @@ -147,12 +143,12 @@ def parallel(sys1, *sysn): Notes ----- This function is a wrapper for the __add__ function in the - StateSpace and TransferFunction classes. The output type is usually + `StateSpace` and `TransferFunction` classes. The output type is usually the type of `sys1`. If `sys1` is a scalar, then the output type is the 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 + If both systems have a defined timebase (`dt` = 0 for continuous time, + `dt` > 0 for discrete time), then the timebase for both systems must match. If only one of the system has a timebase, the return timebase will be set to match it. @@ -171,72 +167,101 @@ def parallel(sys1, *sysn): (3, 4, 7) """ - return reduce(lambda x, y: x + y, sysn, sys1) - + sys = reduce(lambda x, y: x + y, sys[1:], sys[0]) + sys.update_names(**kwargs) + return sys -def negate(sys): - """ - Return the negative of a system. +def negate(sys, **kwargs): + """Return the negative of a system. Parameters ---------- - sys: scalar, array, or :class:`InputOutputSystem` + sys : scalar, array, or `InputOutputSystem` I/O systems to negate. Returns ------- - out : scalar, array, or :class:`InputOutputSystem` + out : `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. + Other Parameters + ---------------- + inputs, outputs : str, or list of str, optional + List of strings that name the individual signals. If not given, + signal names will be of the form 's[i]' (where 's' is one of 'u', + or 'y'). See `InputOutputSystem` for more information. + states : str, or list of str, optional + List of names for system states. If not given, state names will be + of of the form 'x[i]' for interconnections of linear systems or + '.' for interconnected nonlinear systems. + name : string, optional + System name (used for specifying signals). If unspecified, a generic + name 'sys[id]' is generated with a unique integer id. See Also -------- append, feedback, interconnect, parallel, series + 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. + Examples -------- >>> G = ct.tf([2], [1, 1]) >>> G.dcgain() - 2.0 + np.float64(2.0) >>> Gn = ct.negate(G) # Same as sys2 = -sys1. >>> Gn.dcgain() - -2.0 + np.float64(-2.0) """ - return -sys + sys = -sys + sys.update_names(**kwargs) + 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): +def feedback(sys1, sys2=1, sign=-1, **kwargs): """Feedback interconnection between two I/O systems. Parameters ---------- - sys1, sys2: scalar, array, or :class:`InputOutputSystem` + sys1, sys2 : scalar, array, or `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 - argument; it assumes a value of -1 if not specified. + sign : scalar, optional + The sign of feedback. `sign=-1` indicates negative feedback + (default), and `sign=1` indicates positive feedback. Returns ------- - out : scalar, array, or :class:`InputOutputSystem` + out : `InputOutputSystem` Feedback interconnection of the systems. + Other Parameters + ---------------- + inputs, outputs : str, or list of str, optional + List of strings that name the individual signals. If not given, + signal names will be of the form 's[i]' (where 's' is one of 'u', + or 'y'). See `InputOutputSystem` for more information. + states : str, or list of str, optional + List of names for system states. If not given, state names will be + of of the form 'x[i]' for interconnections of linear systems or + '.' for interconnected nonlinear systems. + name : string, optional + System name (used for specifying signals). If unspecified, a generic + name 'sys[id]' is generated with a unique integer id. + Raises ------ ValueError - if `sys1` does not have as many inputs as `sys2` has outputs, or if - `sys2` does not have as many inputs as `sys1` has outputs + If `sys1` does not have as many inputs as `sys2` has outputs, or if + `sys2` does not have as many inputs as `sys1` has outputs. NotImplementedError - if an attempt is made to perform a feedback on a MIMO TransferFunction - object + If an attempt is made to perform a feedback on a MIMO `TransferFunction` + object. See Also -------- @@ -261,7 +286,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) + return sys1.feedback(sys2, sign, **kwargs) except (AttributeError, TypeError): pass @@ -279,31 +304,48 @@ def feedback(sys1, sys2=1, sign=-1): if isinstance(sys2, (int, float, complex, np.number, np.ndarray, tf.TransferFunction)): sys1 = tf._convert_to_transfer_function(sys1) - elif isinstance(sys2, frd.FRD): - sys1 = frd._convert_to_FRD(sys1, sys2.omega) + elif isinstance(sys2, frd.FrequencyResponseData): + sys1 = frd._convert_to_frd(sys1, sys2.omega) else: sys1 = ss._convert_to_statespace(sys1) - return sys1.feedback(sys2, sign) + sys = sys1.feedback(sys2, sign) + sys.update_names(**kwargs) + return sys -def append(*sys): - """append(sys1, sys2, [..., sysn]) +def append(*sys, **kwargs): + """append(sys1, sys2[, ..., sysn]) - Group LTI state space models by appending their inputs and outputs. + Group LTI models by appending their inputs and outputs. Forms an augmented system model, and appends the inputs and outputs together. Parameters ---------- - sys1, sys2, ..., sysn: scalar, array, or :class:`StateSpace` + sys1, sys2, ..., sysn : scalar, array, or `LTI` I/O systems to combine. Returns ------- - out: :class:`StateSpace` + out : `LTI` Combined system, with input/output vectors consisting of all - input/output vectors appended. + input/output vectors appended. Specific type returned is the type of + the first argument. + + Other Parameters + ---------------- + inputs, outputs : str, or list of str, optional + List of strings that name the individual signals. If not given, + signal names will be of the form 's[i]' (where 's' is one of 'u', + or 'y'). See `InputOutputSystem` for more information. + states : str, or list of str, optional + List of names for system states. If not given, state names will be + of of the form 'x[i]' for interconnections of linear systems or + '.' for interconnected nonlinear systems. + name : string, optional + System name (used for specifying signals). If unspecified, a generic + name 'sys[id]' is generated with a unique integer id. See Also -------- @@ -324,17 +366,18 @@ def append(*sys): (3, 8, 7) """ - s1 = ss._convert_to_statespace(sys[0]) + s1 = sys[0] for s in sys[1:]: s1 = s1.append(s) + s1.update_names(**kwargs) return s1 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. + `connect` will be removed in a future version of python-control. + Use `interconnect` instead, 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 @@ -347,7 +390,7 @@ def connect(sys, Q, inputv, outputv): Parameters ---------- - sys : :class:`InputOutputSystem` + sys : `InputOutputSystem` System to be connected. Q : 2D array Interconnection matrix. First column gives the input to be connected. @@ -357,19 +400,24 @@ def connect(sys, Q, inputv, outputv): 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 + List of final external inputs, indexed starting at 1. outputv : 1D array - list of final external outputs, indexed starting at 1 + List of final external outputs, indexed starting at 1. Returns ------- - out : :class:`InputOutputSystem` + out : `InputOutputSystem` Connected and trimmed I/O system. See Also -------- append, feedback, interconnect, negate, parallel, series + Notes + ----- + The `interconnect` function allows the use of named signals and + provides an alternative method for interconnecting multiple systems. + Examples -------- >>> G = ct.rss(7, inputs=2, outputs=2) @@ -378,15 +426,9 @@ def connect(sys, Q, inputv, outputv): >>> T.ninputs, T.noutputs, T.nstates (1, 2, 7) - 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. - """ # TODO: maintain `connect` for use in MATLAB submodule (?) - warn("`connect` is deprecated; use `interconnect`", DeprecationWarning) + warn("connect() is deprecated; use interconnect()", FutureWarning) inputv, outputv, Q = \ np.atleast_1d(inputv), np.atleast_1d(outputv), np.atleast_1d(Q) @@ -428,3 +470,249 @@ def connect(sys, Q, inputv, outputv): Ytrim[i,y-1] = 1. return Ytrim * sys * Utrim + +def combine_tf(tf_array, **kwargs): + """Combine array of transfer functions into MIMO transfer function. + + Parameters + ---------- + tf_array : list of list of `TransferFunction` or array_like + Transfer matrix represented as a two-dimensional array or + list-of-lists containing `TransferFunction` objects. The + `TransferFunction` objects can have multiple outputs and inputs, as + long as the dimensions are compatible. + + Returns + ------- + `TransferFunction` + Transfer matrix represented as a single MIMO `TransferFunction` object. + + Other Parameters + ---------------- + inputs, outputs : str, or list of str, optional + List of strings that name the individual signals. If not given, + signal names will be of the form 's[i]' (where 's' is one of 'u', + or 'y'). See `InputOutputSystem` for more information. + name : string, optional + System name (used for specifying signals). If unspecified, a generic + name 'sys[id]' is generated with a unique integer id. + + Raises + ------ + ValueError + If timebase of transfer functions do not match. + ValueError + If `tf_array` has incorrect dimensions. + ValueError + If the transfer functions in a row have mismatched output or input + dimensions. + + Examples + -------- + Combine two transfer functions: + + >>> s = ct.tf('s') + >>> ct.combine_tf( + ... [[1 / (s + 1)], + ... [s / (s + 2)]], + ... name='G' + ... ) + TransferFunction( + [[array([1])], + [array([1, 0])]], + [[array([1, 1])], + [array([1, 2])]], + name='G', outputs=2, inputs=1) + + Combine NumPy arrays with transfer functions: + + >>> ct.combine_tf( + ... [[np.eye(2), np.zeros((2, 1))], + ... [np.zeros((1, 2)), ct.tf([1], [1, 0])]], + ... name='G' + ... ) + TransferFunction( + [[array([1.]), array([0.]), array([0.])], + [array([0.]), array([1.]), array([0.])], + [array([0.]), array([0.]), array([1])]], + [[array([1.]), array([1.]), array([1.])], + [array([1.]), array([1.]), array([1.])], + [array([1.]), array([1.]), array([1, 0])]], + name='G', outputs=3, inputs=3) + + """ + # Find common timebase or raise error + dt_list = [] + try: + for row in tf_array: + for tfn in row: + dt_list.append(getattr(tfn, "dt", None)) + except OSError: + raise ValueError("`tf_array` has too few dimensions.") + dt_set = set(dt_list) + dt_set.discard(None) + if len(dt_set) > 1: + raise ValueError("Time steps of transfer functions are " + f"mismatched: {dt_set}") + elif len(dt_set) == 0: + dt = None + else: + dt = dt_set.pop() + # Convert all entries to transfer function objects + ensured_tf_array = [] + for row in tf_array: + ensured_row = [] + for tfn in row: + ensured_row.append(_ensure_tf(tfn, dt)) + ensured_tf_array.append(ensured_row) + # Iterate over + num = [] + den = [] + for row_index, row in enumerate(ensured_tf_array): + for j_out in range(row[0].noutputs): + num_row = [] + den_row = [] + for col in row: + if col.noutputs != row[0].noutputs: + raise ValueError( + "Mismatched number of transfer function outputs in " + f"row {row_index}." + ) + for j_in in range(col.ninputs): + num_row.append(col.num_array[j_out, j_in]) + den_row.append(col.den_array[j_out, j_in]) + num.append(num_row) + den.append(den_row) + for row_index, row in enumerate(num): + if len(row) != len(num[0]): + raise ValueError( + "Mismatched number transfer function inputs in row " + f"{row_index} of numerator." + ) + for row_index, row in enumerate(den): + if len(row) != len(den[0]): + raise ValueError( + "Mismatched number transfer function inputs in row " + f"{row_index} of denominator." + ) + return tf.TransferFunction(num, den, dt=dt, **kwargs) + + + +def split_tf(transfer_function): + """Split MIMO transfer function into SISO transfer functions. + + System and signal names for the array of SISO transfer functions are + copied from the MIMO system. + + Parameters + ---------- + transfer_function : `TransferFunction` + MIMO transfer function to split. + + Returns + ------- + ndarray + NumPy array of SISO transfer functions. + + Examples + -------- + Split a MIMO transfer function: + + >>> G = ct.tf( + ... [ [[87.8], [-86.4]], + ... [[108.2], [-109.6]] ], + ... [ [[1, 1], [1, 1]], + ... [[1, 1], [1, 1]], ], + ... name='G' + ... ) + >>> ct.split_tf(G) + array([[TransferFunction( + array([87.8]), + array([1, 1]), + name='G', outputs=1, inputs=1), TransferFunction( + array([-86.4]), + array([1, 1]), + name='G', outputs=1, inputs=1)], + [TransferFunction( + array([108.2]), + array([1, 1]), + name='G', outputs=1, inputs=1), TransferFunction( + array([-109.6]), + array([1, 1]), + name='G', outputs=1, inputs=1)]], + dtype=object) + + """ + tf_split_lst = [] + for i_out in range(transfer_function.noutputs): + row = [] + for i_in in range(transfer_function.ninputs): + row.append( + tf.TransferFunction( + transfer_function.num_array[i_out, i_in], + transfer_function.den_array[i_out, i_in], + dt=transfer_function.dt, + inputs=transfer_function.input_labels[i_in], + outputs=transfer_function.output_labels[i_out], + name=transfer_function.name + ) + ) + tf_split_lst.append(row) + return np.array(tf_split_lst, dtype=object) + +def _ensure_tf(arraylike_or_tf, dt=None): + """Convert an array_like to a transfer function. + + Parameters + ---------- + arraylike_or_tf : `TransferFunction` or array_like + Array-like or transfer function. + 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). If None, timebase is not validated. + + Returns + ------- + `TransferFunction` + Transfer function. + + Raises + ------ + ValueError + If input cannot be converted to a transfer function. + ValueError + If the timebases do not match. + + """ + # If the input is already a transfer function, return it right away + if isinstance(arraylike_or_tf, tf.TransferFunction): + # If timebases don't match, raise an exception + if (dt is not None) and (arraylike_or_tf.dt != dt): + raise ValueError( + f"`arraylike_or_tf.dt={arraylike_or_tf.dt}` does not match " + f"argument `dt={dt}`." + ) + return arraylike_or_tf + if np.ndim(arraylike_or_tf) > 2: + raise ValueError( + "Array-like must have less than two dimensions to be converted " + "into a transfer function." + ) + # If it's not, then convert it to a transfer function + arraylike_3d = np.atleast_3d(arraylike_or_tf) + try: + tfn = tf.TransferFunction( + arraylike_3d, + np.ones_like(arraylike_3d), + dt, + ) + except TypeError: + raise ValueError( + "`arraylike_or_tf` must only contain array_likes or transfer " + "functions." + ) + return tfn diff --git a/control/canonical.py b/control/canonical.py index 7d091b22f..48fda7f5a 100644 --- a/control/canonical.py +++ b/control/canonical.py @@ -1,21 +1,22 @@ # canonical.py - functions for converting systems to canonical forms # RMM, 10 Nov 2012 -from .exception import ControlNotImplemented, ControlSlycot -from .iosys import issiso -from .statesp import StateSpace, _convert_to_statespace -from .statefbk import ctrb, obsv +"""Functions for converting systems to canonical forms. -import numpy as np - -from numpy import zeros, zeros_like, shape, poly, iscomplex, vstack, hstack, \ - transpose, empty, finfo, float64 -from numpy.linalg import solve, matrix_rank, eig +""" +import numpy as np +from numpy import poly, transpose, zeros_like +from numpy.linalg import matrix_rank, solve from scipy.linalg import schur -__all__ = ['canonical_form', 'reachable_form', 'observable_form', 'modal_form', - 'similarity_transform', 'bdschur'] +from .exception import ControlNotImplemented, ControlSlycot +from .iosys import issiso +from .statefbk import ctrb, obsv +from .statesp import StateSpace, _convert_to_statespace + +__all__ = ['canonical_form', 'reachable_form', 'observable_form', + 'modal_form', 'similarity_transform', 'bdschur'] def canonical_form(xsys, form='reachable'): @@ -23,8 +24,8 @@ def canonical_form(xsys, form='reachable'): Parameters ---------- - xsys : StateSpace object - System to be transformed, with state 'x' + xsys : `StateSpace` object + System to be transformed, with state 'x'. form : str Canonical form for transformation. Chosen from: * 'reachable' - reachable canonical form @@ -33,10 +34,10 @@ def canonical_form(xsys, form='reachable'): Returns ------- - zsys : StateSpace object - System in desired canonical form, with state 'z' + zsys : `StateSpace` object + System in desired canonical form, with state 'z'. T : (M, M) real ndarray - Coordinate transformation matrix, z = T * x + Coordinate transformation matrix, z = T * x. Examples -------- @@ -57,7 +58,7 @@ def canonical_form(xsys, form='reachable'): """ - # Call the appropriate tranformation function + # Call the appropriate transformation function if form == 'reachable': return reachable_form(xsys) elif form == 'observable': @@ -75,15 +76,15 @@ def reachable_form(xsys): Parameters ---------- - xsys : StateSpace object - System to be transformed, with state `x` + xsys : `StateSpace` object + System to be transformed, with state `x`. Returns ------- - zsys : StateSpace object - System in reachable canonical form, with state `z` + zsys : `StateSpace` object + System in reachable canonical form, with state `z`. T : (M, M) real ndarray - Coordinate transformation: z = T * x + Coordinate transformation: z = T * x. Examples -------- @@ -125,10 +126,12 @@ def reachable_form(xsys): # Check to make sure inversion was OK. Note that since we are inverting # Wrx and we already checked its rank, this exception should never occur if matrix_rank(Tzx) != xsys.nstates: # pragma: no cover - raise ValueError("Transformation matrix singular to working precision.") + raise ValueError( + "Transformation matrix singular to working precision.") # Finally, compute the output matrix - zsys.C = solve(Tzx.T, xsys.C.T).T # matrix right division, zsys.C = xsys.C * inv(Tzx) + # matrix right division, zsys.C = xsys.C * inv(Tzx) + zsys.C = solve(Tzx.T, xsys.C.T).T return zsys, Tzx @@ -138,15 +141,15 @@ def observable_form(xsys): Parameters ---------- - xsys : StateSpace object - System to be transformed, with state `x` + xsys : `StateSpace` object + System to be transformed, with state `x`. Returns ------- - zsys : StateSpace object - System in observable canonical form, with state `z` + zsys : `StateSpace` object + System in observable canonical form, with state `z`. T : (M, M) real ndarray - Coordinate transformation: z = T * x + Coordinate transformation: z = T * x. Examples -------- @@ -182,7 +185,8 @@ def observable_form(xsys): Tzx = solve(Wrz, Wrx) # matrix left division, Tzx = inv(Wrz) * Wrx if matrix_rank(Tzx) != xsys.nstates: - raise ValueError("Transformation matrix singular to working precision.") + raise ValueError( + "Transformation matrix singular to working precision.") # Finally, compute the output matrix zsys.B = Tzx @ xsys.B @@ -191,28 +195,31 @@ def observable_form(xsys): def similarity_transform(xsys, T, timescale=1, inverse=False): - """Perform a similarity transformation, with option time rescaling. + """Similarity transformation, with optional time rescaling. Transform a linear state space system to a new state space representation z = T x, or x = T z, where T is an invertible matrix. Parameters ---------- - xsys : StateSpace object - System to transform + xsys : `StateSpace` object + System to transform. T : (M, M) array_like The matrix `T` defines the new set of coordinates z = T x. timescale : float, optional - If present, also rescale the time unit to tau = timescale * t - inverse: boolean, optional - If True (default), transform so z = T x. If False, transform + If present, also rescale the time unit to tau = timescale * t. + inverse : bool, optional + If False (default), transform so z = T x. If True, transform so x = T z. Returns ------- - zsys : StateSpace object - System in transformed coordinates, with state 'z' + zsys : `StateSpace` object + System in transformed coordinates, with state 'z'. + See Also + -------- + canonical_form Examples -------- @@ -268,7 +275,10 @@ def _bdschur_defective(blksizes, eigvals): ------- True iff Schur blocks are defective. - blksizes, eigvals are the 3rd and 4th results returned by mb03rd. + Notes + ----- + `blksizes`, `eigvals` are the 3rd and 4th results returned by mb03rd. + """ if any(blksizes > 2): return True @@ -320,9 +330,10 @@ def _bdschur_condmax_search(aschur, tschur, condmax): Notes ----- - Outputs as for slycot.mb03rd + Outputs as for slycot.mb03rd. + + `aschur`, `tschur` are as returned by scipy.linalg.schur. - aschur, tschur are as returned by scipy.linalg.schur. """ try: from slycot import mb03rd @@ -389,7 +400,9 @@ def _bdschur_condmax_search(aschur, tschur, condmax): # hit search limit return reslower else: - raise ValueError('bisection failed to converge; pmaxlower={}, pmaxupper={}'.format(pmaxlower, pmaxupper)) + raise ValueError( + "bisection failed to converge; " + "pmaxlower={}, pmaxupper={}".format(pmaxlower, pmaxupper)) def bdschur(a, condmax=None, sort=None): @@ -397,21 +410,21 @@ def bdschur(a, condmax=None, sort=None): Parameters ---------- - a : (M, M) array_like - Real matrix to decompose - condmax : None or float, optional - If None (default), use 1/sqrt(eps), which is approximately 1e8 - sort : {None, 'continuous', 'discrete'} - Block sorting; see below. + a : (M, M) array_like + Real matrix to decompose. + condmax : None or float, optional + If None (default), use 1/sqrt(eps), which is approximately 1e8. + sort : {None, 'continuous', 'discrete'} + Block sorting; see below. Returns ------- - amodal : (M, M) real ndarray - Block-diagonal Schur decomposition of `a` - tmodal : (M, M) real ndarray - Similarity transform relating `a` and `amodal` - blksizes : (N,) int ndarray - Array of Schur block sizes + amodal : (M, M) real ndarray + Block-diagonal Schur decomposition of `a`. + tmodal : (M, M) real ndarray + Similarity transform relating `a` and `amodal`. + blksizes : (N,) int ndarray + Array of Schur block sizes. Notes ----- @@ -419,12 +432,11 @@ def bdschur(a, condmax=None, sort=None): If `sort` is 'continuous', the blocks are sorted according to associated eigenvalues. The ordering is first by real part of - eigenvalue, in descending order, then by absolute value of - imaginary part of eigenvalue, also in decreasing order. + eigenvalue, in descending order, then by absolute value of imaginary + part of eigenvalue, also in decreasing order. - If `sort` is 'discrete', the blocks are sorted as for - 'continuous', but applied to log of eigenvalues - (i.e., continuous-equivalent eigenvalues). + If `sort` is 'discrete', the blocks are sorted as for 'continuous', but + applied to log of eigenvalues (i.e., continuous-equivalent eigenvalues). Examples -------- @@ -439,7 +451,8 @@ def bdschur(a, condmax=None, sort=None): condmax = np.finfo(np.float64).eps ** -0.5 if not (np.isscalar(condmax) and condmax >= 1.0): - raise ValueError('condmax="{}" must be a scalar >= 1.0'.format(condmax)) + raise ValueError( + 'condmax="{}" must be a scalar >= 1.0'.format(condmax)) a = np.atleast_2d(a) if a.shape[0] == 0 or a.shape[1] == 0: @@ -486,8 +499,8 @@ def modal_form(xsys, condmax=None, sort=False): Parameters ---------- - xsys : StateSpace object - System to be transformed, with state `x` + 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. @@ -497,10 +510,10 @@ def modal_form(xsys, condmax=None, sort=False): Returns ------- - zsys : StateSpace object - System in modal canonical form, with state `z` + zsys : `StateSpace` object + System in modal canonical form, with state z. T : (M, M) ndarray - Coordinate transformation: z = T * x + Coordinate transformation: z = T * x. Examples -------- diff --git a/control/config.py b/control/config.py index b6d5385d4..8da7e2fc2 100644 --- a/control/config.py +++ b/control/config.py @@ -1,15 +1,18 @@ # config.py - package defaults # RMM, 4 Nov 2012 # -# This file contains default values and utility functions for setting -# variables that control the behavior of the control package. -# Eventually it will be possible to read and write configuration -# files. For now, you can just choose between MATLAB and FBS default -# values + tweak a few other things. +# TODO: add ability to read/write configuration files (a la matplotlib) +"""Functions to access default parameter values. + +This module contains default values and utility functions for setting +parameters that control the behavior of the control package. + +""" import collections import warnings + from .exception import ControlArgument __all__ = ['defaults', 'set_defaults', 'reset_defaults', @@ -26,7 +29,7 @@ class DefaultDict(collections.UserDict): - """Map names for settings from older version to their renamed ones. + """Default parameters dictionary, with legacy warnings. If a user wants to write to an old setting, issue a warning and write to the renamed setting instead. Accessing the old setting returns the value @@ -72,6 +75,28 @@ def _check_deprecation(self, key): else: return key + # + # Context manager functionality + # + + def __call__(self, mapping): + self.saved_mapping = dict() + self.temp_mapping = mapping.copy() + return self + + def __enter__(self): + for key, val in self.temp_mapping.items(): + if not key in self: + raise ValueError(f"unknown parameter '{key}'") + self.saved_mapping[key] = self[key] + self[key] = val + return self + + def __exit__(self, exc_type, exc_val, exc_tb): + for key, val in self.saved_mapping.items(): + self[key] = val + del self.saved_mapping, self.temp_mapping + return None defaults = DefaultDict(_control_defaults) @@ -82,6 +107,13 @@ def set_defaults(module, **keywords): The set_defaults() function can be used to modify multiple parameter values for a module at the same time, using keyword arguments. + Parameters + ---------- + module : str + Name of the module for which the defaults are being given. + **keywords : keyword arguments + Parameter value assignments. + Examples -------- >>> ct.defaults['freqplot.number_of_samples'] @@ -101,6 +133,7 @@ def set_defaults(module, **keywords): defaults[module + '.' + key] = val +# TODO: allow individual modules and individual parameters to be reset def reset_defaults(): """Reset configuration values to their default (initial) values. @@ -121,6 +154,10 @@ def reset_defaults(): # System level defaults defaults.update(_control_defaults) + from .ctrlplot import _ctrlplot_defaults, reset_rcParams + reset_rcParams() + defaults.update(_ctrlplot_defaults) + from .freqplot import _freqplot_defaults, _nyquist_defaults defaults.update(_freqplot_defaults) defaults.update(_nyquist_defaults) @@ -163,14 +200,14 @@ def _get_param(module, param, argval=None, defval=None, pop=False, last=False): parameter for a module based on the default parameter settings and any arguments passed to the function. The precedence order for parameters is the value passed to the function (as a keyword), the value from the - config.defaults dictionary, and the default value `defval`. + `config.defaults` dictionary, and the default value `defval`. Parameters ---------- module : str Name of the module whose parameters are being requested. param : str - Name of the parameter value to be determeind. + Name of the parameter value to be determined. argval : object or dict Value of the parameter as passed to the function. This can either be an object or a dictionary (i.e. the keyword list from the function @@ -178,15 +215,15 @@ def _get_param(module, param, argval=None, defval=None, pop=False, last=False): defval : object Default value of the parameter to use, if it is not located in the `config.defaults` dictionary. If a dictionary is provided, then - `module.param` is used to determine the default value. Defaults to + 'module.param' is used to determine the default value. Defaults to None. pop : bool, optional If True and if argval is a dict, then pop the remove the parameter - entry from the argval dict after retreiving it. This allows the use + entry from the argval dict after retrieving it. This allows the use of a keyword argument list to be passed through to other functions internal to the function being called. last : bool, optional - If True, check to make sure dictionary is empy after processing. + If True, check to make sure dictionary is empty after processing. """ @@ -219,6 +256,7 @@ def use_matlab_defaults(): The following conventions are used: * Bode plots plot gain in dB, phase in degrees, frequency in rad/sec, with grids + * Frequency plots use the label "Magnitude" for the system gain. Examples -------- @@ -227,15 +265,19 @@ def use_matlab_defaults(): """ set_defaults('freqplot', dB=True, deg=True, Hz=False, grid=True) + set_defaults('freqplot', magnitude_label="Magnitude") # Set defaults to match FBS (Astrom and Murray) def use_fbs_defaults(): - """Use `Feedback Systems `_ (FBS) compatible settings. + """Use Feedback Systems (FBS) compatible settings. + + The following conventions from `Feedback Systems `_ + are used: - The following conventions are used: * Bode plots plot gain in powers of ten, phase in degrees, frequency in rad/sec, no grid + * Frequency plots use the label "Gain" for the system gain. * Nyquist plots use dashed lines for mirror image of Nyquist curve Examples @@ -245,6 +287,7 @@ def use_fbs_defaults(): """ set_defaults('freqplot', dB=False, deg=True, Hz=False, grid=False) + set_defaults('freqplot', magnitude_label="Gain") set_defaults('nyquist', mirror_style='--') @@ -254,7 +297,7 @@ def use_legacy_defaults(version): Parameters ---------- version : string - Version number of the defaults desired. Ranges from '0.1' to '0.8.4'. + Version number of the defaults desired. Ranges from '0.1' to '0.10.1'. Examples -------- @@ -267,26 +310,26 @@ def use_legacy_defaults(version): (major, minor, patch) = (None, None, None) # default values # Early release tag format: REL-0.N - match = re.match("REL-0.([12])", version) + match = re.match(r"^REL-0.([12])$", version) if match: (major, minor, patch) = (0, int(match.group(1)), 0) # Early release tag format: control-0.Np - match = re.match("control-0.([3-6])([a-d])", version) + match = re.match(r"^control-0.([3-6])([a-d])$", version) if match: (major, minor, patch) = \ (0, int(match.group(1)), ord(match.group(2)) - ord('a') + 1) # Early release tag format: v0.Np - match = re.match("[vV]?0.([3-6])([a-d])", version) + match = re.match(r"^[vV]?0\.([3-6])([a-d])$", version) if match: (major, minor, patch) = \ (0, int(match.group(1)), ord(match.group(2)) - ord('a') + 1) # Abbreviated version format: vM.N or M.N - match = re.match("([vV]?[0-9]).([0-9])", version) + match = re.match(r"^[vV]?([0-9]*)\.([0-9]*)$", version) if match: (major, minor, patch) = \ (int(match.group(1)), int(match.group(2)), 0) # Standard version format: vM.N.P or M.N.P - match = re.match("[vV]?([0-9]).([0-9]).([0-9])", version) + match = re.match(r"^[vV]?([0-9]*)\.([0-9]*)\.([0-9]*)$", version) if match: (major, minor, patch) = \ (int(match.group(1)), int(match.group(2)), int(match.group(3))) @@ -313,7 +356,7 @@ def use_legacy_defaults(version): # switched to 'array' as default for state space objects warnings.warn("NumPy matrix class no longer supported") - # switched to 0 (=continuous) as default timestep + # switched to 0 (=continuous) as default timebase set_defaults('control', default_dt=None) # changed iosys naming conventions @@ -338,19 +381,49 @@ def use_legacy_defaults(version): 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"keyword '{oldkey}' is deprecated; use '{newkey}'", - DeprecationWarning) +def _process_legacy_keyword(kwargs, oldkey, newkey, newval, warn_oldkey=True): + """Utility function for processing legacy keywords. + + .. deprecated:: 0.10.2 + Replace with `_process_param` or `_process_kwargs`. + + 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. + + Parameters + ---------- + kwargs : dict + Dictionary of keyword arguments (from function call). + oldkey : str + Old (legacy) parameter name. + newkey : str + Current name of the parameter. + newval : object + Value of the current parameter (from the function signature). + warn_oldkey : bool + If set to False, suppress generation of a warning about using a + legacy keyword. This is useful if you have two versions of a + keyword and you want to allow either to be used (see the `cost` and + `trajectory_cost` keywords in `flatsys.point_to_point` for an + example of this). + + Returns + ------- + val : object + Value of the (new) keyword. + + """ + # TODO: turn on this warning when ready to deprecate + # warnings.warn( + # "replace `_process_legacy_keyword` with `_process_param` " + # "or `_process_kwargs`", PendingDeprecationWarning) + if oldkey in kwargs: + if warn_oldkey: + warnings.warn( + f"keyword '{oldkey}' is deprecated; use '{newkey}'", + FutureWarning, stacklevel=3) if newval is not None: raise ControlArgument( f"duplicate keywords '{oldkey}' and '{newkey}'") @@ -358,3 +431,143 @@ def _process_legacy_keyword(kwargs, oldkey, newkey, newval): return kwargs.pop(oldkey) else: return newval + + +def _process_param(name, defval, kwargs, alias_mapping, sigval=None): + """Process named parameter, checking aliases and legacy usage. + + Helper function to process function arguments by mapping aliases to + either their default keywords or to a named argument. The alias + mapping is a dictionary that returns a tuple consisting of valid + aliases and legacy aliases:: + + alias_mapping = { + 'argument_name_1': (['alias', ...], ['legacy', ...]), + ...} + + If `param` is a named keyword in the function signature with default + value `defval`, a typical calling sequence at the start of a function + is:: + + param = _process_param('param', defval, kwargs, function_aliases) + + If `param` is a variable keyword argument (in `kwargs`), `defval` can + be passed as either None or the default value to use if `param` is not + present in `kwargs`. + + Parameters + ---------- + name : str + Name of the parameter to be checked. + defval : object or dict + Default value for the parameter. + kwargs : dict + Dictionary of variable keyword arguments. + alias_mapping : dict + Dictionary providing aliases and legacy names. + sigval : object, optional + Default value specified in the function signature (default = None). + If specified, an error will be generated if `defval` is different + than `sigval` and an alias or legacy keyword is given. + + Returns + ------- + newval : object + New value of the named parameter. + + Raises + ------ + TypeError + If multiple keyword aliases are used for the same parameter. + + Warns + ----- + PendingDeprecationWarning + If legacy name is used to set the value for the variable. + + """ + # Check to see if the parameter is in the keyword list + if name in kwargs: + if defval != sigval: + raise TypeError(f"multiple values for parameter {name}") + newval = kwargs.pop(name) + else: + newval = defval + + # Get the list of aliases and legacy names + aliases, legacy = alias_mapping[name] + + for kw in legacy: + if kw in kwargs: + warnings.warn( + f"alias `{kw}` is legacy name; use `{name}` instead", + PendingDeprecationWarning) + kwval = kwargs.pop(kw) + if newval != defval and kwval != newval: + raise TypeError( + f"multiple values for parameter `{name}` (via {kw})") + newval = kwval + + for kw in aliases: + if kw in kwargs: + kwval = kwargs.pop(kw) + if newval != defval and kwval != newval: + raise TypeError( + f"multiple values for parameter `{name}` (via {kw})") + newval = kwval + + return newval + + +def _process_kwargs(kwargs, alias_mapping): + """Process aliases and legacy keywords. + + Helper function to process function arguments by mapping aliases to + their default keywords. The alias mapping is a dictionary that returns + a tuple consisting of valid aliases and legacy aliases:: + + alias_mapping = { + 'argument_name_1': (['alias', ...], ['legacy', ...]), + ...} + + If an alias is present in the dictionary of keywords, it will be used + to set the value of the argument. If a legacy keyword is used, a + warning is issued. + + Parameters + ---------- + kwargs : dict + Dictionary of variable keyword arguments. + alias_mapping : dict + Dictionary providing aliases and legacy names. + + Raises + ------ + TypeError + If multiple keyword aliased are used for the same parameter. + + Warns + ----- + PendingDeprecationWarning + If legacy name is used to set the value for the variable. + + """ + for name in alias_mapping or []: + aliases, legacy = alias_mapping[name] + + for kw in legacy: + if kw in kwargs: + warnings.warn( + f"alias `{kw}` is legacy name; use `{name}` instead", + PendingDeprecationWarning) + if name in kwargs: + raise TypeError( + f"multiple values for parameter `{name}` (via {kw})") + kwargs[name] = kwargs.pop(kw) + + for kw in aliases: + if kw in kwargs: + if name in kwargs: + raise TypeError( + f"multiple values for parameter `{name}` (via {kw})") + kwargs[name] = kwargs.pop(kw) diff --git a/control/ctrlplot.py b/control/ctrlplot.py new file mode 100644 index 000000000..b1a989ce5 --- /dev/null +++ b/control/ctrlplot.py @@ -0,0 +1,775 @@ +# ctrlplot.py - utility functions for plotting +# RMM, 14 Jun 2024 +# + +"""Utility functions for plotting. + +This module contains a collection of functions that are used by +various plotting functions. + +""" + +# Code pattern for control system plotting functions: +# +# def name_plot(sysdata, *fmt, plot=None, **kwargs): +# # Process keywords and set defaults +# ax = kwargs.pop('ax', None) +# color = kwargs.pop('color', None) +# label = kwargs.pop('label', None) +# rcParams = config._get_param('ctrlplot', 'rcParams', kwargs, pop=True) +# +# # Make sure all keyword arguments were processed (if not checked later) +# if kwargs: +# raise TypeError("unrecognized keywords: ", str(kwargs)) +# +# # Process the data (including generating responses for systems) +# sysdata = list(sysdata) +# if any([isinstance(sys, InputOutputSystem) for sys in sysdata]): +# data = name_response(sysdata) +# nrows = max([data.noutputs for data in sysdata]) +# ncols = max([data.ninputs for data in sysdata]) +# +# # Legacy processing of plot keyword +# if plot is False: +# return data.x, data.y +# +# # Figure out the shape of the plot and find/create axes +# fig, ax_array = _process_ax_keyword(ax, (nrows, ncols), rcParams) +# legend_loc, legend_map, show_legend = _process_legend_keywords( +# kwargs, (nrows, ncols), 'center right') +# +# # Customize axes (curvilinear grids, shared axes, etc) +# +# # Plot the data +# lines = np.full(ax_array.shape, []) +# line_labels = _process_line_labels(label, ntraces, nrows, ncols) +# color_offset, color_cycle = _get_color_offset(ax) +# for i, j in itertools.product(range(nrows), range(ncols)): +# ax = ax_array[i, j] +# for k in range(ntraces): +# if color is None: +# color = _get_color( +# color, fmt=fmt, offset=k, color_cycle=color_cycle) +# label = line_labels[k, i, j] +# lines[i, j] += ax.plot(data.x, data.y, color=color, label=label) +# +# # Customize and label the axes +# for i, j in itertools.product(range(nrows), range(ncols)): +# ax_array[i, j].set_xlabel("x label") +# ax_array[i, j].set_ylabel("y label") +# +# # Create legends +# if show_legend != False: +# legend_array = np.full(ax_array.shape, None, dtype=object) +# for i, j in itertools.product(range(nrows), range(ncols)): +# if legend_map[i, j] is not None: +# lines = ax_array[i, j].get_lines() +# labels = _make_legend_labels(lines) +# if len(labels) > 1: +# legend_array[i, j] = ax.legend( +# lines, labels, loc=legend_map[i, j]) +# else: +# legend_array = None +# +# # Update the plot title (only if ax was not given) +# sysnames = [response.sysname for response in data] +# if ax is None and title is None: +# title = "Name plot for " + ", ".join(sysnames) +# _update_plot_title(title, fig, rcParams=rcParams) +# elif ax == None: +# _update_plot_title(title, fig, rcParams=rcParams, use_existing=False) +# +# # Legacy processing of plot keyword +# if plot is True: +# return data +# +# return ControlPlot(lines, ax_array, fig, legend=legend_map) + +import itertools +import warnings +from os.path import commonprefix + +import matplotlib as mpl +import matplotlib.pyplot as plt +import numpy as np + +from . import config + +__all__ = [ + 'ControlPlot', 'suptitle', 'get_plot_axes', 'pole_zero_subplots', + 'rcParams', 'reset_rcParams'] + +# +# Style parameters +# + +rcParams_default = { + 'axes.labelsize': 'small', + 'axes.titlesize': 'small', + 'figure.titlesize': 'medium', + 'legend.fontsize': 'x-small', + 'xtick.labelsize': 'small', + 'ytick.labelsize': 'small', +} +_ctrlplot_rcParams = rcParams_default.copy() # provide access inside module +rcParams = _ctrlplot_rcParams # provide access outside module + +_ctrlplot_defaults = {'ctrlplot.rcParams': _ctrlplot_rcParams} + + +# +# Control figure +# + +class ControlPlot(): + """Return class for control platting functions. + + This class is used as the return type for control plotting functions. + It contains the information required to access portions of the plot + that the user might want to adjust, as well as providing methods to + modify some of the properties of the plot. + + A control figure consists of a `matplotlib.figure.Figure` with + an array of `matplotlib.axes.Axes`. Each axes in the figure has + a number of lines that represent the data for the plot. There may also + be a legend present in one or more of the axes. + + Parameters + ---------- + lines : array of list of `matplotlib.lines.Line2D` + Array of Line2D objects for each line in the plot. Generally, the + shape of the array matches the subplots shape and the value of the + array is a list of Line2D objects in that subplot. Some plotting + functions will return variants of this structure, as described in + the individual documentation for the functions. + axes : 2D array of `matplotlib.axes.Axes` + Array of Axes objects for each subplot in the plot. + figure : `matplotlib.figure.Figure` + Figure on which the Axes are drawn. + legend : `matplotlib.legend.Legend` (instance or ndarray) + Legend object(s) for the plot. If more than one legend is + included, this will be an array with each entry being either None + (for no legend) or a legend object. + + """ + def __init__(self, lines, axes=None, figure=None, legend=None): + self.lines = lines + if axes is None: + _get_axes = np.vectorize(lambda lines: lines[0].axes) + axes = _get_axes(lines) + self.axes = np.atleast_2d(axes) + if figure is None: + figure = self.axes[0, 0].figure + self.figure = figure + self.legend = legend + + # Implement methods and properties to allow legacy interface (np.array) + __iter__ = lambda self: self.lines + __len__ = lambda self: len(self.lines) + def __getitem__(self, item): + warnings.warn( + "return of Line2D objects from plot function is deprecated in " + "favor of ControlPlot; use out.lines to access Line2D objects", + category=FutureWarning) + return self.lines[item] + def __setitem__(self, item, val): + self.lines[item] = val + shape = property(lambda self: self.lines.shape, None) + def reshape(self, *args): + """Reshape lines array (legacy).""" + return self.lines.reshape(*args) + + def set_plot_title(self, title, frame='axes'): + """Set the title for a control plot. + + This is a wrapper for the matplotlib `suptitle` function, but by + setting `frame` to 'axes' (default) then the title is centered on + the midpoint of the axes in the figure, rather than the center of + the figure. This usually looks better (particularly with + multi-panel plots), though it takes longer to render. + + Parameters + ---------- + title : str + Title text. + fig : Figure, optional + Matplotlib figure. Defaults to current figure. + frame : str, optional + Coordinate frame for centering: 'axes' (default) or 'figure'. + **kwargs : `matplotlib.pyplot.suptitle` keywords, optional + Additional keywords (passed to matplotlib). + + """ + _update_plot_title( + title, fig=self.figure, frame=frame, use_existing=False) + +# +# User functions +# +# The functions below can be used by users to modify control plots or get +# information about them. +# + +def suptitle( + title, fig=None, frame='axes', **kwargs): + """Add a centered title to a figure. + + .. deprecated:: 0.10.1 + Use `ControlPlot.set_plot_title`. + + """ + warnings.warn( + "suptitle() is deprecated; use cplt.set_plot_title()", FutureWarning) + _update_plot_title( + title, fig=fig, frame=frame, use_existing=False, **kwargs) + + +# Create vectorized function to find axes from lines +def get_plot_axes(line_array): + """Get a list of axes from an array of lines. + + .. deprecated:: 0.10.1 + This function will be removed in a future version of python-control. + Use `cplt.axes` to obtain axes for an instance of `ControlPlot`. + + This function can be used to return the set of axes corresponding + to the line array that is returned by `time_response_plot`. This + is useful for generating an axes array that can be passed to + subsequent plotting calls. + + Parameters + ---------- + line_array : array of list of `matplotlib.lines.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 : array of list of `matplotlib.axes.Axes` + A 2D array with elements corresponding to the Axes associated with + the lines in `line_array`. + + Notes + ----- + Only the first element of each array entry is used to determine the axes. + + """ + warnings.warn( + "get_plot_axes() is deprecated; use cplt.axes()", FutureWarning) + _get_axes = np.vectorize(lambda lines: lines[0].axes) + if isinstance(line_array, ControlPlot): + return _get_axes(line_array.lines) + else: + return _get_axes(line_array) + + +def pole_zero_subplots( + nrows, ncols, grid=None, dt=None, fig=None, scaling=None, + rcParams=None): + """Create axes for pole/zero plot. + + Parameters + ---------- + nrows, ncols : int + Number of rows and columns. + grid : True, False, or 'empty', optional + Grid style to use. Can also be a list, in which case each subplot + will have a different style (columns then rows). + dt : timebase, option + Timebase for each subplot (or a list of timebases). + scaling : 'auto', 'equal', or None + Scaling to apply to the subplots. + fig : `matplotlib.figure.Figure` + Figure to use for creating subplots. + rcParams : dict + Override the default parameters used for generating plots. + Default is set by `config.defaults['ctrlplot.rcParams']`. + + Returns + ------- + ax_array : ndarray + 2D array of axes. + + """ + from .grid import nogrid, sgrid, zgrid + from .iosys import isctime + + if fig is None: + fig = plt.gcf() + rcParams = config._get_param('ctrlplot', 'rcParams', rcParams) + + if not isinstance(grid, list): + grid = [grid] * nrows * ncols + if not isinstance(dt, list): + dt = [dt] * nrows * ncols + + ax_array = np.full((nrows, ncols), None) + index = 0 + with plt.rc_context(rcParams): + for row, col in itertools.product(range(nrows), range(ncols)): + match grid[index], isctime(dt=dt[index]): + case 'empty', _: # empty grid + ax_array[row, col] = fig.add_subplot(nrows, ncols, index+1) + + case True, True: # continuous-time grid + ax_array[row, col], _ = sgrid( + (nrows, ncols, index+1), scaling=scaling) + + case True, False: # discrete-time grid + ax_array[row, col] = fig.add_subplot(nrows, ncols, index+1) + zgrid(ax=ax_array[row, col], scaling=scaling) + + case False | None, _: # no grid (just stability boundaries) + ax_array[row, col] = fig.add_subplot(nrows, ncols, index+1) + nogrid( + ax=ax_array[row, col], dt=dt[index], scaling=scaling) + index += 1 + return ax_array + + +def reset_rcParams(): + """Reset rcParams to default values for control plots.""" + _ctrlplot_rcParams.update(rcParams_default) + + +# +# Utility functions +# +# These functions are used by plotting routines to provide a consistent way +# of processing and displaying information. +# + +def _process_ax_keyword( + axs, shape=(1, 1), rcParams=None, squeeze=False, clear_text=False, + create_axes=True, sharex=False, sharey=False): + """Process ax keyword to plotting commands. + + This function processes the `ax` keyword to plotting commands. If no + ax keyword is passed, the current figure is checked to see if it has + the correct shape. If the shape matches the desired shape, then the + current figure and axes are returned. Otherwise a new figure is + created with axes of the desired shape. + + If `create_axes` is False and a new/empty figure is returned, then `axs` + is an array of the proper shape but None for each element. This allows + the calling function to do the actual axis creation (needed for + curvilinear grids that use the AxisArtist module). + + Legacy behavior: some of the older plotting commands use an axes label + to identify the proper axes for plotting. This behavior is supported + through the use of the label keyword, but will only work if shape == + (1, 1) and squeeze == True. + + """ + if axs is None: + fig = plt.gcf() # get current figure (or create new one) + axs = fig.get_axes() + + # Check to see if axes are the right shape; if not, create new figure + # Note: can't actually check the shape, just the total number of axes + if len(axs) != np.prod(shape): + with plt.rc_context(rcParams): + if len(axs) != 0 and create_axes: + # Create a new figure + fig, axs = plt.subplots( + *shape, sharex=sharex, sharey=sharey, squeeze=False) + elif create_axes: + # Create new axes on (empty) figure + axs = fig.subplots( + *shape, sharex=sharex, sharey=sharey, squeeze=False) + else: + # Create an empty array and let user create axes + axs = np.full(shape, None) + if create_axes: # if not creating axes, leave these to caller + fig.set_layout_engine('tight') + fig.align_labels() + + else: + # Use the existing axes, properly reshaped + axs = np.asarray(axs).reshape(*shape) + + if clear_text: + # Clear out any old text from the current figure + for text in fig.texts: + text.set_visible(False) # turn off the text + del text # get rid of it completely + else: + axs = np.atleast_1d(axs) + try: + axs = axs.reshape(shape) + except ValueError: + raise ValueError( + "specified axes are not the right shape; " + f"got {axs.shape} but expecting {shape}") + fig = axs[0, 0].figure + + # Process the squeeze keyword + if squeeze and shape == (1, 1): + axs = axs[0, 0] # Just return the single axes object + elif squeeze: + axs = axs.squeeze() + + return fig, axs + + +# Turn label keyword into array indexed by trace, output, input +# TODO: move to ctrlutil.py and update parameter names to reflect general use +def _process_line_labels(label, ntraces=1, ninputs=0, noutputs=0): + if label is None: + return None + + if isinstance(label, str): + label = [label] * ntraces # single label for all traces + + # Convert to an ndarray, if not done already + try: + line_labels = np.asarray(label) + except ValueError: + raise ValueError("label must be a string or array_like") + + # Turn the data into a 3D array of appropriate shape + # TODO: allow more sophisticated broadcasting (and error checking) + try: + if ninputs > 0 and noutputs > 0: + if line_labels.ndim == 1 and line_labels.size == ntraces: + line_labels = line_labels.reshape(ntraces, 1, 1) + line_labels = np.broadcast_to( + line_labels, (ntraces, ninputs, noutputs)) + else: + line_labels = line_labels.reshape(ntraces, ninputs, noutputs) + except ValueError: + if line_labels.shape[0] != ntraces: + raise ValueError("number of labels must match number of traces") + else: + raise ValueError("labels must be given for each input/output pair") + + return line_labels + + +# Get labels for all lines in an axes +def _get_line_labels(ax, use_color=True): + labels_colors, lines = [], [] + last_color, counter = None, 0 # label unknown systems + for i, line in enumerate(ax.get_lines()): + label = line.get_label() + color = line.get_color() + if use_color and label.startswith("Unknown"): + label = f"Unknown-{counter}" + if last_color != color: + counter += 1 + last_color = color + elif label[0] == '_': + continue + + if (label, color) not in labels_colors: + lines.append(line) + labels_colors.append((label, color)) + + return lines, [label for label, color in labels_colors] + + +def _process_legend_keywords( + kwargs, shape=None, default_loc='center right'): + legend_loc = kwargs.pop('legend_loc', None) + if shape is None and 'legend_map' in kwargs: + raise TypeError("unexpected keyword argument 'legend_map'") + else: + legend_map = kwargs.pop('legend_map', None) + show_legend = kwargs.pop('show_legend', None) + + # If legend_loc or legend_map were given, always show the legend + if legend_loc is False or legend_map is False: + if show_legend is True: + warnings.warn( + "show_legend ignored; legend_loc or legend_map was given") + show_legend = False + legend_loc = legend_map = None + elif legend_loc is not None or legend_map is not None: + if show_legend is False: + warnings.warn( + "show_legend ignored; legend_loc or legend_map was given") + show_legend = True + + if legend_loc is None: + legend_loc = default_loc + elif not isinstance(legend_loc, (int, str)): + raise ValueError("legend_loc must be string or int") + + # Make sure the legend map is the right size + if legend_map is not None: + legend_map = np.atleast_2d(legend_map) + if legend_map.shape != shape: + raise ValueError("legend_map shape just match axes shape") + + return legend_loc, legend_map, show_legend + + +# Utility function to make legend labels +def _make_legend_labels(labels, ignore_common=False): + if len(labels) == 1: + return labels + + # Look for a common prefix (up to a space) + common_prefix = commonprefix(labels) + last_space = common_prefix.rfind(', ') + if last_space < 0 or ignore_common: + common_prefix = '' + elif last_space > 0: + common_prefix = common_prefix[:last_space + 2] + prefix_len = len(common_prefix) + + # Look for a common suffix (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 and not ignore_common: + labels = [label[prefix_len:-suffix_len] for label in labels] + else: + labels = [label[prefix_len:] for label in labels] + + return labels + + +def _update_plot_title( + title, fig=None, frame='axes', use_existing=True, **kwargs): + if title is False or title is None: + return + if fig is None: + fig = plt.gcf() + rcParams = config._get_param('ctrlplot', 'rcParams', kwargs, pop=True) + + if use_existing: + # 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] + common_len = len(common_prefix) + + # Add the new part of the title (usually the system name) + if old_title[common_len:] != title[common_len:]: + separator = ',' if len(common_prefix) > 0 else ';' + title = old_title + separator + title[common_len:] + + if frame == 'figure': + with plt.rc_context(rcParams): + fig.suptitle(title, **kwargs) + + elif frame == 'axes': + with plt.rc_context(rcParams): + fig.suptitle(title, **kwargs) # Place title in center + plt.tight_layout() # Put everything into place + xc, _ = _find_axes_center(fig, fig.get_axes()) + fig.suptitle(title, x=xc, **kwargs) # Redraw title, centered + + else: + raise ValueError(f"unknown frame '{frame}'") + + +def _find_axes_center(fig, axs): + """Find the midpoint between axes in display coordinates. + + This function finds the middle of a plot as defined by a set of axes. + + """ + inv_transform = fig.transFigure.inverted() + xlim = ylim = [1, 0] + for ax in axs: + ll = inv_transform.transform(ax.transAxes.transform((0, 0))) + ur = inv_transform.transform(ax.transAxes.transform((1, 1))) + + xlim = [min(ll[0], xlim[0]), max(ur[0], xlim[1])] + ylim = [min(ll[1], ylim[0]), max(ur[1], ylim[1])] + + return (np.sum(xlim)/2, np.sum(ylim)/2) + + +# Internal function to add arrows to a curve +def _add_arrows_to_line2D( + axes, line, arrow_locs=[0.2, 0.4, 0.6, 0.8], + arrowstyle='-|>', arrowsize=1, dir=1): + """ + Add arrows to a matplotlib.lines.Line2D at selected locations. + + Parameters + ---------- + axes: Axes object as returned by axes command (or gca) + line: Line2D object as returned by plot command + arrow_locs: list of locations where to insert arrows, % of total length + arrowstyle: style of the arrow + arrowsize: size of the arrow + + Returns + ------- + arrows : list of arrows + + Notes + ----- + Based on https://stackoverflow.com/questions/26911898/ + + """ + # Get the coordinates of the line, in plot coordinates + if not isinstance(line, mpl.lines.Line2D): + raise ValueError("expected a matplotlib.lines.Line2D object") + x, y = line.get_xdata(), line.get_ydata() + + # Determine the arrow properties + arrow_kw = {"arrowstyle": arrowstyle} + + color = line.get_color() + use_multicolor_lines = isinstance(color, np.ndarray) + if use_multicolor_lines: + raise NotImplementedError("multi-color lines not supported") + else: + arrow_kw['color'] = color + + linewidth = line.get_linewidth() + if isinstance(linewidth, np.ndarray): + raise NotImplementedError("multi-width lines not supported") + else: + arrow_kw['linewidth'] = linewidth + + # Figure out the size of the axes (length of diagonal) + xlim, ylim = axes.get_xlim(), axes.get_ylim() + ul, lr = np.array([xlim[0], ylim[0]]), np.array([xlim[1], ylim[1]]) + diag = np.linalg.norm(ul - lr) + + # Compute the arc length along the curve + s = np.cumsum(np.sqrt(np.diff(x) ** 2 + np.diff(y) ** 2)) + + # Truncate the number of arrows if the curve is short + # TODO: figure out a smarter way to do this + frac = min(s[-1] / diag, 1) + if len(arrow_locs) and frac < 0.05: + arrow_locs = [] # too short; no arrows at all + elif len(arrow_locs) and frac < 0.2: + arrow_locs = [0.5] # single arrow in the middle + + # Plot the arrows (and return list if patches) + arrows = [] + for loc in arrow_locs: + n = np.searchsorted(s, s[-1] * loc) + + if dir == 1 and n == 0: + # Move the arrow forward by one if it is at start of a segment + n = 1 + + # Place the head of the arrow at the desired location + arrow_head = [x[n], y[n]] + arrow_tail = [x[n - dir], y[n - dir]] + + p = mpl.patches.FancyArrowPatch( + arrow_tail, arrow_head, transform=axes.transData, lw=0, + **arrow_kw) + axes.add_patch(p) + arrows.append(p) + return arrows + + +def _get_color_offset(ax, color_cycle=None): + """Get color offset based on current lines. + + This function determines that the current offset is for the next color + to use based on current colors in a plot. + + Parameters + ---------- + ax : `matplotlib.axes.Axes` + Axes containing already plotted lines. + color_cycle : list of matplotlib color specs, optional + Colors to use in plotting lines. Defaults to matplotlib rcParams + color cycle. + + Returns + ------- + color_offset : matplotlib color spec + Starting color for next line to be drawn. + color_cycle : list of matplotlib color specs + Color cycle used to determine colors. + + """ + if color_cycle is None: + 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 + + return color_offset % len(color_cycle), color_cycle + + +def _get_color( + colorspec, offset=None, fmt=None, ax=None, lines=None, + color_cycle=None): + """Get color to use for plotting line. + + This function returns the color to be used for the line to be drawn (or + None if the default color cycle for the axes should be used). + + Parameters + ---------- + colorspec : matplotlib color specification + User-specified color (or None). + offset : int, optional + Offset into the color cycle (for multi-trace plots). + fmt : str, optional + Format string passed to plotting command. + ax : `matplotlib.axes.Axes`, optional + Axes containing already plotted lines. + lines : list of matplotlib.lines.Line2D, optional + List of plotted lines. If not given, use ax.get_lines(). + color_cycle : list of matplotlib color specs, optional + Colors to use in plotting lines. Defaults to matplotlib rcParams + color cycle. + + Returns + ------- + color : matplotlib color spec + Color to use for this line (or None for matplotlib default). + + """ + # See if the color was explicitly specified by the user + if isinstance(colorspec, dict): + if 'color' in colorspec: + return colorspec.pop('color') + elif fmt is not None and \ + [isinstance(arg, str) and + any([c in arg for c in "bgrcmykw#"]) for arg in fmt]: + return None # *fmt will set the color + elif colorspec != None: + return colorspec + + # Figure out what color cycle to use, if not given by caller + if color_cycle == None: + color_cycle = plt.rcParams['axes.prop_cycle'].by_key()['color'] + + # Find the lines that we should pay attention to + if lines is None and ax is not None: + lines = ax.lines + + # If we were passed a set of lines, try to increment color from previous + if offset is not None: + return color_cycle[offset] + elif lines is not None: + 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 + color_offset = color_offset % len(color_cycle) + return color_cycle[color_offset] + else: + return None diff --git a/control/ctrlutil.py b/control/ctrlutil.py index 6cd32593b..4db22f9c6 100644 --- a/control/ctrlutil.py +++ b/control/ctrlutil.py @@ -1,51 +1,18 @@ # ctrlutil.py - control system utility functions # -# Author: Richard M. Murray -# Date: 24 May 09 -# -# These are some basic utility functions that are used in the control -# systems library and that didn't naturally fit anyplace else. -# -# 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. -# -# $Id$ +# Initial author: Richard M. Murray +# Creation date: 24 May 2009 +# Use `git shortlog -n -s ctrlutil.py` for full list of contributors + +"""Control system utility functions.""" -# Packages that we need access to -from . import lti -import numpy as np import math import warnings +import numpy as np + +from .lti import LTI + __all__ = ['unwrap', 'issys', 'db2mag', 'mag2db'] # Utility function to unwrap an angle measurement @@ -55,14 +22,14 @@ def unwrap(angle, period=2*math.pi): Parameters ---------- angle : array_like - Array of angles to be unwrapped + Array of angles to be unwrapped. period : float, optional - Period (defaults to `2*pi`) + Period (defaults to 2 pi). Returns ------- - angle_out : array_like - Output array, with jumps of period/2 eliminated + angle_out : ndarray + Output array, with jumps of period/2 eliminated. Examples -------- @@ -88,12 +55,13 @@ def unwrap(angle, period=2*math.pi): def issys(obj): """Deprecated function to check if an object is an LTI system. - Use isinstance(obj, ct.LTI) + .. deprecated:: 0.10.0 + Use isinstance(obj, ct.LTI) """ warnings.warn("issys() is deprecated; use isinstance(obj, ct.LTI)", FutureWarning, stacklevel=2) - return isinstance(obj, lti.LTI) + return isinstance(obj, LTI) def db2mag(db): """Convert a gain in decibels (dB) to a magnitude. @@ -105,12 +73,12 @@ def db2mag(db): Parameters ---------- db : float or ndarray - input value or array of values, given in decibels + Input value or array of values, given in decibels. Returns ------- mag : float or ndarray - corresponding magnitudes + Corresponding magnitudes. Examples -------- @@ -133,12 +101,12 @@ def mag2db(mag): Parameters ---------- mag : float or ndarray - input magnitude or array of magnitudes + Input magnitude or array of magnitudes. Returns ------- db : float or ndarray - corresponding values in decibels + Corresponding values in decibels. Examples -------- diff --git a/control/delay.py b/control/delay.py index d22e44107..550a779af 100644 --- a/control/delay.py +++ b/control/delay.py @@ -1,79 +1,45 @@ -# -*-coding: utf-8-*- -#! TODO: add module docstring # delay.py - functions involving time delays # -# Author: Sawyer Fuller -# Date: 26 Aug 2010 -# -# This file contains functions for implementing time delays (currently -# only the pade() function). -# -# 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$ +# Initial author: Sawyer Fuller +# Creation date: 26 Aug 2010 +"""Functions to implement time delays (pade).""" __all__ = ['pade'] def pade(T, n=1, numdeg=None): - """ - Create a linear system that approximates a delay. + """Create a linear system that approximates a delay. - Return the numerator and denominator coefficients of the Pade approximation. + Return the numerator and denominator coefficients of the Pade + approximation of the given order. Parameters ---------- T : number - time delay + Time. delay n : positive integer - degree of denominator of approximation - numdeg: integer, or None (the default) - If None, numerator degree equals denominator degree - If >= 0, specifies degree of numerator - If < 0, numerator degree is n+numdeg + Degree of denominator of approximation. + numdeg : integer, or None (the default) + If numdeg is None, numerator degree equals denominator degree. + If numdeg >= 0, specifies degree of numerator. + If numdeg < 0, numerator degree is n+numdeg. Returns ------- - num, den : array + num, den : ndarray Polynomial coefficients of the delay model, in descending powers of s. Notes ----- - Based on: - 1. Algorithm 11.3.1 in Golub and van Loan, "Matrix Computation" 3rd. - Ed. pp. 572-574 - 2. M. Vajta, "Some remarks on Padé-approximations", - 3rd TEMPUS-INTCOM Symposium + Based on [1]_ and [2]_. + + References + ---------- + .. [1] Algorithm 11.3.1 in Golub and van Loan, "Matrix Computation" 3rd. + Ed. pp. 572-574. + + .. [2] M. Vajta, "Some remarks on Padé-approximations", + 3rd TEMPUS-INTCOM Symposium. Examples -------- @@ -107,7 +73,7 @@ def pade(T, n=1, numdeg=None): num[-1] = 1. cn = 1. for k in range(1, numdeg+1): - # derived from Gloub and van Loan eq. for Dpq(z) on p. 572 + # derived from Golub and van Loan eq. for Dpq(z) on p. 572 # this accumulative style follows Alg 11.3.1 cn *= -T * (numdeg - k + 1)/(numdeg + n - k + 1)/k num[numdeg-k] = cn diff --git a/control/descfcn.py b/control/descfcn.py index 6586e6f20..22d83d9fc 100644 --- a/control/descfcn.py +++ b/control/descfcn.py @@ -1,25 +1,20 @@ # descfcn.py - describing function analysis -# # RMM, 23 Jan 2021 -# -# This module adds functions for carrying out analysis of systems with -# memoryless nonlinear feedback functions using describing functions. -# -"""The :mod:~control.descfcn` module contains function for performing -closed loop analysis of systems with memoryless nonlinearities using -describing function analysis. +"""This module contains functions for performing closed loop analysis of +systems with memoryless nonlinearities using describing function analysis. """ import math +from warnings import warn + import numpy as np -import matplotlib.pyplot as plt import scipy -from warnings import warn -from .freqplot import nyquist_response from . import config +from .ctrlplot import ControlPlot +from .freqplot import nyquist_response __all__ = ['describing_function', 'describing_function_plot', 'describing_function_response', 'DescribingFunctionResponse', @@ -33,12 +28,12 @@ class DescribingFunctionNonlinearity(): This class is intended to be used as a base class for nonlinear functions that have an analytically defined describing function. Subclasses should override the `__call__` and `describing_function` methods and (optionally) - the `_isstatic` method (should be `False` if `__call__` updates the + the `_isstatic` method (should be False if `__call__` updates the instance state). """ def __init__(self): - """Initailize a describing function nonlinearity (optional).""" + """Initialize a describing function nonlinearity (optional).""" pass def __call__(self, A): @@ -53,6 +48,16 @@ def describing_function(self, A): describing function for a nonlinearity. It turns the (complex) value of the describing function for sinusoidal input of amplitude `A`. + Parameters + ---------- + A : float + Amplitude of the sinusoidal input to the nonlinearity. + + Returns + ------- + float + Value of the describing function at the given amplitude. + """ raise NotImplementedError( "describing function not implemented for this function") @@ -61,7 +66,7 @@ def _isstatic(self): """Return True if the function has no internal state (memoryless). This internal function is used to optimize numerical computation of - the describing function. It can be set to `True` if the instance + the describing function. It can be set to True if the instance maintains no internal memory of the instance state. Assumed False by default. @@ -76,7 +81,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 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 @@ -94,27 +99,31 @@ def describing_function( If the function is an object with a method `describing_function` then this method will be used to computing the describing function instead of a nonlinear computation. Some common nonlinearities - use the :class:`~control.DescribingFunctionNonlinearity` class, + use the `DescribingFunctionNonlinearity` class, which provides this functionality. A : array_like The amplitude(s) at which the describing function should be calculated. + num_points : int, optional + Number of points to use in computing describing function (default = + 100). + zero_check : bool, optional - If `True` (default) then `A` is zero, the function will be evaluated + If True (default) then `A` is zero, the function will be evaluated and checked to make sure it is zero. If not, a `TypeError` exception - is raised. If zero_check is `False`, no check is made on the value of + is raised. If zero_check is False, no check is made on the value of the function at zero. try_method : bool, optional - If `True` (default), check the `F` argument to see if it is an object + If True (default), check the `F` argument to see if it is an object with a `describing_function` method and use this to compute the describing function. More information in the `describing_function` - method for the :class:`~control.DescribingFunctionNonlinearity` class. + method for the `DescribingFunctionNonlinearity` class. Returns ------- - df : array of complex + df : ndarray of complex The (complex) value of the describing function at the given amplitudes. Raises @@ -142,7 +151,7 @@ def describing_function( # # The describing function of a nonlinear function F() can be computed by # evaluating the nonlinearity over a sinusoid. The Fourier series for a - # static nonlinear function evaluated on a sinusoid can be written as + # nonlinear function evaluated on a sinusoid can be written as # # F(A\sin\omega t) = \sum_{k=1}^\infty M_k(A) \sin(k\omega t + \phi_k(A)) # @@ -198,7 +207,7 @@ def describing_function( # Evaluate the function along a sinusoid F_eval = np.array([F(x) for x in a*sin_theta]).squeeze() - # Compute the prjections onto sine and cosine + # Compute the projections onto sine and cosine df_real = (F_eval @ sin_theta) * scale # = M_1 \cos\phi / a df_imag = (F_eval @ cos_theta) * scale # = M_1 \sin\phi / a @@ -216,27 +225,27 @@ 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 + nonlinear feedback function. The DescribingFunctionResponse class + is used by the `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 + Parameters ---------- - response : :class:`~control.FrequencyResponseData` + response : `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 + :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. + Complex value of the describing function, indexed by amplitude. positions : list of complex Location of the intersections in the complex plane. @@ -251,7 +260,7 @@ def __init__(self, response, N_vals, positions, intersections): def plot(self, **kwargs): """Plot the results of a describing function analysis. - See :func:`~control.describing_function_plot` for details. + See `describing_function_plot` for details. """ return describing_function_plot(self, **kwargs) @@ -269,43 +278,54 @@ def __len__(self): # 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): + _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. + loop system consisting of a linear system with a 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, + Linear time-invariant (LTI) system (state space, transfer function, + or FRD). + F : nonlinear function + Feedback 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. 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. + 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. + refine : bool, optional + If True, `scipy.optimize.minimize` to refine the estimate + of the intersection of the frequency response and the describing + function. Returns ------- - response : :class:`~control.DescribingFunctionResponse` object + response : `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 + analysis. The results can plotted using the + `~DescribingFunctionResponse.plot` method. + response.intersections : 1D ndarray 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 + 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.Nvals : complex ndarray + Complex value of the describing function, indexed by amplitude. + + See Also + -------- + DescribingFunctionResponse, describing_function_plot Examples -------- @@ -315,7 +335,7 @@ def describing_function_response( >>> response = ct.describing_function_response(H_simple, F_saturation, amp) >>> response.intersections # doctest: +SKIP [(3.343844998258643, 1.4142293090899216)] - >>> lines = response.plot() + >>> cplt = response.plot() """ # Decide whether to turn on warnings or not @@ -326,7 +346,7 @@ def describing_function_response( # Start by drawing a Nyquist curve response = nyquist_response( H, omega, warn_encirclements=warn_nyquist, warn_nyquist=warn_nyquist, - check_kwargs=check_kwargs, **kwargs) + _check_kwargs=_check_kwargs, **kwargs) H_omega, H_vals = response.contour.imag, H(response.contour) # Compute the describing function @@ -378,14 +398,13 @@ def _cost(x): def describing_function_plot( - *sysdata, label="%5.2g @ %-5.2g", **kwargs): + *sysdata, point_label="%5.2g @ %-5.2g", label=None, **kwargs): """describing_function_plot(data, *args, **kwargs) - Plot a Nyquist plot with a describing function for a nonlinear system. + Nyquist plot with 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. + consisting of a linear system with a nonlinearity in the feedback path. The function may be called in one of two forms: @@ -394,20 +413,20 @@ def describing_function_plot( 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 + `describing_function_response` function. In the second form, that function is called internally, with the listed arguments. Parameters ---------- - data : :class:`~control.DescribingFunctionData` + data : `DescribingFunctionResponse` A describing function response data object created by - :func:`~control.describing_function_response`. + `describing_function_response`. 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. + Linear time-invariant (LTI) system (state space, transfer function, + or FRD). + F : nonlinear function + Nonlinearity in the feedback path, 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 @@ -417,32 +436,62 @@ def describing_function_plot( 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 + determine the intersection point. + label : str or array_like of str, optional + If present, replace automatically generated label with the given label. + 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. + plot. Defaults to "%5.2g @ %-5.2g". Set to None to omit labels. + ax : `matplotlib.axes.Axes`, optional + The matplotlib axes to draw the figure on. If not specified and + the current figure has a single axes, that axes is used. + Otherwise, a new figure is created. + title : str, optional + Set the title of the plot. Defaults to plot type and system name(s). + 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. + **kwargs : `matplotlib.pyplot.plot` keyword properties, optional + Additional keywords passed to `matplotlib` to specify line properties + for Nyquist curve. Returns ------- - lines : 1D array of Line2D - Arrray of Line2D objects for each line in the plot. The first + cplt : `ControlPlot` object + Object containing the data that were plotted. See `ControlPlot` + for more detailed information. + cplt.lines : array of `matplotlib.lines.Line2D` + Array containing information on 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 Nyquist plot of the linear I/O system. The second element of the array is a list of lines (typically only one) for the describing function curve. + cplt.axes : 2D array of `matplotlib.axes.Axes` + Axes for each subplot. + cplt.figure : `matplotlib.figure.Figure` + Figure containing the plot. + + See Also + -------- + DescribingFunctionResponse, describing_function_response Examples -------- >>> H_simple = ct.tf([8], [1, 2, 2, 1]) >>> F_saturation = ct.saturation_nonlinearity(1) >>> amp = np.linspace(1, 4, 10) - >>> lines = ct.describing_function_plot(H_simple, F_saturation, amp) + >>> cplt = ct.describing_function_plot(H_simple, F_saturation, amp) """ # Process keywords warn_nyquist = config._process_legacy_keyword( kwargs, 'warn', 'warn_nyquist', kwargs.pop('warn_nyquist', None)) + point_label = config._process_legacy_keyword( + kwargs, 'label', 'point_label', point_label) + # TODO: update to be consistent with ctrlplot use of `label` if label not in (False, None) and not isinstance(label, str): raise ValueError("label must be formatting string, False, or None") @@ -454,27 +503,36 @@ def describing_function_plot( *sysdata, refine=kwargs.pop('refine', True), warn_nyquist=warn_nyquist) elif len(sysdata) == 1: - dfresp = sysdata[0] + if not isinstance(sysdata[0], DescribingFunctionResponse): + raise TypeError("data must be DescribingFunctionResponse") + else: + dfresp = sysdata[0] else: raise TypeError("1, 3, or 4 position arguments required") + # Don't allow legend keyword arguments + for kw in ['legend_loc', 'legend_map', 'show_legend']: + if kw in kwargs: + raise TypeError(f"unexpected keyword argument '{kw}'") + # Create a list of lines for the output - out = np.empty(2, dtype=object) + lines = np.empty(2, dtype=object) # Plot the Nyquist response - out[0] = dfresp.response.plot(**kwargs)[0] + cplt = dfresp.response.plot(**kwargs) + ax = cplt.axes[0, 0] # Get the axes where the plot was made + lines[0] = cplt.lines[0] # Return Nyquist lines for first system # Add the describing function curve to the plot - lines = plt.plot(dfresp.N_vals.real, dfresp.N_vals.imag) - out[1] = lines + lines[1] = ax.plot(dfresp.N_vals.real, dfresp.N_vals.imag) # Label the intersection points - if label: + if point_label: for pos, (a, omega) in zip(dfresp.positions, dfresp.intersections): # Add labels to the intersection points - plt.text(pos.real, pos.imag, label % (a, omega)) + ax.text(pos.real, pos.imag, point_label % (a, omega)) - return out + return ControlPlot(lines, cplt.axes, cplt.figure) # Utility function to figure out whether two line segments intersection @@ -507,7 +565,7 @@ def _find_intersection(L1a, L1b, L2a, L2b): # Saturation nonlinearity class saturation_nonlinearity(DescribingFunctionNonlinearity): - """Create saturation nonlinearity for use in describing function analysis. + """Saturation nonlinearity for describing function analysis. This class creates a nonlinear function representing a saturation with given upper and lower bounds, including the describing function for the @@ -521,15 +579,20 @@ class saturation_nonlinearity(DescribingFunctionNonlinearity): functions will not have zero bias and hence care must be taken in using the nonlinearity for analysis. + Parameters + ---------- + lb, ub : float + Upper and lower saturation bounds. + Examples -------- >>> nl = ct.saturation_nonlinearity(5) >>> nl(1) - 1 + np.int64(1) >>> nl(10) - 5 + np.int64(5) >>> nl(-10) - -5 + np.int64(-5) """ def __init__(self, ub=1, lb=None): @@ -555,6 +618,19 @@ def _isstatic(self): return True def describing_function(self, A): + """Return the describing function for a saturation nonlinearity. + + Parameters + ---------- + A : float + Amplitude of the sinusoidal input to the nonlinearity. + + Returns + ------- + float + Value of the describing function at the given amplitude. + + """ # Check to make sure the amplitude is positive if A < 0: raise ValueError("cannot evaluate describing function for A < 0") @@ -569,21 +645,28 @@ def describing_function(self, A): # Relay with hysteresis (FBS2e, Example 10.12) class relay_hysteresis_nonlinearity(DescribingFunctionNonlinearity): - """Relay w/ hysteresis nonlinearity for describing function analysis. + """Relay w/ hysteresis for describing function analysis. This class creates a nonlinear function representing a a relay with symmetric upper and lower bounds of magnitude `b` and a hysteretic region of width `c` (using the notation from [FBS2e](https://fbsbook.org), Example 10.12, including the describing function for the nonlinearity. The following call creates a nonlinear function suitable for describing - function analysis: + function analysis:: F = relay_hysteresis_nonlinearity(b, c) - The output of this function is `b` if `x > c` and `-b` if `x < -c`. For - `-c <= x <= c`, the value depends on the branch of the hysteresis loop (as + The output of this function is b if x > c and -b if x < -c. For -c <= + x <= c, the value depends on the branch of the hysteresis loop (as illustrated in Figure 10.20 of FBS2e). + Parameters + ---------- + b : float + Hysteresis bound. + c : float + Width of hysteresis region. + Examples -------- >>> nl = ct.relay_hysteresis_nonlinearity(1, 2) @@ -625,6 +708,19 @@ def _isstatic(self): return False def describing_function(self, A): + """Return the describing function for a hysteresis nonlinearity. + + Parameters + ---------- + A : float + Amplitude of the sinusoidal input to the nonlinearity. + + Returns + ------- + float + Value of the describing function at the given amplitude. + + """ # Check to make sure the amplitude is positive if A < 0: raise ValueError("cannot evaluate describing function for A < 0") @@ -644,14 +740,19 @@ class friction_backlash_nonlinearity(DescribingFunctionNonlinearity): This class creates a nonlinear function representing a friction-dominated backlash nonlinearity ,including the describing function for the nonlinearity. The following call creates a nonlinear function suitable - for describing function analysis: + for describing function analysis:: F = friction_backlash_nonlinearity(b) - This function maintains an internal state representing the 'center' of a - mechanism with backlash. If the new input is within `b/2` of the current - center, the output is unchanged. Otherwise, the output is given by the - input shifted by `b/2`. + This function maintains an internal state representing the 'center' of + a mechanism with backlash. If the new input is within b/2 of the + current center, the output is unchanged. Otherwise, the output is + given by the input shifted by b/2. + + Parameters + ---------- + b : float + Backlash amount. Examples -------- @@ -690,6 +791,19 @@ def _isstatic(self): return False def describing_function(self, A): + """Return the describing function for a backlash nonlinearity. + + Parameters + ---------- + A : float + Amplitude of the sinusoidal input to the nonlinearity. + + Returns + ------- + float + Value of the describing function at the given amplitude. + + """ # Check to make sure the amplitude is positive if A < 0: raise ValueError("cannot evaluate describing function for A < 0") diff --git a/control/dtime.py b/control/dtime.py index 9b91eabd3..11d2d90d3 100644 --- a/control/dtime.py +++ b/control/dtime.py @@ -1,111 +1,69 @@ -"""dtime.py +# dtime.py - functions for manipulating discrete-time systems +# +# Initial author: Richard M. Murray +# Creation date: 6 October 2012 -Functions for manipulating discrete time systems. - -Routines in this module: - -sample_system() -c2d() -""" - -"""Copyright (c) 2012 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. - -Author: Richard M. Murray -Date: 6 October 2012 - -$Id: dtime.py 185 2012-08-30 05:44:32Z murrayrm $ - -""" +"""Functions for manipulating discrete-time systems.""" from .iosys import isctime -from .statesp import StateSpace __all__ = ['sample_system', 'c2d'] -# Sample a continuous time system +# 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 ---------- - sysc : LTI (:class:`StateSpace` or :class:`TransferFunction`) - Continuous time system to be converted + sysc : `StateSpace` or `TransferFunction` + Continuous time system to be converted. Ts : float > 0 - Sampling period + Sampling period. method : string - Method to use for conversion, e.g. 'bilinear', 'zoh' (default) + 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`. + otherwise. See `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', - 'tustin', or 'gbt' with alpha=0.5) + 'tustin', or 'gbt' with alpha=0.5). Returns ------- - sysd : LTI of the same class (:class:`StateSpace` or :class:`TransferFunction`) - Discrete time system, with sampling rate Ts + sysd : LTI of the same class (`StateSpace` or `TransferFunction`) + 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 + Description of the system inputs. If not specified, the original + system inputs are used. See `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`. Only - available if the system is :class:`StateSpace`. + available if the system is `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 + if `copy_names` is False, a generic name 'sys[id]' 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['iosys.sampled_system_name_prefix'] and - config.defaults['iosys.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 + copy_names : bool, optional If True, copy the names of the input signals, output signals, and states to the sampled system. Notes ----- - See :meth:`StateSpace.sample` or :meth:`TransferFunction.sample` for - further details. + See `StateSpace.sample` or `TransferFunction.sample` for further + details on implementation for state space and transfer function + systems, including available methods. Examples -------- @@ -118,12 +76,14 @@ def sample_system(sysc, Ts, method='zoh', alpha=None, prewarp_frequency=None, """ - # Make sure we have a continuous time system + # Make sure we have a continuous-time system if not isctime(sysc): - raise ValueError("First argument must be continuous time system") + raise ValueError("First argument must be continuous-time system") return sysc.sample(Ts, method=method, alpha=alpha, prewarp_frequency=prewarp_frequency, name=name, copy_names=copy_names, **kwargs) + +# Convenience aliases c2d = sample_system diff --git a/control/exception.py b/control/exception.py index e4758cc49..69b140203 100644 --- a/control/exception.py +++ b/control/exception.py @@ -1,73 +1,42 @@ # exception.py - exception definitions for the control package # -# Author: Richard M. Murray -# Date: 31 May 2010 -# -# This file contains definitions of standard exceptions for the control package -# -# 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$ +# Initial author: Richard M. Murray +# Creation date: 31 May 2010 + +"""Exception definitions for the control package.""" class ControlSlycot(ImportError): - """Exception for Slycot import. Used when we can't import a function - from the slycot package""" + """Slycot import failed.""" pass class ControlDimension(ValueError): - """Raised when dimensions of system objects are not correct""" + """Raised when dimensions of system objects are not correct.""" pass class ControlArgument(TypeError): - """Raised when arguments to a function are not correct""" + """Raised when arguments to a function are not correct.""" + pass + +class ControlIndexError(IndexError): + """Raised when arguments to an indexed object are not correct.""" pass class ControlMIMONotImplemented(NotImplementedError): - """Function is not currently implemented for MIMO systems""" + """Function is not currently implemented for MIMO systems.""" pass class ControlNotImplemented(NotImplementedError): - """Functionality is not yet implemented""" + """Functionality is not yet implemented.""" pass -# Utility function to see if slycot is installed +# Utility function to see if Slycot is installed slycot_installed = None def slycot_check(): - """Return True if slycot is installed, otherwise False.""" + """Return True if Slycot is installed, otherwise False.""" global slycot_installed if slycot_installed is None: try: - import slycot + import slycot # noqa: F401 slycot_installed = True except: slycot_installed = False @@ -81,7 +50,7 @@ def pandas_check(): global pandas_installed if pandas_installed is None: try: - import pandas + import pandas # noqa: F401 pandas_installed = True except: pandas_installed = False @@ -94,7 +63,7 @@ def cvxopt_check(): global cvxopt_installed if cvxopt_installed is None: try: - import cvxopt + import cvxopt # noqa: F401 cvxopt_installed = True except: cvxopt_installed = False diff --git a/control/flatsys/__init__.py b/control/flatsys/__init__.py index c6934d825..ce9650e9a 100644 --- a/control/flatsys/__init__.py +++ b/control/flatsys/__init__.py @@ -1,56 +1,23 @@ # flatsys/__init__.py: flat systems package initialization file # -# Copyright (c) 2019 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. -# # Author: Richard M. Murray # Date: 1 Jul 2019 -r"""Differentially flat systems sub-package. +r"""Flat systems subpackage. -The :mod:`control.flatsys` sub-package contains a set of classes and -functions to compute trajectories for differentially flat systems. +This subpackage contains a set of classes and functions to compute +trajectories for differentially flat systems. A differentially flat system is defined by creating an object using the -:class:`~control.flatsys.FlatSystem` class, which has member functions for -mapping the system state and input into and out of flat coordinates. The -:func:`~control.flatsys.point_to_point` function can be used to create a -trajectory between two endpoints, written in terms of a set of basis functions -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. 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. +`FlatSystem` class, which has member functions for mapping the +system state and input into and out of flat coordinates. The +`point_to_point` function can be used to create a trajectory +between two endpoints, written in terms of a set of basis functions defined +using the `BasisFamily` class. The resulting trajectory is return +as a `SystemTrajectory` object and can be evaluated using the +`SystemTrajectory.eval` member function. Alternatively, the +`solve_flat_optimal` 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:: @@ -61,15 +28,18 @@ """ # Basis function families -from .basis import BasisFamily -from .poly import PolyFamily -from .bezier import BezierFamily -from .bspline import BSplineFamily +from .basis import BasisFamily as BasisFamily +from .bezier import BezierFamily as BezierFamily +from .bspline import BSplineFamily as BSplineFamily +from .poly import PolyFamily as PolyFamily # Classes -from .systraj import SystemTrajectory -from .flatsys import FlatSystem, flatsys -from .linflat import LinearFlatSystem +from .systraj import SystemTrajectory as SystemTrajectory +from .flatsys import FlatSystem as FlatSystem +from .flatsys import flatsys as flatsys +from .linflat import LinearFlatSystem as LinearFlatSystem # Package functions -from .flatsys import point_to_point, solve_flat_ocp +from .flatsys import point_to_point as point_to_point +from .flatsys import solve_flat_optimal as solve_flat_optimal +from .flatsys import solve_flat_ocp as solve_flat_ocp diff --git a/control/flatsys/basis.py b/control/flatsys/basis.py index 04abce88a..c1d295577 100644 --- a/control/flatsys/basis.py +++ b/control/flatsys/basis.py @@ -1,47 +1,19 @@ # basis.py - BasisFamily class # RMM, 10 Nov 2012 -# -# The BasisFamily class is used to specify a set of basis functions for -# implementing differential flatness computations. -# -# Copyright (c) 2012 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. + +"""Define base class for implementing basis functions. + +This module defines the `BasisFamily` class that used to specify a set +of basis functions for implementing differential flatness computations. + +""" import numpy as np # Basis family class (for use as a base class) class BasisFamily: - """Base class for implementing basis functions for flat systems. + """Base class for basis functions for flat systems. A BasisFamily object is used to construct trajectories for a flat system. The class must implement a single function that computes the jth @@ -53,11 +25,23 @@ class BasisFamily: each flat output (nvars = None) or a different variable for different flat outputs (nvars > 0). - Attributes + Parameters ---------- N : int Order of the basis set. + Attributes + ---------- + nvars : int or None + Number of variables represented by the basis (possibly of different + order/length). Default is None (single variable). + + coef_offset : list + Coefficient offset for each variable. + + coef_length : list + Coefficient length for each variable. + """ def __init__(self, N): """Create a basis family of order N.""" @@ -71,15 +55,43 @@ def __repr__(self): f'N={self.N}>' def __call__(self, i, t, var=None): - """Evaluate the ith basis function at a point in time""" + """Evaluate the ith basis function at a point in time.""" return self.eval_deriv(i, 0, t, var=var) def var_ncoefs(self, var): - """Get the number of coefficients for a variable""" + """Get the number of coefficients for a variable. + + Parameters + ---------- + var : int + Variable offset. + + Returns + ------- + int + + """ 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.""" + """Compute function values given the coefficients and time points. + + Parameters + ---------- + coeffs : array + Basis function coefficient values. + tlist : array + List of times at which to evaluate the function. + var : int or None, optional + Number of independent variables represented using the basis. + If None, then basis represents a single variable. + + Returns + ------- + array + Values of the variable(s) at the times in `tlist`. + + """ if self.nvars is None and var != None: raise SystemError("multi-variable call to a scalar basis") @@ -108,6 +120,23 @@ def eval(self, coeffs, tlist, var=None): for i in range(self.var_ncoefs(var))]) 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.""" + def eval_deriv(self, i, k, t, var=None): + """Evaluate kth derivative of ith basis function at time t. + + Parameters + ---------- + i : int + Basis function offset. + k : int + Derivative order. + t : float + Time at which to evaluating the derivative. + var : int or None, optional + Variable offset. + + Returns + ------- + float + + """ raise NotImplementedError("Internal error; improper basis functions") diff --git a/control/flatsys/bezier.py b/control/flatsys/bezier.py index fcf6201e9..41b8d1cb3 100644 --- a/control/flatsys/bezier.py +++ b/control/flatsys/bezier.py @@ -1,47 +1,21 @@ # bezier.m - 1D Bezier curve basis functions # RMM, 24 Feb 2021 -# -# This class implements a set of basis functions based on Bezier curves: -# -# \phi_i(t) = \sum_{i=0}^n {n \choose i} (T - t)^{n-i} t^i -# - -# Copyright (c) 2012 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. + +r"""1D Bezier curve basis functions. + +This module defines the `BezierFamily` class, which implements a set of +basis functions based on Bezier curves: + +.. math:: \phi_i(t) = \sum_{i=0}^n {n \choose i} (T - t)^{n-i} t^i + +""" import numpy as np from scipy.special import binom, factorial + from .basis import BasisFamily + class BezierFamily(BasisFamily): r"""Bezier curve basis functions. @@ -58,7 +32,7 @@ class BezierFamily(BasisFamily): Degree of the Bezier curve. T : float - Final time (used for rescaling). + Final time (used for rescaling). Default value is 1. """ def __init__(self, N, T=1): @@ -68,7 +42,11 @@ 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.""" + """Evaluate kth derivative of ith basis function at time t. + + See `BasisFamily.eval_deriv` for more information. + + """ if i >= self.N: raise ValueError("Basis function index too high") elif k >= self.N: diff --git a/control/flatsys/bspline.py b/control/flatsys/bspline.py index c771beb59..f8247f04e 100644 --- a/control/flatsys/bspline.py +++ b/control/flatsys/bspline.py @@ -1,14 +1,19 @@ # 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. -# + +"""B-spline basis functions. + +This module 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 scipy.interpolate import BSpline + from .basis import BasisFamily -from scipy.interpolate import BSpline, splev + class BSplineFamily(BasisFamily): """B-spline basis functions. @@ -38,7 +43,7 @@ class BSplineFamily(BasisFamily): 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. + indexed using the `var` keyword. """ def __init__(self, breakpoints, degree, smoothness=None, vars=None): @@ -120,7 +125,7 @@ def 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 + # Make sure degree is sufficient 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") @@ -180,7 +185,11 @@ def __repr__(self): # 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.""" + """Evaluate kth derivative of ith basis function at time t. + + See `BasisFamily.eval_deriv` for more information. + + """ if self.nvars is None or (self.nvars == 1 and var is None): # Use same variable for all requests var = 0 diff --git a/control/flatsys/flatsys.py b/control/flatsys/flatsys.py index 0101d126b..92d32d01d 100644 --- a/control/flatsys/flatsys.py +++ b/control/flatsys/flatsys.py @@ -1,52 +1,24 @@ # flatsys.py - trajectory generation for differentially flat systems # RMM, 10 Nov 2012 -# -# This file contains routines for computing trajectories for differentially -# flat nonlinear systems. It is (very) loosely based on the NTG software -# package developed by Mark Milam and Kudah Mushambi, but rewritten from -# scratch in python. -# -# Copyright (c) 2012 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. + +"""Trajectory generation for differentially flat systems. + +""" import itertools +import warnings + import numpy as np import scipy as sp import scipy.optimize -import warnings -from .poly import PolyFamily -from .systraj import SystemTrajectory + +from ..config import _process_kwargs, _process_param +from ..exception import ControlArgument from ..nlsys import NonlinearIOSystem +from ..optimal import _optimal_aliases from ..timeresp import _check_convert_array +from .poly import PolyFamily +from .systraj import SystemTrajectory # Flat system class (for use as a base class) @@ -54,22 +26,49 @@ class FlatSystem(NonlinearIOSystem): """Base class for representing a differentially flat system. The FlatSystem class is used as a base class to describe differentially - flat systems for trajectory generation. The output of the system does not - need to be the differentially flat output. + flat systems for trajectory generation. The output of the system does + not need to be the differentially flat output. Flat systems are + usually created with the `flatsys` factory function. + + 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. + dt : None, True or float, optional + System timebase. + + Attributes + ---------- + ninputs, noutputs, nstates : int + Number of input, output and state variables. + shape : tuple + 2-tuple of I/O system dimension, (noutputs, ninputs). + input_labels, output_labels, state_labels : list of str + Names for the input, output, and state variables. + name : string, optional + System name. + + See Also + -------- + flatsys Notes ----- The class must implement two functions: - zflag = flatsys.foward(x, u, params) + ``zflag = flatsys.forward(x, u, params)`` + This function computes the flag (derivatives) of the flat output. - The inputs to this function are the state 'x' and inputs 'u' (both + The inputs to this function are the state `x` and inputs `u` (both 1D arrays). The output should be a 2D array with the first dimension equal to the number of system inputs and the second dimension of the length required to represent the full system dynamics (typically the number of states) - x, u = flatsys.reverse(zflag, params) + ``x, u = flatsys.reverse(zflag, params)`` + This function system state and inputs give the the flag (derivatives) of the flat output. The input to this function is an 2D array whose first dimension is equal to the number of system inputs and whose @@ -78,17 +77,19 @@ class FlatSystem(NonlinearIOSystem): `x` and inputs `u` (both 1D arrays). A flat system is also an input/output system supporting simulation, - composition, and linearization. If the update and output methods are - given, they are used in place of the flat coordinates. + composition, and linearization. In the current implementation, the + update function must be given explicitly, but the output function + defaults to the flat outputs. If the output method is given, it is + used in place of the flat outputs. """ def __init__(self, forward, reverse, # flat system - updfcn=None, outfcn=None, # nonlinar I/O system + updfcn=None, outfcn=None, # nonlinear 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 + The `FlatSystem` constructor is used to create an input/output system object that also represents a differentially flat system. """ @@ -113,7 +114,6 @@ def __str__(self): + f"Reverse: {self.reverse}" def forward(self, x, u, params=None): - """Compute the flat flag given the states and input. Given the states and inputs for a system, compute the flat @@ -134,7 +134,7 @@ def forward(self, x, u, params=None): Returns ------- zflag : list of 1D arrays - For each flat output :math:`z_i`, zflag[i] should be an + For each flat output :math:`z_i`, `zflag[i]` should be an ndarray of length :math:`q_i` that contains the flat output and its first :math:`q_i` derivatives. @@ -176,20 +176,26 @@ def _flat_outfcn(self, t, x, u, params=None): def flatsys(*args, updfcn=None, outfcn=None, **kwargs): - """Create a differentially flat I/O system. + """flatsys(forward, reverse[, updfcn, outfcn]) \ + flatsys(linsys) + + 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. + + Create a flat system with mappings 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. + + Create a flat system from a linear (`StateSpace`) system. Parameters ---------- @@ -202,28 +208,28 @@ def flatsys(*args, updfcn=None, outfcn=None, **kwargs): updfcn : callable, optional Function returning the state update function - `updfcn(t, x, u[, param]) -> array` + ``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 `param` is an optional dict containing the values of + with shape (ninputs,), `t` is a float representing the current + time, and `params` 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` + ``outfcn(t, x, u[, params]) -> array`` - where the arguments are the same as for `upfcn`. If not + where the arguments are the same as for `updfcn`. 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 + 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. @@ -234,10 +240,9 @@ def flatsys(*args, updfcn=None, outfcn=None, **kwargs): 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. + 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 @@ -245,17 +250,22 @@ def flatsys(*args, updfcn=None, outfcn=None, **kwargs): defaults. name : string, optional - System name (used for specifying signals) + System name (used for specifying signals). Returns ------- - sys: :class:`FlatSystem` + sys : `FlatSystem` Flat system. + Other Parameters + ---------------- + input_prefix, output_prefix, state_prefix : string, optional + Set the prefix for input, output, and state signals. Defaults = + 'u', 'y', 'x'. + """ - from .linflat import LinearFlatSystem from ..statesp import StateSpace - from ..iosys import _process_iosys_keywords + from .linflat import LinearFlatSystem if len(args) == 1 and isinstance(args[0], StateSpace): # We were passed a linear system, so call linflat @@ -293,7 +303,7 @@ def flatsys(*args, updfcn=None, outfcn=None, **kwargs): 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 + This function computes the matrix `M` that is used to solve for the coefficients of the basis functions given the state and input. Each 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 @@ -316,7 +326,8 @@ def _basis_flag_matrix(sys, basis, flag, t): # Solve a point to point trajectory generation problem for a flat system def point_to_point( - sys, timepts, x0=0, u0=0, xf=0, uf=0, T0=0, cost=None, basis=None, + sys, timepts, initial_state=0, initial_input=0, final_state=0, + final_input=0, initial_time=0, integral_cost=None, basis=None, trajectory_constraints=None, initial_guess=None, params=None, **kwargs): """Compute trajectory between an initial and final conditions. @@ -325,72 +336,100 @@ def point_to_point( Parameters ---------- - flatsys : FlatSystem object + sys : `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. - + define a function `~FlatSystem.forward` that takes the system state + and produces the flag of flat outputs and a function + `~FlatSystem.reverse` that takes the flag of the flat output and + produces 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, xf, uf : 1D arrays - Define the desired initial and final conditions for the system. If - any of the values are given as None, they are replaced by a vector of - zeros of the appropriate dimension. - - T0 : float, optional + initial_state (or x0) : 1D array_like + Initial state for the system. Defaults to zero. + initial_input (or u0) : 1D array_like + Initial input for the system. Defaults to zero. + final_state (or xf) : 1D array_like + Final state for the system. Defaults to zero. + final_input (or uf) : 1D array_like + Final input for the system. Defaults to zero. + initial_time (or T0) : float, optional The initial time for the trajectory (corresponding to x0). If not specified, its value is taken to be zero. - - basis : :class:`~control.flatsys.BasisFamily` object, optional + basis : `BasisFamily` object, optional The basis functions to use for generating the trajectory. If not - specified, the :class:`~control.flatsys.PolyFamily` basis family + specified, the `PolyFamily` basis family will be used, with the minimal number of elements required to find a feasible trajectory (twice the number of system states) - - cost : callable + integral_cost (or cost) : callable Function that returns the integral cost given the current 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 + and input. Called as ``integral_cost(x, u)``. + trajectory_constraints (or 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 `scipy.optimize.LinearConstraint` or + `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. + * (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. + 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`. + initial_guess : 2D array_like, optional + Initial guess for the trajectory coefficients (not implemented). + params : dict, optional + Parameter values for the system. Passed to the evaluation + functions for the system as default values, overriding internal + defaults. Returns ------- - traj : :class:`~control.flatsys.SystemTrajectory` object + traj : `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. + `~SystemTrajectory.eval` function, we can be used to + compute the value of the state and input and a given time t. + + Other Parameters + ---------------- + minimize_method : str, optional + Set the method used by `scipy.optimize.minimize`. + minimize_options : str, optional + Set the options keyword used by `scipy.optimize.minimize`. + minimize_kwargs : str, optional + Pass additional keywords to `scipy.optimize.minimize`. 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. + `OptimalControlProblem` for more information. """ + # Process parameter and keyword arguments + _process_kwargs(kwargs, _optimal_aliases) + x0 = _process_param( + 'initial_state', initial_state, kwargs, _optimal_aliases, sigval=0) + u0 = _process_param( + 'initial_input', initial_input, kwargs, _optimal_aliases, sigval=0) + xf = _process_param( + 'final_state', final_state, kwargs, _optimal_aliases, sigval=0) + uf = _process_param( + 'final_input', final_input, kwargs, _optimal_aliases, sigval=0) + T0 = _process_param( + 'initial_time', initial_time, kwargs, _optimal_aliases, sigval=0) + cost = _process_param( + 'integral_cost', integral_cost, kwargs, _optimal_aliases) + trajectory_constraints = _process_param( + 'trajectory_constraints', trajectory_constraints, kwargs, + _optimal_aliases) + # # Make sure the problem is one that we can handle # @@ -408,11 +447,6 @@ def point_to_point( 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) - minimize_kwargs = {} minimize_kwargs['method'] = kwargs.pop('minimize_method', None) minimize_kwargs['options'] = kwargs.pop('minimize_options', {}) @@ -491,7 +525,7 @@ 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 + # Make sure that we have enough time points to evaluate if timepts.size < 3: raise ControlArgument( "There must be at least three time points if trajectory" @@ -631,96 +665,114 @@ 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, trajectory_cost=None, basis=None, - terminal_cost=None, trajectory_constraints=None, +def solve_flat_optimal( + sys, timepts, initial_state=0, initial_input=0, integral_cost=None, + basis=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 + Compute an optimal trajectory for a differentially flat system starting from an initial state and input value. Parameters ---------- - flatsys : FlatSystem object + sys : `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. - + define a function `~FlatSystem.forward` that takes the system state + and produces the flag of flat outputs and a function + `~FlatSystem.reverse` that takes the flag of the flat output and + produces 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 + initial_state (or x0), input_input (or u0) : 1D arrays + Define the initial conditions for the system (default = 0). + initial_input (or u0) : 1D array_like + Initial input for the system. Defaults to zero. + basis : `BasisFamily` object, optional The basis functions to use for generating the trajectory. If not - specified, the :class:`~control.flatsys.PolyFamily` basis family + specified, the `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 + integral_cost : callable Function that returns the integral cost given the current state - and input. Called as `cost(x, u)`. - + 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)`. - + 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 + 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 `scipy.optimize.LinearConstraint` or + `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. + * (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. + 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. - 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`. + params : dict, optional + Parameter values for the system. Passed to the evaluation + functions for the system as default values, overriding internal + defaults. Returns ------- - traj : :class:`~control.flatsys.SystemTrajectory` object + traj : `SystemTrajectory` 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. + `SystemTrajectory.eval` function, we can be used to + compute the value of the state and input and a given time `t`. + + Other Parameters + ---------------- + minimize_method : str, optional + Set the method used by `scipy.optimize.minimize`. + + minimize_options : str, optional + Set the options keyword used by `scipy.optimize.minimize`. + + minimize_kwargs : str, optional + Pass additional keywords to `scipy.optimize.minimize`. Notes ----- - 1. Additional keyword parameters can be used to fine tune the behavior - of the underlying optimization function. See `minimize_*` keywords - in :func:`~control.optimal.OptimalControlProblem` for more information. + Additional keyword parameters can be used to fine tune the behavior of + the underlying optimization function. See `minimize_*` keywords in + `control.optimal.OptimalControlProblem` for more information. + + The return data structure includes the following additional attributes: - 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 + * `success` : bool indicating whether the optimization succeeded + * `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. + 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. """ + # Process parameter and keyword arguments + _process_kwargs(kwargs, _optimal_aliases) + x0 = _process_param( + 'initial_state', initial_state, kwargs, _optimal_aliases, sigval=0) + u0 = _process_param( + 'initial_input', initial_input, kwargs, _optimal_aliases, sigval=0) + trajectory_cost = _process_param( + 'integral_cost', integral_cost, kwargs, _optimal_aliases) + trajectory_constraints = _process_param( + 'trajectory_constraints', trajectory_constraints, kwargs, + _optimal_aliases) + # # Make sure the problem is one that we can handle # @@ -731,16 +783,7 @@ def solve_flat_ocp( # 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) + T0 = timepts[0] if len(timepts) > 1 else 0 minimize_kwargs = {} minimize_kwargs['method'] = kwargs.pop('minimize_method', None) @@ -962,3 +1005,7 @@ def traj_const(null_coeffs): # Return a function that computes inputs and states as a function of time return systraj + + +# Convenience aliases +solve_flat_ocp = solve_flat_optimal diff --git a/control/flatsys/linflat.py b/control/flatsys/linflat.py index e03df514d..724586db6 100644 --- a/control/flatsys/linflat.py +++ b/control/flatsys/linflat.py @@ -1,44 +1,16 @@ # linflat.py - FlatSystem subclass for linear systems # RMM, 10 November 2012 -# -# This file defines a FlatSystem class for a linear system. -# -# Copyright (c) 2012 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. + +"""FlatSystem class for a linear system. + +""" import numpy as np + import control -from .flatsys import FlatSystem + from ..statesp import StateSpace +from .flatsys import FlatSystem class LinearFlatSystem(FlatSystem, StateSpace): @@ -49,14 +21,14 @@ class LinearFlatSystem(FlatSystem, StateSpace): Parameters ---------- - linsys : StateSpace - LTI StateSpace system to be converted + linsys : `StateSpace` + LTI `StateSpace` 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 + 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 @@ -73,7 +45,7 @@ class LinearFlatSystem(FlatSystem, StateSpace): functions for the system as default values, overriding internal defaults. name : string, optional - System name (used for specifying signals) + System name (used for specifying signals). """ @@ -87,7 +59,7 @@ def __init__(self, linsys, **kwargs): # Make sure we can handle the system if (not control.isctime(linsys)): raise control.ControlNotImplemented( - "requires continuous time, linear control system") + "requires continuous-time, linear control system") elif (not control.issiso(linsys)): raise control.ControlNotImplemented( "only single input, single output systems are supported") @@ -113,7 +85,7 @@ def __init__(self, linsys, **kwargs): def forward(self, x, u, params): """Compute the flat flag given the states and input. - See :func:`control.flatsys.FlatSystem.forward` for more info. + See `FlatSystem.forward` for more info. """ x = np.reshape(x, (-1, 1)) @@ -130,7 +102,7 @@ def forward(self, x, u, params): def reverse(self, zflag, params): """Compute the states and input given the flat flag. - See :func:`control.flatsys.FlatSystem.reverse` for more info. + See `FlatSystem.reverse` for more info. """ z = zflag[0][0:-1] diff --git a/control/flatsys/poly.py b/control/flatsys/poly.py index f315091aa..8902bc795 100644 --- a/control/flatsys/poly.py +++ b/control/flatsys/poly.py @@ -1,46 +1,21 @@ # poly.m - simple set of polynomial basis functions -# TODO: rename this as taylor.m # RMM, 10 Nov 2012 # -# This class implements a set of simple basis functions consisting of powers -# of t: 1, t, t^2, ... -# -# Copyright (c) 2012 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. +# TODO: rename this as taylor.m? + +"""Simple set of polynomial basis functions. + +This class implements a set of simple basis functions consisting of +powers of t: 1, t, t^2, ... + +""" import numpy as np from scipy.special import factorial + from .basis import BasisFamily + class PolyFamily(BasisFamily): r"""Polynomial basis functions. @@ -52,10 +27,10 @@ class PolyFamily(BasisFamily): Parameters ---------- N : int - Degree of the Bezier curve. + Degree of the polynomial. T : float - Final time (used for rescaling). + Final time (used for rescaling). Default value is 1. """ def __init__(self, N, T=1): @@ -65,7 +40,11 @@ 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.""" + """Evaluate kth derivative of ith basis function at time t. + + See `BasisFamily.eval_deriv` for more information. + + """ 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) diff --git a/control/flatsys/systraj.py b/control/flatsys/systraj.py index 0fbd4e982..2de778d88 100644 --- a/control/flatsys/systraj.py +++ b/control/flatsys/systraj.py @@ -1,70 +1,46 @@ # systraj.py - SystemTrajectory class # RMM, 10 November 2012 -# -# The SystemTrajetory class is used to store a feasible trajectory for -# the state and input of a (nonlinear) control system. -# -# Copyright (c) 2012 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. + +"""SystemTrajectory class. + +The SystemTrajectory class is used to store a feasible trajectory for +the state and input of a (nonlinear) control system. + +""" import numpy as np + from ..timeresp import TimeResponseData + class SystemTrajectory: - """Class representing a trajectory for a flat system. + """Trajectory for a differentially flat system. - The `SystemTrajectory` class is used to represent the - trajectory of a (differentially flat) system. Used by the - :func:`~control.trajsys.point_to_point` function to return a trajectory. + The `SystemTrajectory` class is used to represent the trajectory + of a (differentially flat) system. Used by the `point_to_point` + and `solve_flat_optimal` functions to return a trajectory. Parameters ---------- - sys : FlatSystem + sys : `FlatSystem` Flat system object associated with this trajectory. - basis : BasisFamily + basis : `BasisFamily` Family of basis vectors to use to represent the trajectory. coeffs : list of 1D arrays, optional For each flat output, define the coefficients of the basis functions used to represent the trajectory. Defaults to an empty list. - flaglen : list of ints, optional + flaglen : list of int, optional For each flat output, the number of derivatives of the flat output used to define the trajectory. Defaults to an empty list. + params : dict, optional + Parameter values used for the trajectory. """ def __init__(self, sys, basis, coeffs=[], flaglen=[], params=None): - """Initilize a system trajectory object.""" + """Initialize a system trajectory object.""" self.nstates = sys.nstates self.ninputs = sys.ninputs self.system = sys @@ -75,7 +51,7 @@ def __init__(self, sys, basis, coeffs=[], flaglen=[], params=None): # Evaluate the trajectory over a list of time points def eval(self, tlist): - """Return the state and input for a trajectory at a list of times. + """Compute state and input for a trajectory at a list of times. Evaluate the trajectory at a list of time points, returning the state and input vectors for the trajectory: @@ -120,73 +96,73 @@ def eval(self, tlist): return xd, ud # Return the system trajectory as a TimeResponseData object - def response(self, tlist, transpose=False, return_x=False, squeeze=None): - """Return the trajectory of a system as a TimeResponseData object + def response(self, timepts, transpose=False, return_x=False, squeeze=None): + """Compute trajectory of a system as a TimeResponseData object. Evaluate the trajectory at a list of time points, returning the state and input vectors for the trajectory: - response = traj.response(tlist) + response = traj.response(timepts) time, yd, ud = response.time, response.outputs, response.inputs Parameters ---------- - tlist : 1D array + timepts : 1D array List of times to evaluate the trajectory. transpose : bool, optional If True, transpose all input and output arrays (for backward - compatibility with MATLAB and :func:`scipy.signal.lsim`). + compatibility with MATLAB and `scipy.signal.lsim`). Default value is False. return_x : bool, optional If True, return the state vector when assigning to a tuple - (default = False). See :func:`forced_response` for more details. + (default = False). See `forced_response` for more details. squeeze : bool, optional - By default, if a system is single-input, single-output (SISO) then - the output response is returned as a 1D array (indexed by time). - If squeeze=True, remove single-dimensional entries from the shape - of the output even if the system is not SISO. If squeeze=False, - keep the output as a 3D array (indexed by the output, input, and - time) even if the system is SISO. The default value can be set - using config.defaults['control.squeeze_time_response']. + By default, if a system is single-input, single-output (SISO) + then the output response is returned as a 1D array (indexed by + time). If `squeeze` = True, remove single-dimensional entries + from the shape of the output even if the system is not SISO. If + `squeeze` = False, keep the output as a 3D array (indexed by + the output, input, and time) even if the system is SISO. The + default value can be set using + `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 3D - (indexed by the output, trace, and time). - - * states (array): Time evolution of the state vector, represented - as either a 2D array indexed by state and time (if SISO) or a 3D - array indexed by state, trace, and time. Not affected by - ``squeeze``. - - * inputs (array): Input(s) to the system, indexed in the same - manner as ``outputs``. - - 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``. + response : `TimeResponseData` + Time response data object representing the input/output response. + When accessed as a tuple, returns ``(time, outputs)`` or ``(time, + outputs, states`` if `return_x` is True. If the input/output + system signals are named, these names will be used as labels for + the time response. If `sys` is a list of systems, returns a + `TimeResponseList` object. Results can be plotted using the + `~TimeResponseData.plot` method. See `TimeResponseData` for more + detailed information. + response.time : array + Time values of the output. + response.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). + response.states : array + Time evolution of the state vector, represented as a 2D array + indexed by state and time. + response.inputs : array + Input(s) to the system, indexed by input and time. """ # Compute the state and input response using the eval function sys = self.system - xout, uout = self.eval(tlist) + xout, uout = self.eval(timepts) yout = np.array([ - sys.output(tlist[i], xout[:, i], uout[:, i]) - for i in range(len(tlist))]).transpose() + sys.output(timepts[i], xout[:, i], uout[:, i]) + for i in range(len(timepts))]).transpose() return TimeResponseData( - tlist, yout, xout, uout, issiso=sys.issiso(), + timepts, yout, xout, uout, issiso=sys.issiso(), input_labels=sys.input_labels, output_labels=sys.output_labels, - state_labels=sys.state_labels, + state_labels=sys.state_labels, sysname=sys.name, transpose=transpose, return_x=return_x, squeeze=squeeze) diff --git a/control/frdata.py b/control/frdata.py index e0f7fdcc6..96d2cd5b6 100644 --- a/control/frdata.py +++ b/control/frdata.py @@ -1,112 +1,130 @@ -# Copyright (c) 2010 by California Institute of Technology -# Copyright (c) 2012 by Delft University of Technology -# All rights reserved. +# frdata.py - frequency response data representation and functions # -# 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 names of the California Institute of Technology nor -# the Delft University 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. -# -# Author: M.M. (Rene) van Paassen (using xferfcn.py as basis) -# Date: 02 Oct 12 +# Initial author: M.M. (Rene) van Paassen (using xferfcn.py as basis) +# Creation date: 02 Oct 2012 +"""Frequency response data representation and functions. -""" -Frequency response data representation and functions. +This module contains the `FrequencyResponseData` (FRD) class and also +functions that operate on FRD data. -This module contains the FRD class and also functions that operate on -FRD data. """ -# External function declarations +from collections.abc import Iterable from copy import copy from warnings import warn import numpy as np -from numpy import angle, array, empty, ones, \ - real, imag, absolute, eye, linalg, where, sort -from scipy.interpolate import splprep, splev +from numpy import absolute, array, empty, eye, imag, linalg, ones, real, sort +from scipy.interpolate import splev, splprep -from .lti import LTI, _process_frequency_response +from . import bdalg, config from .exception import pandas_check -from .iosys import InputOutputSystem, _process_iosys_keywords, common_timebase -from . import config +from .iosys import InputOutputSystem, NamedSignal, _extended_system_name, \ + _process_iosys_keywords, _process_subsys_index, common_timebase +from .lti import LTI, _process_frequency_response __all__ = ['FrequencyResponseData', 'FRD', 'frd'] class FrequencyResponseData(LTI): - """FrequencyResponseData(d, w[, smooth]) + """FrequencyResponseData(frdata, omega[, smooth]) - A class for models defined by frequency response data (FRD). + Input/output model defined by frequency response data (FRD). The FrequencyResponseData (FRD) class is used to represent systems in 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. + class constructor, using the `frd` factory function, or + via the `frequency_response` function. Parameters ---------- - d : 1D or 3D complex array_like + frdata : 1D or 3D complex array_like The frequency response at each frequency point. If 1D, the system is assumed to be SISO. If 3D, the system is MIMO, with the first dimension corresponding to the output index of the FRD, the second dimension corresponding to the input index, and the 3rd dimension - corresponding to the frequency points in omega - w : iterable of real frequencies - List of frequency points for which data are available. + corresponding to the frequency points in `omega`. When accessed as an + attribute, `frdata` is always stored as a 3D array. + omega : iterable of real frequencies + List of monotonically increasing frequency points for the response. + smooth : bool, optional + If True, create an interpolation function that allows the frequency + response to be computed at any frequency within the range of + frequencies give in `omega`. If False (default), frequency response + can only be obtained at the frequencies specified in `omega`. + 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). + squeeze : bool + By default, if a system is single-input, single-output (SISO) then + the outputs (and inputs) are returned as a 1D array (indexed by + frequency) and if a system is multi-input or multi-output, then the + outputs are returned as a 2D array (indexed by output and + frequency) or a 3D array (indexed by output, trace, and frequency). + If `squeeze` = True, access to the output response will remove + single-dimensional entries from the shape of the inputs and outputs + even if the system is not SISO. If `squeeze` = False, the output is + returned as a 3D array (indexed by the output, input, and + frequency) even if the system is SISO. The default value can be set + using `config.defaults['control.squeeze_frequency_response']`. 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 - frequencies give in ``w``. If ``False`` (default), frequency response - can only be obtained at the frequencies specified in ``w``. Attributes ---------- + complex : array + Complex frequency response, indexed by output index, input index, and + frequency point, with squeeze processing. + magnitude : array + Magnitude of the frequency response, indexed by output index, input + index, and frequency point, with squeeze processing. + phase : array + Phase of the frequency response, indexed by output index, input index, + and frequency point, with squeeze processing. + frequency : 1D array + Array of frequency points for which data are available. ninputs, noutputs : int - Number of input and output variables. - omega : 1D array - Frequency points of the response. - fresp : 3D array - Frequency response, indexed by output index, input index, and - frequency point. - dt : float, True, or None - System timebase. + Number of input and output signals. + shape : tuple + 2-tuple of I/O system dimension, (noutputs, ninputs). + input_labels, output_labels : array of str + Names for the input and output signals. + name : str + System name. For data generated using + `frequency_response`, stores the name of the + system that created the data. + + Other Parameters + ---------------- + plot_type : str, optional + Set the type of plot to generate with `~FrequencyResponseData.plot` + ('bode', 'nichols'). + title : str, optional + Set the title to use when plotting. + plot_magnitude, plot_phase : bool, optional + If set to False, don't plot the magnitude or phase, respectively. + return_magphase : bool, optional + If True, then a frequency response data object will enumerate + as a tuple of the form ``(mag, phase, omega)`` where 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. + + See Also + -------- + frd, frequency_response, InputOutputSystem, TransferFunction Notes ----- - The main data members are 'omega' and 'fresp', where 'omega' is a 1D array - of frequency points and and 'fresp' is a 3D array of frequency responses, - with the first dimension corresponding to the output index of the FRD, the - second dimension corresponding to the input index, and the 3rd dimension - corresponding to the frequency points in omega. For example, + The main data members are `omega` and `frdata`, where `omega` is a 1D + array of frequency points and and `frdata` is a 3D array of frequency + responses, with the first dimension corresponding to the output index of + the FRD, the 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]) # doctest: +SKIP @@ -116,11 +134,20 @@ class constructor, using the :func:~~control.frd` factory function A frequency response data object is callable and returns the value of the transfer function evaluated at a point in the complex plane (must be on - the imaginary access). See :meth:`~control.FrequencyResponseData.__call__` + the imaginary axis). See `FrequencyResponseData.__call__` for a more detailed description. - """ + Subsystem response corresponding to selected input/output pairs can be + created by indexing the frequency response data object:: + + subsys = sys[output_spec, input_spec] + + The input and output specifications can be single integers, lists of + integers, or slices. In addition, the strings representing the names + of the signals can be used and will be replaced with the equivalent + signal offsets. + """ # # Class attributes # @@ -138,53 +165,95 @@ class constructor, using the :func:~~control.frd` factory function #: :meta hide-value: noutputs = 1 + #: Squeeze processing parameter. + #: + #: By default, if a system is single-input, single-output (SISO) then + #: the outputs (and inputs) are returned as a 1D array (indexed by + #: frequency) and if a system is multi-input or multi-output, then the + #: outputs are returned as a 2D array (indexed by output and frequency) + #: or a 3D array (indexed by output, trace, and frequency). If + #: `squeeze` = True, access to the output response will remove + #: single-dimensional entries from the shape of the inputs and outputs + #: even if the system is not SISO. If `squeeze` = False, the output is + #: returned as a 3D array (indexed by the output, input, and frequency) + #: even if the system is SISO. The default value can be set using + #: config.defaults['control.squeeze_frequency_response']. + #: + #: :meta hide-value: + squeeze = None + _epsw = 1e-8 #: Bound for exact frequency match def __init__(self, *args, **kwargs): - """Construct an FRD object. + """FrequencyResponseData(response, omega[, dt]) - The default constructor is FRD(d, w), where w is an iterable of - frequency points, and d is the matching frequency data. + Construct a frequency response data (FRD) object. - If d is a single list, 1D array, or tuple, a SISO system description - is assumed. d can also be + The default constructor is `FrequencyResponseData(response, omega)`, + where `omega` is an iterable of frequency points and `response` is + the matching frequency data. If `response` is a single list, 1D + array, or tuple, a SISO system description is assumed. `response` + can also be a 2D array, in which case a MIMO response is created. + To call the copy constructor, call `FrequencyResponseData(sys)`, + where `sys` is a FRD object. The timebase for the frequency + response can be provided using an optional third argument or the + `dt` keyword. - To call the copy constructor, call FRD(sys), where sys is a - FRD object. + To construct frequency response data for an existing LTI object, + other than an FRD, call `FrequencyResponseData(sys, omega)`. This + functionality can also be obtained using `frequency_response` + (which has additional options available). - To construct frequency response data for an existing LTI - object, other than an FRD, call FRD(sys, omega). + See `FrequencyResponseData` and `frd` for more + information. """ - # TODO: discrete-time FRD systems? smooth = kwargs.pop('smooth', False) # # Process positional arguments # + if len(args) == 3: + # Discrete time transfer function + dt = args[-1] + if 'dt' in kwargs: + warn("received multiple dt arguments, " + "using positional arg dt = %s" % dt) + kwargs['dt'] = dt + args = args[:-1] + if len(args) == 2: if not isinstance(args[0], FRD) and isinstance(args[0], LTI): - # not an FRD, but still a system, second argument should be - # the frequency range + # not an FRD, but still an LTI system, second argument + # should be the frequency range otherlti = args[0] self.omega = sort(np.asarray(args[1], dtype=float)) - # calculate frequency response at my points + + # calculate frequency response at specified points if otherlti.isctime(): s = 1j * self.omega - self.fresp = otherlti(s, squeeze=False) + self.frdata = otherlti(s, squeeze=False) else: z = np.exp(1j * self.omega * otherlti.dt) - self.fresp = otherlti(z, squeeze=False) + self.frdata = otherlti(z, squeeze=False) arg_dt = otherlti.dt + # Copy over signal and system names, if not specified + kwargs['inputs'] = kwargs.get('inputs', otherlti.input_labels) + kwargs['outputs'] = kwargs.get( + 'outputs', otherlti.output_labels) + if not otherlti._generic_name_check(): + kwargs['name'] = kwargs.get('name', _extended_system_name( + otherlti.name, prefix_suffix_name='sampled')) + else: # The user provided a response and a freq vector - self.fresp = array(args[0], dtype=complex, ndmin=1) - if self.fresp.ndim == 1: - self.fresp = self.fresp.reshape(1, 1, -1) + self.frdata = array(args[0], dtype=complex, ndmin=1) + if self.frdata.ndim == 1: + self.frdata = self.frdata.reshape(1, 1, -1) self.omega = array(args[1], dtype=float, ndmin=1) - if self.fresp.ndim != 3 or self.omega.ndim != 1 or \ - self.fresp.shape[-1] != self.omega.shape[-1]: + if self.frdata.ndim != 3 or self.omega.ndim != 1 or \ + self.frdata.shape[-1] != self.omega.shape[-1]: raise TypeError( "The frequency data constructor needs a 1-d or 3-d" " response data array and a matching frequency vector" @@ -198,19 +267,24 @@ def __init__(self, *args, **kwargs): "The one-argument constructor can only take in" " an FRD object. Received %s." % type(args[0])) self.omega = args[0].omega - self.fresp = args[0].fresp + self.frdata = args[0].frdata arg_dt = args[0].dt + # Copy over signal and system names, if not specified + kwargs['inputs'] = kwargs.get('inputs', args[0].input_labels) + kwargs['outputs'] = kwargs.get('outputs', args[0].output_labels) + else: raise ValueError( "Needs 1 or 2 arguments; received %i." % len(args)) # - # Process key word arguments + # Process keyword arguments # - # If data was generated by a system, keep track of that - self.sysname = kwargs.pop('sysname', None) + # If data was generated by a system, keep track of that (used when + # plotting data). Otherwise, use the system name, if given. + self.sysname = kwargs.pop('sysname', kwargs.get('name', None)) # Keep track of default properties for plotting self.plot_phase = kwargs.pop('plot_phase', None) @@ -228,30 +302,41 @@ def __init__(self, *args, **kwargs): if self.squeeze not in (None, True, False): raise ValueError("unknown squeeze value") - # Process iosys keywords defaults = { - '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 + 'inputs': self.frdata.shape[1] if not getattr( + self, 'input_index', None) else self.input_labels, + 'outputs': self.frdata.shape[0] if not getattr( + self, 'output_index', None) else self.output_labels, + 'name': getattr(self, 'name', None)} + if arg_dt is not None: + if isinstance(args[0], LTI): + arg_dt = common_timebase(args[0].dt, arg_dt) + kwargs['dt'] = arg_dt # Process signal names + name, inputs, outputs, states, dt = _process_iosys_keywords( + kwargs, defaults) InputOutputSystem.__init__( - self, name=name, inputs=inputs, outputs=outputs, dt=dt) + self, name=name, inputs=inputs, outputs=outputs, dt=dt, **kwargs) # create interpolation functions if smooth: - self.ifunc = empty((self.fresp.shape[0], self.fresp.shape[1]), + # Set the order of the fit + if self.omega.size < 2: + raise ValueError("can't smooth with only 1 frequency") + degree = 3 if self.omega.size > 3 else self.omega.size - 1 + + self._ifunc = empty((self.frdata.shape[0], self.frdata.shape[1]), dtype=tuple) - for i in range(self.fresp.shape[0]): - for j in range(self.fresp.shape[1]): - self.ifunc[i, j], u = splprep( - u=self.omega, x=[real(self.fresp[i, j, :]), - imag(self.fresp[i, j, :])], - w=1.0/(absolute(self.fresp[i, j, :]) + 0.001), s=0.0) + for i in range(self.frdata.shape[0]): + for j in range(self.frdata.shape[1]): + self._ifunc[i, j], u = splprep( + u=self.omega, x=[real(self.frdata[i, j, :]), + imag(self.frdata[i, j, :])], + w=1.0/(absolute(self.frdata[i, j, :]) + 0.001), + s=0.0, k=degree) else: - self.ifunc = None + self._ifunc = None # # Frequency response properties @@ -262,53 +347,127 @@ def __init__(self, *args, **kwargs): @property def magnitude(self): - return np.abs(self.fresp) + """Magnitude of the frequency response. + + Magnitude of the frequency response, indexed by either the output + and frequency (if only a single input is given) or the output, + input, and frequency (for multi-input systems). See + `FrequencyResponseData.squeeze` for a description of how this + can be modified using the `squeeze` keyword. + + Input and output signal names can be used to index the data in + place of integer offsets. + + :type: 1D, 2D, or 3D array + + """ + frdata = _process_frequency_response( + self, self.omega, self.frdata, squeeze=self.squeeze) + return NamedSignal( + np.abs(frdata), self.output_labels, self.input_labels) @property def phase(self): - return np.angle(self.fresp) + """Phase of the frequency response. + + Phase of the frequency response in radians/sec, indexed by either + the output and frequency (if only a single input is given) or the + output, input, and frequency (for multi-input systems). See + `FrequencyResponseData.squeeze` for a description of how this + can be modified using the `squeeze` keyword. + + Input and output signal names can be used to index the data in + place of integer offsets. + + :type: 1D, 2D, or 3D array + + """ + frdata = _process_frequency_response( + self, self.omega, self.frdata, squeeze=self.squeeze) + return NamedSignal( + np.angle(frdata), self.output_labels, self.input_labels) @property def frequency(self): + """Frequencies at which the response is evaluated. + + :type: 1D array + + """ return self.omega + @property + def complex(self): + """Complex value of the frequency response. + + Value of the frequency response as a complex number, indexed by + either the output and frequency (if only a single input is given) + or the output, input, and frequency (for multi-input systems). See + `FrequencyResponseData.squeeze` for a description of how this + can be modified using the `squeeze` keyword. + + Input and output signal names can be used to index the data in + place of integer offsets. + + :type: 1D, 2D, or 3D array + + """ + frdata = _process_frequency_response( + self, self.omega, self.frdata, squeeze=self.squeeze) + return NamedSignal( + frdata, self.output_labels, self.input_labels) + @property def response(self): - return self.fresp + warn("response property is deprecated; use complex", FutureWarning) + return self.complex + + @property + def fresp(self): + warn("fresp attribute is deprecated; use frdata", FutureWarning) + return self.frdata def __str__(self): + """String representation of the transfer function.""" mimo = self.ninputs > 1 or self.noutputs > 1 - outstr = ['Frequency response data'] + outstr = [f"{InputOutputSystem.__str__(self)}"] + nl = "\n " if mimo else "\n" + sp = " " if mimo else "" for i in range(self.ninputs): for j in range(self.noutputs): if mimo: - outstr.append("Input %i to output %i:" % (i + 1, j + 1)) - outstr.append('Freq [rad/s] Response') - outstr.append('------------ ---------------------') + outstr.append( + "\nInput %i to output %i:" % (i + 1, j + 1)) + outstr.append(nl + 'Freq [rad/s] Response') + outstr.append(sp + '------------ ---------------------') outstr.extend( - ['%12.3f %10.4g%+10.4gj' % (w, re, im) + [sp + '%12.3f %10.4g%+10.4gj' % (w, re, im) for w, re, im in zip(self.omega, - real(self.fresp[j, i, :]), - imag(self.fresp[j, i, :]))]) + real(self.frdata[j, i, :]), + imag(self.frdata[j, i, :]))]) return '\n'.join(outstr) - def __repr__(self): - """Loadable string representation, + def _repr_eval_(self): + # Loadable format + out = "FrequencyResponseData(\n{d},\n{w}{smooth}".format( + d=repr(self.frdata), w=repr(self.omega), + smooth=(self._ifunc and ", smooth=True") or "") - limited for number of data points. - """ - return "FrequencyResponseData({d}, {w}{smooth})".format( - d=repr(self.fresp), w=repr(self.omega), - smooth=(self.ifunc and ", smooth=True") or "") + out += self._dt_repr() + if len(labels := self._label_repr()) > 0: + out += ",\n" + labels + + out += ")" + return out def __neg__(self): """Negate a transfer function.""" - return FRD(-self.fresp, self.omega) + return FRD(-self.frdata, self.omega) def __add__(self, other): """Add two LTI objects (parallel connection).""" @@ -322,7 +481,18 @@ def __add__(self, other): # Convert the second argument to a frequency response function. # or re-base the frd to the current omega (if needed) - other = _convert_to_FRD(other, omega=self.omega) + if isinstance(other, (int, float, complex, np.number)): + other = _convert_to_frd( + other, omega=self.omega, + inputs=self.ninputs, outputs=self.noutputs) + else: + other = _convert_to_frd(other, omega=self.omega) + + # Promote SISO object to compatible dimension + if self.issiso() and not other.issiso(): + self = np.ones((other.noutputs, other.ninputs)) * self + elif not self.issiso() and other.issiso(): + other = np.ones((self.noutputs, self.ninputs)) * other # Check that the input-output sizes are consistent. if self.ninputs != other.ninputs: @@ -334,7 +504,7 @@ def __add__(self, other): "The first summand has %i output(s), but the " \ "second has %i." % (self.noutputs, other.noutputs)) - return FRD(self.fresp + other.fresp, other.omega) + return FRD(self.frdata + other.frdata, other.omega) def __radd__(self, other): """Right add two LTI objects (parallel connection).""" @@ -356,10 +526,16 @@ def __mul__(self, other): # Convert the second argument to a transfer function. if isinstance(other, (int, float, complex, np.number)): - return FRD(self.fresp * other, self.omega, - smooth=(self.ifunc is not None)) + return FRD(self.frdata * other, self.omega, + smooth=(self._ifunc is not None)) else: - other = _convert_to_FRD(other, omega=self.omega) + other = _convert_to_frd(other, omega=self.omega) + + # Promote SISO object to compatible dimension + if self.issiso() and not other.issiso(): + self = bdalg.append(*([self] * other.noutputs)) + elif not self.issiso() and other.issiso(): + other = bdalg.append(*([other] * self.ninputs)) # Check that the input-output sizes are consistent. if self.ninputs != other.noutputs: @@ -370,23 +546,29 @@ def __mul__(self, other): inputs = other.ninputs outputs = self.noutputs - fresp = empty((outputs, inputs, len(self.omega)), - dtype=self.fresp.dtype) + frdata = empty((outputs, inputs, len(self.omega)), + dtype=self.frdata.dtype) for i in range(len(self.omega)): - fresp[:, :, i] = self.fresp[:, :, i] @ other.fresp[:, :, i] - return FRD(fresp, self.omega, - smooth=(self.ifunc is not None) and - (other.ifunc is not None)) + frdata[:, :, i] = self.frdata[:, :, i] @ other.frdata[:, :, i] + return FRD(frdata, self.omega, + smooth=(self._ifunc is not None) and + (other._ifunc is not None)) def __rmul__(self, other): """Right Multiply two LTI objects (serial connection).""" # Convert the second argument to an frd function. if isinstance(other, (int, float, complex, np.number)): - return FRD(self.fresp * other, self.omega, - smooth=(self.ifunc is not None)) + return FRD(self.frdata * other, self.omega, + smooth=(self._ifunc is not None)) else: - other = _convert_to_FRD(other, omega=self.omega) + other = _convert_to_frd(other, omega=self.omega) + + # Promote SISO object to compatible dimension + if self.issiso() and not other.issiso(): + self = bdalg.append(*([self] * other.ninputs)) + elif not self.issiso() and other.issiso(): + other = bdalg.append(*([other] * self.noutputs)) # Check that the input-output sizes are consistent. if self.noutputs != other.ninputs: @@ -398,48 +580,44 @@ def __rmul__(self, other): inputs = self.ninputs outputs = other.noutputs - fresp = empty((outputs, inputs, len(self.omega)), - dtype=self.fresp.dtype) + frdata = empty((outputs, inputs, len(self.omega)), + dtype=self.frdata.dtype) for i in range(len(self.omega)): - fresp[:, :, i] = other.fresp[:, :, i] @ self.fresp[:, :, i] - return FRD(fresp, self.omega, - smooth=(self.ifunc is not None) and - (other.ifunc is not None)) + frdata[:, :, i] = other.frdata[:, :, i] @ self.frdata[:, :, i] + return FRD(frdata, self.omega, + smooth=(self._ifunc is not None) and + (other._ifunc is not None)) # TODO: Division of MIMO transfer function objects is not written yet. def __truediv__(self, other): """Divide two LTI objects.""" if isinstance(other, (int, float, complex, np.number)): - return FRD(self.fresp * (1/other), self.omega, - smooth=(self.ifunc is not None)) + return FRD(self.frdata * (1/other), self.omega, + smooth=(self._ifunc is not None)) else: - other = _convert_to_FRD(other, omega=self.omega) + other = _convert_to_frd(other, omega=self.omega) - if (self.ninputs > 1 or self.noutputs > 1 or - other.ninputs > 1 or other.noutputs > 1): - raise NotImplementedError( - "FRD.__truediv__ is currently only implemented for SISO " - "systems.") + if (other.ninputs > 1 or other.noutputs > 1): + # FRD.__truediv__ is currently only implemented for SISO systems + return NotImplemented - return FRD(self.fresp/other.fresp, self.omega, - smooth=(self.ifunc is not None) and - (other.ifunc is not None)) + return FRD(self.frdata/other.frdata, self.omega, + smooth=(self._ifunc is not None) and + (other._ifunc is not None)) # TODO: Division of MIMO transfer function objects is not written yet. def __rtruediv__(self, other): """Right divide two LTI objects.""" if isinstance(other, (int, float, complex, np.number)): - return FRD(other / self.fresp, self.omega, - smooth=(self.ifunc is not None)) + return FRD(other / self.frdata, self.omega, + smooth=(self._ifunc is not None)) else: - other = _convert_to_FRD(other, omega=self.omega) + other = _convert_to_frd(other, omega=self.omega) - if (self.ninputs > 1 or self.noutputs > 1 or - other.ninputs > 1 or other.noutputs > 1): - raise NotImplementedError( - "FRD.__rtruediv__ is currently only implemented for " - "SISO systems.") + if (self.ninputs > 1 or self.noutputs > 1): + # FRD.__rtruediv__ is currently only implemented for SISO systems + return NotImplemented return other / self @@ -447,51 +625,52 @@ def __pow__(self, other): if not type(other) == int: raise ValueError("Exponent must be an integer") if other == 0: - return FRD(ones(self.fresp.shape), self.omega, - smooth=(self.ifunc is not None)) # unity + return FRD(ones(self.frdata.shape), self.omega, + smooth=(self._ifunc is not None)) # unity if other > 0: return self * (self**(other-1)) if other < 0: - return (FRD(ones(self.fresp.shape), self.omega) / self) * \ + return (FRD(ones(self.frdata.shape), self.omega) / self) * \ (self**(other+1)) # Define the `eval` function to evaluate an FRD at a given (real) # frequency. Note that we choose to use `eval` instead of `evalfr` to - # avoid confusion with :func:`evalfr`, which takes a complex number as its + # avoid confusion with `evalfr`, which takes a complex number as its # argument. Similarly, we don't use `__call__` to avoid confusion between # G(s) for a transfer function and G(omega) for an FRD object. # update Sawyer B. Fuller 2020.08.14: __call__ added to provide a uniform # interface to systems in general and the lti.frequency_response method def eval(self, omega, squeeze=None): - """Evaluate a transfer function at angular frequency omega. + """Evaluate a transfer function at a frequency point. Note that a "normal" FRD only returns values for which there is an - entry in the omega vector. An interpolating FRD can return + entry in the `omega` vector. An interpolating FRD can return intermediate values. Parameters ---------- omega : float or 1D array_like - Frequencies in radians per second + Frequency(s) for evaluation, in radians per second. 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']. + 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']`. Returns ------- - fresp : complex ndarray - The frequency response of the system. If the system is SISO and - squeeze is not True, the shape of the array matches the shape of - omega. If the system is not SISO or squeeze is False, the first - two dimensions of the array are indices for the output and input - and the remaining dimensions match omega. If ``squeeze`` is True - then single-dimensional axes are removed. + frdata : complex ndarray + The frequency response of the system. If the system is SISO + and `squeeze` is not True, the shape of the array matches the + shape of `omega`. If the system is not SISO or `squeeze` is + False, the first two dimensions of the array are indices for + the output and input and the remaining dimensions match `omega`. + If `squeeze` is True then single-dimensional axes are removed. """ - omega_array = np.array(omega, ndmin=1) # array-like version of omega + omega_array = np.array(omega, ndmin=1) # array of frequencies # Make sure that we are operating on a simple list if len(omega_array.shape) > 1: @@ -499,84 +678,86 @@ def eval(self, omega, squeeze=None): # Make sure that frequencies are all real-valued if any(omega_array.imag > 0): - raise ValueError("FRD.eval can only accept real-valued omega") + raise ValueError("eval can only accept real-valued frequencies") - if self.ifunc is None: + if self._ifunc is None: elements = np.isin(self.omega, omega) # binary array if sum(elements) < len(omega_array): raise ValueError( - "not all frequencies omega are in frequency list of FRD " + "not all frequencies are in frequency list of FRD " "system. Try an interpolating FRD for additional points.") else: - out = self.fresp[:, :, elements] + out = self.frdata[:, :, elements] else: out = empty((self.noutputs, self.ninputs, len(omega_array)), dtype=complex) for i in range(self.noutputs): for j in range(self.ninputs): for k, w in enumerate(omega_array): - frraw = splev(w, self.ifunc[i, j], der=0) + frraw = splev(w, self._ifunc[i, j], der=0) out[i, j, k] = frraw[0] + 1.0j * frraw[1] return _process_frequency_response(self, omega, out, squeeze=squeeze) - def __call__(self, s=None, squeeze=None, return_magphase=None): - """Evaluate system's transfer function at complex frequencies. + def __call__(self, x=None, squeeze=None, return_magphase=None): + """Evaluate system transfer function at point in complex plane. - Returns the complex frequency response `sys(s)` of system `sys` with - `m = sys.ninputs` number of inputs and `p = sys.noutputs` number of - outputs. + Returns the value of the system's transfer function at a point `x` + in the complex plane, where `x` is `s` for continuous-time systems + and `z` for discrete-time systems. For a frequency response data + object, the argument should be an imaginary number (since only the + frequency response is defined) and only the imaginary component of + `x` will be used. - To evaluate at a frequency omega in radians per second, enter - ``s = omega * 1j`` or use ``sys.eval(omega)`` + By default, a (complex) scalar will be returned for SISO systems + and a p x m array will be return for MIMO systems with m inputs and + p outputs. This can be changed using the `squeeze` keyword. - For a frequency response data object, the argument must be an - imaginary number (since only the frequency response is defined). + To evaluate at a frequency `omega` in radians per second, enter ``x + = omega * 1j`` for continuous-time systems, ``x = exp(1j * omega * + dt)`` for discrete-time systems, or use the + `~LTI.frequency_response` method. - If ``s`` is not given, this function creates a copy of a frequency + If `x` is not given, this function creates a copy of a frequency response data object with a different set of output settings. Parameters ---------- - s : complex scalar or 1D array_like - Complex frequencies. If not specified, return a copy of the - frequency response data object with updated settings for output - processing (``squeeze``, ``return_magphase``). - + x : complex scalar or 1D array_like + Imaginary value(s) at which frequency response will be evaluated. + The real component of `x` is ignored. If not specified, return + a copy of the frequency response data object with updated + settings for output processing (`squeeze`, `return_magphase`). 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']. - + Squeeze output, as described below. Default value can be set + using `config.defaults['control.squeeze_frequency_response']`. return_magphase : bool, optional - If True, then a frequency response data object will enumerate as a - tuple of the form (mag, phase, omega) where 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. + (`x` = None only) If True, then a frequency response data object + will enumerate as a tuple of the form ``(mag, phase, omega)`` + where 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. Returns ------- - fresp : complex ndarray - The frequency response of the system. If the system is SISO and - squeeze is not True, the shape of the array matches the shape of - omega. If the system is not SISO or squeeze is False, the first - two dimensions of the array are indices for the output and input - and the remaining dimensions match omega. If ``squeeze`` is True - then single-dimensional axes are removed. + frdata : complex ndarray + The value of the system transfer function at `x`. If the system + is SISO and `squeeze` is not True, the shape of the array matches + the shape of `x`. If the system is not SISO or `squeeze` is + False, the first two dimensions of the array are indices for the + output and input and the remaining dimensions match `x`. If + `squeeze` is True then single-dimensional axes are removed. Raises ------ ValueError - If `s` is not purely imaginary, because - :class:`FrequencyDomainData` systems are only defined at imaginary - frequency values. + If `s` is not purely imaginary, because `FrequencyResponseData` + systems are only defined at imaginary values (corresponding to + real frequencies). """ - if s is None: + if x is None: # Create a copy of the response with new keywords response = copy(self) @@ -587,34 +768,53 @@ def __call__(self, s=None, squeeze=None, return_magphase=None): return response + if return_magphase is not None: + raise ValueError("return_magphase not allowed when x != None") + # Make sure that we are operating on a simple list - if len(np.atleast_1d(s).shape) > 1: + if len(np.atleast_1d(x).shape) > 1: raise ValueError("input list must be 1D") - if any(abs(np.atleast_1d(s).real) > 0): + if any(abs(np.atleast_1d(x).real) > 0): raise ValueError("__call__: FRD systems can only accept " "purely imaginary frequencies") # need to preserve array or scalar status - if hasattr(s, '__len__'): - return self.eval(np.asarray(s).imag, squeeze=squeeze) + if hasattr(x, '__len__'): + return self.eval(np.asarray(x).imag, squeeze=squeeze) else: - return self.eval(complex(s).imag, squeeze=squeeze) + return self.eval(complex(x).imag, squeeze=squeeze) # Implement iter to allow assigning to a tuple def __iter__(self): - fresp = _process_frequency_response( - self, self.omega, self.fresp, squeeze=self.squeeze) + frdata = _process_frequency_response( + self, self.omega, self.frdata, squeeze=self.squeeze) if self._return_singvals: # Legacy processing for singular values - return iter((self.fresp[:, 0, :], self.omega)) + return iter((self.frdata[:, 0, :], self.omega)) elif not self.return_magphase: - return iter((self.omega, fresp)) - return iter((np.abs(fresp), np.angle(fresp), self.omega)) + return iter((self.omega, frdata)) + return iter((np.abs(frdata), np.angle(frdata), self.omega)) + + def __getitem__(self, key): + if not isinstance(key, Iterable) or len(key) != 2: + # Implement (thin) getitem to allow access via legacy indexing + return list(self.__iter__())[key] + + # Convert signal names to integer offsets (via NamedSignal object) + iomap = NamedSignal( + self.frdata[:, :, 0], self.output_labels, self.input_labels) + indices = iomap._parse_key(key, level=1) # ignore index checks + outdx, outputs = _process_subsys_index(indices[0], self.output_labels) + inpdx, inputs = _process_subsys_index(indices[1], self.input_labels) - # Implement (thin) getitem to allow access via legacy indexing - def __getitem__(self, index): - return list(self.__iter__())[index] + # Create the system name + sysname = config.defaults['iosys.indexed_system_name_prefix'] + \ + self.name + config.defaults['iosys.indexed_system_name_suffix'] + + return FrequencyResponseData( + self.frdata[outdx, :][:, inpdx], self.omega, self.dt, + inputs=inputs, outputs=outputs, name=sysname) # Implement (thin) len to emulate legacy testing interface def __len__(self): @@ -624,21 +824,31 @@ def freqresp(self, omega): """(deprecated) Evaluate transfer function at complex frequencies. .. deprecated::0.9.0 - Method has been given the more pythonic name - :meth:`FrequencyResponseData.frequency_response`. Or use - :func:`freqresp` in the MATLAB compatibility module. + Method has been given the more Pythonic name + `FrequencyResponseData.frequency_response`. Or use + `freqresp` in the MATLAB compatibility module. + """ warn("FrequencyResponseData.freqresp(omega) will be removed in a " "future release of python-control; use " "FrequencyResponseData.frequency_response(omega), or " "freqresp(sys, omega) in the MATLAB compatibility module " - "instead", DeprecationWarning) + "instead", FutureWarning) return self.frequency_response(omega) def feedback(self, other=1, sign=-1): - """Feedback interconnection between two FRD objects.""" + """Feedback interconnection between two FRD objects. + + Parameters + ---------- + other : `LTI` + System in the feedback path. - other = _convert_to_FRD(other, omega=self.omega) + sign : float, optional + Gain to use in feedback path. Defaults to -1. + + """ + other = _convert_to_frd(other, omega=self.omega) if (self.noutputs != other.ninputs or self.ninputs != other.noutputs): raise ValueError( @@ -647,23 +857,54 @@ def feedback(self, other=1, sign=-1): # TODO: handle omega re-mapping # reorder array axes in order to leverage numpy broadcasting - myfresp = np.moveaxis(self.fresp, 2, 0) - otherfresp = np.moveaxis(other.fresp, 2, 0) - I_AB = eye(self.ninputs)[np.newaxis, :, :] + otherfresp @ myfresp - resfresp = (myfresp @ linalg.inv(I_AB)) - fresp = np.moveaxis(resfresp, 0, 2) + myfrdata = np.moveaxis(self.frdata, 2, 0) + otherfrdata = np.moveaxis(other.frdata, 2, 0) + I_AB = eye(self.ninputs)[np.newaxis, :, :] + otherfrdata @ myfrdata + resfrdata = (myfrdata @ linalg.inv(I_AB)) + frdata = np.moveaxis(resfrdata, 0, 2) + + return FRD(frdata, other.omega, smooth=(self._ifunc is not None)) + + def append(self, other): + """Append a second model to the present model. + + The second model is converted to FRD if necessary, inputs and + outputs are appended and their order is preserved. + + Parameters + ---------- + other : `LTI` + System to be appended. + + Returns + ------- + sys : `FrequencyResponseData` + System model with `other` appended to `self`. - return FRD(fresp, other.omega, smooth=(self.ifunc is not None)) + """ + other = _convert_to_frd(other, omega=self.omega, inputs=other.ninputs, + outputs=other.noutputs) + + # TODO: handle omega re-mapping + + new_frdata = np.zeros( + (self.noutputs + other.noutputs, self.ninputs + other.ninputs, + self.omega.shape[-1]), dtype=complex) + new_frdata[:self.noutputs, :self.ninputs, :] = np.reshape( + self.frdata, (self.noutputs, self.ninputs, -1)) + new_frdata[self.noutputs:, self.ninputs:, :] = np.reshape( + other.frdata, (other.noutputs, other.ninputs, -1)) + + return FRD(new_frdata, self.omega, smooth=(self._ifunc is not None)) # Plotting interface def plot(self, plot_type=None, *args, **kwargs): - """Plot the frequency response using a Bode plot. + """Plot the frequency response using Bode or singular values plot. 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. + (plot_type='bode', default) or a singular values plot + (plot_type='svplot'). See `bode_plot` and `singular_values_plot` + for more detailed descriptions. """ from .freqplot import bode_plot, singular_values_plot @@ -683,6 +924,14 @@ def plot(self, plot_type=None, *args, **kwargs): # Convert to pandas def to_pandas(self): + """Convert response data to pandas data frame. + + Creates a pandas data frame for the value of the frequency + response at each `omega`. The frequency response values are + labeled in the form "H_{, }" where "" and "" + are replaced with the output and input labels for the system. + + """ if not pandas_check(): ImportError('pandas not installed') import pandas @@ -690,7 +939,7 @@ def to_pandas(self): # Create a dict for setting up the data frame data = {'omega': self.omega} data.update( - {'H_{%s, %s}' % (out, inp): self.fresp[i, j] \ + {'H_{%s, %s}' % (out, inp): self.frdata[i, j] \ for i, out in enumerate(self.output_labels) \ for j, inp in enumerate(self.input_labels)}) @@ -703,32 +952,32 @@ def to_pandas(self): # Note: This class was initially given the name "FRD", but this caused # problems with documentation on MacOS platforms, since files were generated # for control.frd and control.FRD, which are not differentiated on most MacOS -# filesystems, which are case insensitive. Renaming the FRD class to be -# FrequenceResponseData and then assigning FRD to point to the same object +# file systems, which are case insensitive. Renaming the FRD class to be +# FrequencyResponseData and then assigning FRD to point to the same object # fixes this problem. # FRD = FrequencyResponseData -def _convert_to_FRD(sys, omega, inputs=1, outputs=1): +def _convert_to_frd(sys, omega, inputs=1, outputs=1): """Convert a system to frequency response data form (if needed). - If sys is already an frd, and its frequency range matches or - overlaps the range given in omega then it is returned. If sys is - another LTI object or a transfer function, then it is converted to - 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: + If `sys` is already a frequency response data object, and its frequency + range matches or overlaps the range given in `omega` then it is + returned. If `sys` is another LTI object or a transfer function, then + it is converted to a frequency response data system at the specified + values in `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 + >>> 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(3., omega) # Assumes inputs = outputs = 1 >>> frd.ninputs, frd.noutputs (1, 1) - >>> frd = _convert_to_FRD(1., omega, inputs=3, outputs=2) + >>> frd = _convert_to_frd(1., omega, inputs=3, outputs=2) >>> frd.ninputs, frd.noutputs (3, 2) @@ -750,78 +999,105 @@ def _convert_to_FRD(sys, omega, inputs=1, outputs=1): elif isinstance(sys, LTI): omega = np.sort(omega) if sys.isctime(): - fresp = sys(1j * omega) + frdata = sys(1j * omega) else: - fresp = sys(np.exp(1j * omega * sys.dt)) - if len(fresp.shape) == 1: - fresp = fresp[np.newaxis, np.newaxis, :] - return FRD(fresp, omega, smooth=True) + frdata = sys(np.exp(1j * omega * sys.dt)) + if len(frdata.shape) == 1: + frdata = frdata[np.newaxis, np.newaxis, :] + return FRD(frdata, omega, smooth=True) elif isinstance(sys, (int, float, complex, np.number)): - fresp = ones((outputs, inputs, len(omega)), dtype=float)*sys - return FRD(fresp, omega, smooth=True) + frdata = ones((outputs, inputs, len(omega)), dtype=float)*sys + return FRD(frdata, omega, smooth=True) # try converting constant matrices try: sys = array(sys) outputs, inputs = sys.shape - fresp = empty((outputs, inputs, len(omega)), dtype=float) + frdata = empty((outputs, inputs, len(omega)), dtype=float) for i in range(outputs): for j in range(inputs): - fresp[i, j, :] = sys[i, j] - return FRD(fresp, omega, smooth=True) + frdata[i, j, :] = sys[i, j] + return FRD(frdata, omega, smooth=True) except Exception: pass - raise TypeError('''Can't convert given type "%s" to FRD system.''' % + raise TypeError("Can't convert given type '%s' to FRD system." % sys.__class__) -def frd(*args): - """frd(d, w) +def frd(*args, **kwargs): + """frd(frdata, omega[, dt]) - Construct a frequency response data model. + Construct a frequency response data (FRD) model. - frd models store the (measured) frequency response of a system. + A frequency response data model stores the (measured) frequency response + of a system. This factory function can be called in different ways: - This function can be called in different ways: + ``frd(frdata, omega)`` - ``frd(response, freqs)`` Create an frd model with the given response data, in the form of - complex response vector, at matching frequency freqs [in rad/s] + complex response vector, at matching frequencies `omega` [in rad/s]. + + ``frd(sys, omega)`` - ``frd(sys, freqs)`` Convert an LTI system into an frd model with data at frequencies - freqs. + `omega`. Parameters ---------- - response: array_like, or list - complex vector with the system response - freq: array_lik or lis - vector with frequencies - sys: LTI (StateSpace or TransferFunction) - A linear system + frdata : array_like or LTI system + Complex vector with the system response or an LTI system that can + be used to compute the frequency response at a list of frequencies. + sys : `StateSpace` or `TransferFunction` + A linear system that will be evaluated for frequency response data. + omega : array_like + Vector of frequencies at which the response is evaluated. + dt : float, True, or None + System timebase. + smooth : bool, optional + If True, create an interpolation function that allows the + frequency response to be computed at any frequency within the range + of frequencies give in `omega`. If False (default), + frequency response can only be obtained at the frequencies + specified in `omega`. Returns ------- - sys: FRD - New frequency response system + sys : `FrequencyResponseData` + New frequency response data system. + + 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. + input_prefix, output_prefix : string, optional + Set the prefix for input and output signals. Defaults = 'u', 'y'. + name : string, optional + Set the name of the system. If unspecified and the system is + sampled from an existing system, the new system name is determined + by adding the prefix and suffix strings in + `config.defaults['iosys.sampled_system_name_prefix']` and + `config.defaults['iosys.sampled_system_name_suffix']`, with the + default being to add the suffix '$sampled'. Otherwise, a generic + name 'sys[id]' is generated with a unique integer id See Also -------- - FRD, ss, tf + FrequencyResponseData, frequency_response, ss, tf Examples -------- >>> # Create from measurements >>> response = [1.0, 1.0, 0.5] - >>> freqs = [1, 10, 100] - >>> F = ct.frd(response, freqs) + >>> omega = [1, 10, 100] + >>> F = ct.frd(response, omega) >>> G = ct.tf([1], [1, 1]) - >>> freqs = [1, 10, 100] - >>> F = ct.frd(G, freqs) + >>> omega = [1, 10, 100] + >>> F = ct.frd(G, omega) """ - return FRD(*args) + return FrequencyResponseData(*args, **kwargs) diff --git a/control/freqplot.py b/control/freqplot.py index 961f499b3..cba975e77 100644 --- a/control/freqplot.py +++ b/control/freqplot.py @@ -1,51 +1,47 @@ # freqplot.py - frequency domain plots for control systems # # Initial author: Richard M. Murray -# Date: 24 May 09 -# -# 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. +# Creation date: 24 May 2009 -import numpy as np -import matplotlib as mpl -import matplotlib.pyplot as plt +"""Frequency domain plots for control systems. + +This module 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. + +""" + +import itertools import math import warnings -import itertools -from os.path import commonprefix -from .ctrlutil import unwrap +import matplotlib as mpl +import matplotlib.pyplot as plt +import numpy as np + +from . import config from .bdalg import feedback -from .margins import stability_margins +from .ctrlplot import ControlPlot, _add_arrows_to_line2D, _find_axes_center, \ + _get_color, _get_color_offset, _get_line_labels, _make_legend_labels, \ + _process_ax_keyword, _process_legend_keywords, _process_line_labels, \ + _update_plot_title +from .ctrlutil import unwrap from .exception import ControlMIMONotImplemented +from .frdata import FrequencyResponseData +from .lti import LTI, _process_frequency_response, frequency_response +from .margins import stability_margins from .statesp import StateSpace -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', '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() -_freqplot_rcParams.update({ - 'axes.labelsize': 'small', - 'axes.titlesize': 'small', - 'figure.titlesize': 'medium', - 'legend.fontsize': 'x-small', - 'xtick.labelsize': 'small', - 'ytick.labelsize': 'small', -}) + 'bode', 'nyquist', 'gangof4', 'FrequencyResponseList', + 'NyquistResponseList'] # 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 @@ -53,10 +49,12 @@ '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]", + 'freqplot.freq_label': "Frequency [{units}]", + 'freqplot.magnitude_label': "Magnitude", 'freqplot.share_magnitude': 'row', 'freqplot.share_phase': 'row', 'freqplot.share_frequency': 'col', + 'freqplot.title_frame': 'axes', } # @@ -68,7 +66,19 @@ # class FrequencyResponseList(list): + """List of FrequencyResponseData objects with plotting capability. + + This class consists of a list of `FrequencyResponseData` objects. + It is a subclass of the Python `list` class, with a `plot` method that + plots the individual `FrequencyResponseData` objects. + + """ def plot(self, *args, plot_type=None, **kwargs): + """Plot a list of frequency responses. + + See `FrequencyResponseData.plot` for details. + + """ if plot_type == None: for response in self: if plot_type is not None and response.plot_type != plot_type: @@ -93,9 +103,8 @@ def bode_plot( data, omega=None, *fmt, ax=None, omega_limits=None, omega_num=None, plot=None, plot_magnitude=True, plot_phase=None, 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, **kwargs): + magnitude_label=None, label=None, display_margins=None, + margins_method='best', title=None, sharex=None, sharey=None, **kwargs): """Bode plot for a system. Plot the magnitude and phase of the frequency response over a @@ -104,92 +113,156 @@ def bode_plot( Parameters ---------- data : list of `FrequencyResponseData` or `LTI` - List of LTI systems or :class:`FrequencyResponseData` objects. A + List of LTI systems or `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. Ignored - if `data` is not a list of systems. - *fmt : :func:`matplotlib.pyplot.plot` format string, optional + omega : array_like, optional + Set of frequencies in rad/sec to plot over. If not specified, this + will be determined from the properties of the systems. Ignored if + `data` is not a list of systems. + *fmt : `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 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) - set by config.defaults['freqplot.deg']. + If True, plot phase in degrees (else radians). Default + value (True) set by `config.defaults['freqplot.deg']`. 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`). - **kwargs : :func:`matplotlib.pyplot.plot` keyword properties, optional + the graph. Setting `display_margins` turns off the axes grid, unless + `grid` is explicitly set to True. + **kwargs : `matplotlib.pyplot.plot` keyword properties, optional Additional keywords passed to `matplotlib` to specify line properties. Returns ------- - lines : array of Line2D - Array of Line2D objects for each line in the plot. The shape of - the array matches the subplots shape and the value of the array is a - list of Line2D objects in that subplot. + cplt : `ControlPlot` object + Object containing the data that were plotted. See `ControlPlot` + for more detailed information. + cplt.lines : Array of `matplotlib.lines.Line2D` objects + Array containing information on each line in the plot. The shape + of the array matches the subplots shape and the value of the array + is a list of Line2D objects in that subplot. + cplt.axes : 2D ndarray of `matplotlib.axes.Axes` + Axes for each subplot. + cplt.figure : `matplotlib.figure.Figure` + Figure containing the plot. + cplt.legend : 2D array of `matplotlib.legend.Legend` + Legend object(s) contained in the plot. Other Parameters ---------------- - grid : bool + ax : array of `matplotlib.axes.Axes`, optional + The matplotlib axes to draw the figure on. If not specified, the + axes for the current figure are used or, if there is no current + figure with the correct number and shape of axes, a new figure is + created. The shape of the array must match the shape of the + plotted data. + freq_label, magnitude_label, phase_label : str, optional + Labels to use for the frequency, magnitude, and phase axes. + Defaults are set by `config.defaults['freqplot.']`. + grid : bool, optional If True, plot grid lines on gain and phase plots. Default is set by `config.defaults['freqplot.grid']`. - initial_phase : float + initial_phase : float, optional Set the reference phase to use for the lowest frequency. If set, the initial phase of the Bode plot will be set to the value closest to the value specified. Units are in either degrees or radians, depending on the `deg` parameter. Default is -180 if wrap_phase is False, 0 if wrap_phase is True. + label : str or array_like of str, optional + If present, replace automatically generated label(s) with the given + label(s). If sysdata is a list, strings should be specified for each + system. If MIMO, strings required for each system, output, and input. + legend_map : array of str, optional + Location of the legend for multi-axes plots. Specifies an array + of legend location strings matching the shape of the subplots, with + each entry being either None (for no legend) or a legend location + string (see `~matplotlib.pyplot.legend`). + legend_loc : int or str, optional + Include a legend in the given location. Default is 'center right', + with no legend for a single response. Use False to suppress legend. + margins_method : str, optional + Method to use in computing margins (see `stability_margins`). 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. + Set limits for plotted frequency range. If Hz=True the limits are + in Hz otherwise in rad/s. Specifying `omega` as a list of two + elements is equivalent to providing `omega_limits`. Ignored if + data is not a list of systems. omega_num : int - Number of samples to use for the frequeny range. Defaults to - config.defaults['freqplot.number_of_samples']. Ignore if data is + Number of samples to use for the frequency range. Defaults to + `config.defaults['freqplot.number_of_samples']`. Ignored if data is not a list of systems. + overlay_inputs, overlay_outputs : bool, optional + If set to True, combine input and/or output signals onto a single + plot and use line colors, labels, and a legend to distinguish them. 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. + plot_magnitude, plot_phase : bool, optional + If set to False, do not plot the magnitude or phase, respectively. rcParams : dict Override the default parameters used for generating plots. - Default is set by config.default['freqplot.rcParams']. + Default is set by `config.defaults['ctrlplot.rcParams']`. + share_frequency, share_magnitude, share_phase : str or bool, optional + Determine whether and how axis limits are shared between the + indicated variables. Can be set set to 'row' to share across all + subplots in a row, 'col' to set across all subplots in a column, or + False to allow independent limits. Note: if `sharex` is given, + it sets the value of `share_frequency`; if `sharey` is given, it + sets the value of both `share_magnitude` and `share_phase`. + Default values are 'row' for `share_magnitude` and `share_phase`, + 'col', for `share_frequency`, and can be set using + `config.defaults['freqplot.share_']`. + show_legend : bool, optional + Force legend to be shown if True or hidden if False. If + None, then show legend when there is more than one line on an + axis or `legend_loc` or `legend_map` has been specified. + title : str, optional + Set the title of the plot. Defaults to plot type and system name(s). + title_frame : str, optional + Set the frame of reference used to center the plot title. If set to + 'axes' (default), the horizontal position of the title will be + centered relative to the axes. If set to 'figure', it will be + centered with respect to the figure (faster execution). The default + value can be set using `config.defaults['freqplot.title_frame']`. wrap_phase : bool or float - If wrap_phase is `False` (default), then the phase will be unwrapped + If wrap_phase is False (default), then the phase will be unwrapped so that it is continuously increasing or decreasing. If wrap_phase is - `True` the phase will be restricted to the range [-180, 180) (or + True the phase will be restricted to the range [-180, 180) (or [:math:`-\\pi`, :math:`\\pi`) radians). If `wrap_phase` is specified as a float, the phase will be offset by 360 degrees if it falls below - the specified value. Default value is `False` and can be set using - config.defaults['freqplot.wrap_phase']. + the specified value. Default value is False and can be set using + `config.defaults['freqplot.wrap_phase']`. - The default values for Bode plot configuration parameters can be reset - using the `config.defaults` dictionary, with module name 'bode'. + See Also + -------- + frequency_response Notes ----- - 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 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 = - 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. + Starting with python-control version 0.10, `bode_plot` returns a + `ControlPlot` object instead of magnitude, phase, and + frequency. To 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 + `frequency_response` command. + + If a discrete-time model is given, the frequency response is plotted + 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. + + The default values for Bode plot configuration parameters can be reset + using the `config.defaults` dictionary, with module name 'bode'. Examples -------- @@ -204,6 +277,24 @@ def bode_plot( # Make a copy of the kwargs dictionary since we will modify it kwargs = dict(kwargs) + # 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`") + + # Turn off grid if display margins, unless explicitly overridden + if display_margins and 'grid' not in kwargs: + kwargs['grid'] = False + + margins_method = config._process_legacy_keyword( + kwargs, 'method', 'margins_method', margins_method) + # 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) @@ -217,14 +308,17 @@ def bode_plot( 'freqplot', 'wrap_phase', kwargs, _freqplot_defaults, pop=True) initial_phase = config._get_param( 'freqplot', 'initial_phase', kwargs, None, pop=True) - freqplot_rcParams = config._get_param( - 'freqplot', 'rcParams', kwargs, _freqplot_defaults, pop=True) + rcParams = config._get_param('ctrlplot', 'rcParams', kwargs, pop=True) + title_frame = config._get_param( + 'freqplot', 'title_frame', kwargs, _freqplot_defaults, pop=True) # 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" + magnitude_label = config._get_param( + 'freqplot', 'magnitude_label', kwargs, + _freqplot_defaults, pop=True) + (" [dB]" if dB else "") if phase_label is None: phase_label = "Phase [deg]" if deg else "Phase [rad]" @@ -241,19 +335,6 @@ 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] @@ -268,7 +349,7 @@ def bode_plot( # # If we were passed a list of systems, convert to data - if all([isinstance( + if any([isinstance( sys, (StateSpace, TransferFunction)) for sys in data]): data = frequency_response( data, omega=omega, omega_limits=omega_limits, @@ -311,10 +392,8 @@ def bode_plot( else: raise ValueError("initial_phase must be a number.") - # Reshape the phase to allow standard indexing - phase = response.phase.copy().reshape((noutputs, ninputs, -1)) - # Shift and wrap the phase + phase = np.angle(response.frdata) # 3D array 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: @@ -337,11 +416,8 @@ def bode_plot( else: raise ValueError("wrap_phase must be bool or float.") - # Put the phase back into the original shape - phase = phase.reshape(response.magnitude.shape) - - # Save the data for later use (legacy return values) - mag_data.append(response.magnitude) + # Save the data for later use + mag_data.append(np.abs(response.frdata)) phase_data.append(phase) omega_data.append(response.omega) @@ -376,8 +452,8 @@ def bode_plot( if plot is not None: warnings.warn( - "`bode_plot` return values of mag, phase, omega is deprecated; " - "use frequency_response()", DeprecationWarning) + "bode_plot() return value of mag, phase, omega is deprecated; " + "use frequency_response()", FutureWarning) if plot is False: # Process the data to match what we were sent @@ -448,47 +524,16 @@ def bode_plot( (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) - 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) - - # 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 - - # Create new axes, if needed, and customize them if ax is None: - with plt.rc_context(_freqplot_rcParams): - ax_array = fig.subplots(nrows, ncols, squeeze=False) - fig.set_layout_engine('tight') - 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): - raise ValueError( - "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() + fig, ax_array = _process_ax_keyword( + ax, (nrows, ncols), squeeze=False, rcParams=rcParams, clear_text=True) + legend_loc, legend_map, show_legend = _process_legend_keywords( + kwargs, (nrows,ncols), 'center right') # Get the values for sharing axes limits share_magnitude = kwargs.pop('share_magnitude', None) @@ -562,7 +607,7 @@ def bode_plot( # axes are available and no updates should be made. # - # Utility function to turn off sharing + # Utility function to turn on sharing def _share_axes(ref, share_map, axis): ref_ax = ax_array[ref] for index in np.nditer(share_map, flags=["refs_ok"]): @@ -624,6 +669,9 @@ def _share_axes(ref, share_map, axis): for j in range(ncols): out[i, j] = [] # unique list in each element + # Process label keyword + line_labels = _process_line_labels(label, len(data), ninputs, noutputs) + # Utility function for creating line label def _make_line_label(response, output_index, input_index): label = "" # start with an empty label @@ -645,8 +693,8 @@ def _make_line_label(response, output_index, input_index): 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)) + mag = mag_data[index] + phase = phase_data[index] omega_sys, sysname = omega_data[index], response.sysname for i, j in itertools.product(range(noutputs), range(ninputs)): @@ -664,7 +712,10 @@ def _make_line_label(response, output_index, input_index): phase_plot = phase[i, j] * 180. / math.pi if deg else phase[i, j] # Generate a label - label = _make_line_label(response, i, j) + if line_labels is None: + label = _make_line_label(response, i, j) + else: + label = line_labels[index, i, j] # Magnitude if plot_magnitude: @@ -682,7 +733,7 @@ def _make_line_label(response, output_index, input_index): label='_nyq_mag_' + sysname) # Add a grid to the plot - ax_mag.grid(grid and not display_margins, which='both') + ax_mag.grid(grid, which='both') # Phase if plot_phase: @@ -697,7 +748,7 @@ def _make_line_label(response, output_index, input_index): label='_nyq_phase_' + sysname) # Add a grid to the plot - ax_phase.grid(grid and not display_margins, which='both') + ax_phase.grid(grid, which='both') # # Display gain and phase margins (SISO only) @@ -708,6 +759,10 @@ def _make_line_label(response, output_index, input_index): raise NotImplementedError( "margins are not available for MIMO systems") + if display_margins == 'overlay' and len(data) > 1: + raise NotImplementedError( + f"{display_margins=} not supported for multi-trace plots") + # Compute stability margins for the system margins = stability_margins(response, method=margins_method) gm, pm, Wcg, Wcp = (margins[i] for i in [0, 1, 3, 4]) @@ -728,13 +783,11 @@ def _make_line_label(response, output_index, input_index): 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'): @@ -801,12 +854,12 @@ def _make_line_label(response, output_index, input_index): else: # Put the title underneath the suptitle (one line per system) - ax = ax_mag if ax_mag else ax_phase - axes_title = ax.get_title() + 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( + with plt.rc_context(rcParams): + ax_.set_title( axes_title + f"{sysname}: " "Gm = %.2f %s(at %.2f %s), " "Pm = %.2f %s (at %.2f %s)" % @@ -820,11 +873,11 @@ def _make_line_label(response, output_index, input_index): # # Finishing handling axes limit sharing # - # This code handles labels on phase plots and also removes tick labels + # This code handles labels on Bode 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 + # * manually generated labels and grids need to reflect the limits for # shared axes, which we don't know until we have plotted everything; # # * the loglog and semilog functions regenerate the labels (not quite @@ -884,50 +937,6 @@ def gen_zero_centered_series(val_min, val_max, period): for i, j in itertools.product(range(nrows), range(ncols)): ax_array[i, j].set_xlim(omega_limits) - # - # 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 (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) - else: - title = data[0].title - - 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 - - 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 header labels) # @@ -945,11 +954,12 @@ def gen_zero_centered_series(val_min, val_max, period): # If we have more than one column, label the individual responses if (noutputs > 1 and not overlay_outputs or ninputs > 1) \ and not overlay_inputs: - with plt.rc_context(_freqplot_rcParams): + with plt.rc_context(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",)) + ax_array[-1, j].set_xlabel( + freq_label.format(units="Hz" if Hz else "rad/s")) # Label the rows for i in range(noutputs if not overlay_outputs else 1): @@ -966,43 +976,60 @@ def gen_zero_centered_series(val_min, val_max, period): 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() + # Find the midpoint between the row axes (+ tight_layout) + _, ypos = _find_axes_center(fig, [ax_mag, ax_phase]) # 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) + # Figure out location for 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']) + fontsize=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()) + # + # 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 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 ax is None and title is None: + if data[0].title is None: + title = "Bode plot for " + ", ".join(sysnames) + else: + # Allow data to set the title (used by gangof4) + title = data[0].title + _update_plot_title(title, fig, rcParams=rcParams, frame=title_frame) + elif ax is None: + _update_plot_title( + title, fig=fig, rcParams=rcParams, frame=title_frame, + use_existing=False) + # # 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 + # matches the shape of the sublots, with each item being a string # indicating the location of the legend for that axes (or None for no # legend). # @@ -1013,38 +1040,41 @@ def gen_zero_centered_series(val_min, val_max, period): # # 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 + # call to plot() may not generate any legends (e.g., if no signals are # overlaid), but subsequent calls to plot() will need a legend for each # different response (system). # - # Figure out where to put legends - if legend_map is None: - legend_map = np.full(ax_array.shape, None, dtype=object) - if legend_loc == None: - legend_loc = 'center right' - - # TODO: add in additional processing later - - # Put legend in the upper right - legend_map[0, -1] = legend_loc - # Create axis legends - for i in range(nrows): - for j in range(ncols): + if show_legend != False: + # Figure out where to put legends + if legend_map is None: + legend_map = np.full(ax_array.shape, None, dtype=object) + legend_map[0, -1] = legend_loc + + legend_array = np.full(ax_array.shape, None, dtype=object) + for i, j in itertools.product(range(nrows), range(ncols)): + if legend_map[i, j] is None: + continue ax = ax_array[i, j] + # Get the labels to use, removing common strings lines = [line for line in ax.get_lines() if line.get_label()[0] != '_'] - labels = _make_legend_labels([line.get_label() for line in lines]) + labels = _make_legend_labels( + [line.get_label() for line in lines], + ignore_common=line_labels is not None) # Generate the label, if needed - if len(labels) > 1 and legend_map[i, j] != None: - with plt.rc_context(freqplot_rcParams): - ax.legend(lines, labels, loc=legend_map[i, j]) + if show_legend == True or len(labels) > 1: + with plt.rc_context(rcParams): + legend_array[i, j] = ax.legend( + lines, labels, loc=legend_map[i, j]) + else: + legend_array = None # - # Legacy return pocessing + # Legacy return processing # if plot is True: # legacy usage; remove in future release # Process the data to match what we were sent @@ -1059,7 +1089,7 @@ def gen_zero_centered_series(val_min, val_max, period): else: return mag_data, phase_data, omega_data - return out + return ControlPlot(out, ax_array, fig, legend=legend_array) # @@ -1079,7 +1109,9 @@ def gen_zero_centered_series(val_min, val_max, period): 'nyquist.max_curve_magnitude': 20, # clip large values 'nyquist.max_curve_offset': 0.02, # offset of primary/mirror 'nyquist.start_marker': 'o', # marker at start of curve - 'nyquist.start_marker_size': 4, # size of the maker + 'nyquist.start_marker_size': 4, # size of the marker + 'nyquist.circle_style': # style for unit circles + {'color': 'black', 'linestyle': 'dashed', 'linewidth': 1} } @@ -1089,18 +1121,18 @@ class NyquistResponseData: 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 + by the `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 + Parameters ---------- 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 + The Nyquist 'D' contour, with appropriate indentations 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. @@ -1108,10 +1140,10 @@ class NyquistResponseData: 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`. + return_contour : bool + If True, when the object is accessed as an iterable return two + elements: `count` (number of encirclements) and `contour`. If + False (default), then return only `count`. """ def __init__( @@ -1140,23 +1172,40 @@ def __len__(self): return 2 if self.return_contour else 1 def plot(self, *args, **kwargs): + """Plot a list of Nyquist responses. + + See `nyquist_plot` for details. + + """ return nyquist_plot(self, *args, **kwargs) class NyquistResponseList(list): + """List of NyquistResponseData objects with plotting capability. + + This class consists of a list of `NyquistResponseData` objects. + It is a subclass of the Python `list` class, with a `plot` method that + plots the individual `NyquistResponseData` objects. + + """ def plot(self, *args, **kwargs): + """Plot a list of Nyquist responses. + + See `nyquist_plot` for details. + + """ return nyquist_plot(self, *args, **kwargs) def nyquist_response( - sysdata, omega=None, plot=None, omega_limits=None, omega_num=None, + sysdata, omega=None, omega_limits=None, omega_num=None, return_contour=False, warn_encirclements=True, warn_nyquist=True, - check_kwargs=True, **kwargs): + _kwargs=None, _check_kwargs=True, **kwargs): """Nyquist response for a system. 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 + computed by evaluating the Nyquist 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 @@ -1170,19 +1219,13 @@ def nyquist_response( 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']. Returns ------- - responses : list of :class:`~control.NyquistResponseData` + responses : list of `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 element is returned (not a + list). 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. @@ -1195,79 +1238,94 @@ def nyquist_response( 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']. - + 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'. - + be 'right' (default), 'left', or 'none'. The default value can + be set using `config.defaults['nyquist.indent_direction']`. 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. - + imaginary axis. Portions of the Nyquist plot corresponding to + indented portions of the contour are plotted using a different line + style. The default value can be set using + `config.defaults['nyquist.indent_radius']`. + omega_limits : array_like of two values + Set limits for plotted frequency range. If Hz=True the limits are + in Hz otherwise in rad/s. Specifying `omega` as a list of two + elements is equivalent to providing `omega_limits`. + omega_num : int, optional + Number of samples to use for the frequency range. Defaults to + `config.defaults['freqplot.number_of_samples']`. warn_nyquist : bool, optional - If set to 'False', turn off warnings about frequencies above Nyquist. - + 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 + 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. - - 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. + 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. + + 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. + + For those portions of the Nyquist plot in which the contour is indented + to avoid poles, resulting 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. + + 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. + + See Also + -------- + nyquist_plot Examples -------- >>> G = ct.zpk([], [-1, -2, -3], gain=100) >>> response = ct.nyquist_response(G) >>> count = response.count - >>> lines = response.plot() + >>> cplt = response.plot() """ + # Create unified list of keyword arguments + if _kwargs is None: + _kwargs = kwargs + else: + # Use existing dictionary, to keep track of processed keywords + _kwargs |= kwargs + # 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( - 'nyquist', 'indent_radius', kwargs, _nyquist_defaults, pop=True) + 'nyquist', 'indent_radius', _kwargs, _nyquist_defaults, pop=True) encirclement_threshold = config._get_param( - 'nyquist', 'encirclement_threshold', kwargs, + 'nyquist', 'encirclement_threshold', _kwargs, _nyquist_defaults, pop=True) indent_direction = config._get_param( - 'nyquist', 'indent_direction', kwargs, _nyquist_defaults, pop=True) + 'nyquist', 'indent_direction', _kwargs, _nyquist_defaults, pop=True) indent_points = config._get_param( - 'nyquist', 'indent_points', kwargs, _nyquist_defaults, pop=True) + 'nyquist', 'indent_points', _kwargs, _nyquist_defaults, pop=True) - if check_kwargs and kwargs: - raise TypeError("unrecognized keywords: ", str(kwargs)) + if _check_kwargs and _kwargs: + raise TypeError("unrecognized keywords: ", str(_kwargs)) # Convert the first argument to a list syslist = sysdata if isinstance(sysdata, (list, tuple)) else [sysdata] @@ -1295,7 +1353,11 @@ def nyquist_response( "Nyquist plot currently only supports SISO systems.") # Figure out the frequency range - omega_sys = np.asarray(omega) + if isinstance(sys, FrequencyResponseData) and sys._ifunc is None \ + and not omega_range_given: + omega_sys = sys.omega # use system frequencies + else: + omega_sys = np.asarray(omega) # use common omega vector # Determine the contour used to evaluate the Nyquist curve if sys.isdtime(strict=True): @@ -1393,7 +1455,7 @@ def nyquist_response( splane_contour[last_point:])) # Indent points that are too close to a pole - if len(splane_poles) > 0: # accomodate no splane poles if dtime sys + if len(splane_poles) > 0: # accommodate 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()] @@ -1426,6 +1488,12 @@ def nyquist_response( else: contour = np.exp(splane_contour * sys.dt) + # Make sure we don't try to evaluate at a pole + if isinstance(sys, (StateSpace, TransferFunction)): + if any([pole in contour for pole in sys.poles()]): + raise RuntimeError( + "attempt to evaluate at a pole; indent required") + # Compute the primary curve resp = sys(contour) @@ -1443,10 +1511,10 @@ def nyquist_response( " frequency range that does not include zero.") # - # Make sure that the enciriclements match the Nyquist criterion + # Make sure that the encirclements match the Nyquist criterion # # If the user specifies the frequency points to use, it is possible - # to miss enciriclements, so we check here to make sure that the + # to miss encirclements, so we check here to make sure that the # Nyquist criterion is actually satisfied. # if isinstance(sys, (StateSpace, TransferFunction)): @@ -1470,8 +1538,8 @@ def nyquist_response( "number of encirclements does not match Nyquist criterion;" " check frequency range and indent radius/direction", UserWarning, stacklevel=2) - elif indent_direction == 'none' and any(sys.poles().real == 0) and \ - warn_encirclements: + elif indent_direction == 'none' and any(sys.poles().real == 0) \ + and warn_encirclements: warnings.warn( "system has pure imaginary poles but indentation is" " turned off; results may be meaningless", @@ -1491,12 +1559,13 @@ def nyquist_response( def nyquist_plot( - data, omega=None, plot=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, label=None, + return_contour=None, title=None, ax=None, + unit_circle=False, mt_circles=None, ms_circles=None, **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 + range. The curve is computed by evaluating the Nyquist 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 @@ -1505,153 +1574,185 @@ def nyquist_plot( Parameters ---------- - data : list of LTI or NyquistResponseData + 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 responses (computed using `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`) + Set of frequencies to be evaluated, in rad/sec. Specifying + `omega` as a list of two elements is equivalent to providing + `omega_limits`. + unit_circle : bool, optional + If True, display the unit circle, to read gain crossover + frequency. The circle style is determined by + `config.defaults['nyquist.circle_style']`. + mt_circles : array_like, optional + Draw circles corresponding to the given magnitudes of sensitivity. + ms_circles : array_like, optional + Draw circles corresponding to the given magnitudes of complementary + sensitivity. + **kwargs : `matplotlib.pyplot.plot` keyword properties, optional + Additional keywords passed to `matplotlib` to specify line properties. Returns ------- - lines : array of Line2D - 2D array of Line2D objects for each line in the plot. The shape of - the array is given by (nsys, 4) where nsys is the number of systems - or Nyquist responses passed to the function. The second index - specifies the segment type: - - * lines[idx, 0]: unscaled portion of the primary curve - * lines[idx, 1]: scaled portion of the primary curve - * lines[idx, 2]: unscaled portion of the mirror curve - * lines[idx, 3]: scaled portion of the mirror curve + cplt : `ControlPlot` object + Object containing the data that were plotted. See `ControlPlot` + for more detailed information. + cplt.lines : 2D array of `matplotlib.lines.Line2D` + Array containing information on each line in the plot. The shape + of the array is given by (nsys, 4) where nsys is the number of + systems or Nyquist responses passed to the function. The second + index specifies the segment type: + + - lines[idx, 0]: unscaled portion of the primary curve + - lines[idx, 1]: scaled portion of the primary curve + - lines[idx, 2]: unscaled portion of the mirror curve + - lines[idx, 3]: scaled portion of the mirror curve + + cplt.axes : 2D array of `matplotlib.axes.Axes` + Axes for each subplot. + cplt.figure : `matplotlib.figure.Figure` + Figure containing the plot. + cplt.legend : 2D array of `matplotlib.legend.Legend` + Legend object(s) contained in the 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. - + 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. Default value is 2 and can be + set using `config.defaults['nyquist.arrows']`. 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']. - + 8 and can be set using `config.defaults['nyquist.arrow_size']`. arrow_style : matplotlib.patches.ArrowStyle, optional Define style used for Nyquist curve arrows (overrides `arrow_size`). - + ax : `matplotlib.axes.Axes`, optional + The matplotlib axes to draw the figure on. If not specified and + the current figure has a single axes, that axes is used. + Otherwise, a new figure is created. encirclement_threshold : float, optional Define the threshold for generating a warning if the number of net encirclements is a non-integer value. Default value is 0.05 and can - be set using config.defaults['nyquist.encirclement_threshold']. - + 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 : str or array_like of str, optional + If present, replace automatically generated label(s) with the given + label(s). If sysdata is a list, strings should be specified for each + system. + label_freq : int, optional Label every nth frequency on the plot. If not specified, no labels are generated. - + legend_loc : int or str, optional + Include a legend in the given location. Default is 'upper right', + with no legend for a single response. Use False to suppress legend. max_curve_magnitude : float, optional Restrict the maximum magnitude of the Nyquist plot to this value. Portions of the Nyquist plot whose magnitude is restricted are - plotted using a different line style. - + plotted using a different line style. The default value is 20 and + can be set using `config.defaults['nyquist.max_curve_magnitude']`. 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. - + The default value is 0.02 and can be set using + `config.defaults['nyquist.max_curve_magnitude']`. 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']. - + False then omit completely. Default linestyle (['--', ':']) is + determined by `config.defaults['nyquist.mirror_style']`. + omega_limits : array_like of two values + Set limits for plotted frequency range. If Hz=True the limits are + in Hz otherwise in rad/s. Specifying `omega` as a list of two + elements is equivalent to providing `omega_limits`. + omega_num : int, optional + Number of samples to use for the frequency range. Defaults to + `config.defaults['freqplot.number_of_samples']`. Ignored 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. - + (legacy) If given, `nyquist_plot` returns the legacy return values + of (counts, contours). If False, 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']. - + determined by `config.defaults['nyquist.mirror_style']`. + rcParams : dict + Override the default parameters used for generating plots. + Default is set by `config.defaults['ctrlplot.rcParams']`. + return_contour : bool, optional + (legacy) If True, return the encirclement count and Nyquist + contour used to generate the Nyquist plot. + show_legend : bool, optional + Force legend to be shown if True or hidden if False. If + None, then show legend when there is more than one line on the + plot or `legend_loc` has been specified. start_marker : str, optional Matplotlib marker to use to mark the starting point of the Nyquist plot. Defaults value is 'o' and can be set using - config.defaults['nyquist.start_marker']. - + `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']. - + 4 and can be set using `config.defaults['nyquist.start_marker_size']`. + title : str, optional + Set the title of the plot. Defaults to plot type and system name(s). + title_frame : str, optional + Set the frame of reference used to center the plot title. If set to + 'axes' (default), the horizontal position of the title will + centered relative to the axes. If set to 'figure', it will be + centered with respect to the figure (faster execution). warn_nyquist : bool, optional - If set to 'False', turn off warnings about frequencies above Nyquist. - + 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 + If set to False, turn off warnings about number of encirclements not meeting the Nyquist criterion. + See Also + -------- + nyquist_response + 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. + 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. + + 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. + + For those portions of the Nyquist plot in which the contour is indented + to avoid poles, resulting 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 -------- @@ -1680,14 +1781,18 @@ def nyquist_plot( arrow_size = config._get_param( 'nyquist', 'arrow_size', kwargs, _nyquist_defaults, pop=True) arrow_style = config._get_param('nyquist', 'arrow_style', kwargs, None) + ax_user = ax max_curve_magnitude = config._get_param( 'nyquist', 'max_curve_magnitude', kwargs, _nyquist_defaults, pop=True) max_curve_offset = config._get_param( 'nyquist', 'max_curve_offset', kwargs, _nyquist_defaults, pop=True) + rcParams = config._get_param('ctrlplot', 'rcParams', kwargs, pop=True) start_marker = config._get_param( 'nyquist', 'start_marker', kwargs, _nyquist_defaults, pop=True) start_marker_size = config._get_param( 'nyquist', 'start_marker_size', kwargs, _nyquist_defaults, pop=True) + title_frame = config._get_param( + 'freqplot', 'title_frame', kwargs, _freqplot_defaults, pop=True) # Set line styles for the curves def _parse_linestyle(style_name, allow_false=False): @@ -1729,33 +1834,36 @@ def _parse_linestyle(style_name, allow_false=False): if not isinstance(data, (list, tuple)): data = [data] + # Process label keyword + line_labels = _process_line_labels(label, len(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 + # Get the response; pop explicit keywords here, kwargs in _response() nyquist_responses = nyquist_response( 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) + _kwargs=kwargs, _check_kwargs=False) 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) + "nyquist_plot() return value of count[, contour] is deprecated; " + "use nyquist_response()", FutureWarning) # 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: - # Make sure we used all of the keywrods + # Make sure we used all of the keywords if kwargs: raise TypeError("unrecognized keywords: ", str(kwargs)) @@ -1765,6 +1873,11 @@ def _parse_linestyle(style_name, allow_false=False): # Return counts and (optionally) the contour we used return (counts, contours) if return_contour else counts + fig, ax = _process_ax_keyword( + ax_user, shape=(1, 1), squeeze=True, rcParams=rcParams) + legend_loc, _, show_legend = _process_legend_keywords( + kwargs, None, 'upper right') + # Create a list of lines for the output out = np.empty(len(nyquist_responses), dtype=object) for i in range(out.shape[0]): @@ -1794,12 +1907,14 @@ def _parse_linestyle(style_name, allow_false=False): reg_mask, abs(resp) > max_curve_magnitude) resp[rescale] *= max_curve_magnitude / abs(resp[rescale]) + # Get the label to use for the line + label = response.sysname if line_labels is None else line_labels[idx] + # 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) + p = ax.plot( + x_reg, y_reg, primary_style[0], color=color, label=label, **kwargs) c = p[0].get_color() out[idx] += p @@ -1813,7 +1928,7 @@ def _parse_linestyle(style_name, allow_false=False): 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( + out[idx] += ax.plot( x_scl * (1 + curve_offset), y_scl * (1 + curve_offset), primary_style[1], color=c, **kwargs) @@ -1824,20 +1939,19 @@ 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) + p = ax.plot(x, y, linestyle='None', color=c) # 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( + out[idx] += ax.plot( x_reg, -y_reg, mirror_style[0], color=c, **kwargs) if x_scl.count() >= 1 and y_scl.count() >= 1: - out[idx] += plt.plot( + out[idx] += ax.plot( x_scl * (1 - curve_offset), -y_scl * (1 - curve_offset), mirror_style[1], color=c, **kwargs) @@ -1848,7 +1962,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 = ax.plot(x, -y, linestyle='None', color=c, **kwargs) _add_arrows_to_line2D( ax, p[0], arrow_pos, arrowstyle=arrow_style, dir=-1) else: @@ -1856,13 +1970,54 @@ def _parse_linestyle(style_name, allow_false=False): # Mark the start of the curve if start_marker: - plt.plot(resp[0].real, resp[0].imag, start_marker, + ax.plot(resp[0].real, resp[0].imag, start_marker, color=c, markersize=start_marker_size) # Mark the -1 point - plt.plot([-1], [0], 'r+') + ax.plot([-1], [0], 'r+') - # Label the frequencies of the points + # + # Draw circles for gain crossover and sensitivity functions + # + theta = np.linspace(0, 2*np.pi, 100) + cos = np.cos(theta) + sin = np.sin(theta) + label_pos = 15 + + # Display the unit circle, to read gain crossover frequency + if unit_circle: + ax.plot(cos, sin, **config.defaults['nyquist.circle_style']) + + # Draw circles for given magnitudes of sensitivity + if ms_circles is not None: + for ms in ms_circles: + pos_x = -1 + (1/ms)*cos + pos_y = (1/ms)*sin + ax.plot( + pos_x, pos_y, **config.defaults['nyquist.circle_style']) + ax.text(pos_x[label_pos], pos_y[label_pos], ms) + + # Draw circles for given magnitudes of complementary sensitivity + if mt_circles is not None: + for mt in mt_circles: + if mt != 1: + ct = -mt**2/(mt**2-1) # Mt center + rt = mt/(mt**2-1) # Mt radius + pos_x = ct+rt*cos + pos_y = rt*sin + ax.plot( + pos_x, pos_y, + **config.defaults['nyquist.circle_style']) + ax.text(pos_x[label_pos], pos_y[label_pos], mt) + else: + _, _, ymin, ymax = ax.axis() + pos_y = np.linspace(ymin, ymax, 100) + ax.vlines( + -0.5, ymin=ymin, ymax=ymax, + **config.defaults['nyquist.circle_style']) + ax.text(-0.5, pos_y[label_pos], 1) + + # Label the frequencies of the points on the Nyquist curve if label_freq: ind = slice(None, None, label_freq) omega_sys = np.imag(splane_contour[np.real(splane_contour) == 0]) @@ -1883,12 +2038,11 @@ def _parse_linestyle(style_name, allow_false=False): # np.round() is used because 0.99... appears # instead of 1.0, and this would otherwise be # truncated to 0. - plt.text(xpt, ypt, ' ' + + ax.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") @@ -1897,15 +2051,24 @@ def _parse_linestyle(style_name, allow_false=False): lines, labels = _get_line_labels(ax) # Add legend if there is more than one system plotted - if len(labels) > 1: - ax.legend(lines, labels, loc=legend_loc) + if show_legend == True or (show_legend != False and len(labels) > 1): + with plt.rc_context(rcParams): + legend = ax.legend(lines, labels, loc=legend_loc) + else: + legend = None # Add the title - if title is None: - title = "Nyquist plot for " + ", ".join(labels) - fig.suptitle(title) + sysnames = [response.sysname for response in nyquist_responses] + if ax_user is None and title is None: + title = "Nyquist plot for " + ", ".join(sysnames) + _update_plot_title( + title, fig=fig, rcParams=rcParams, frame=title_frame) + elif ax_user is None: + _update_plot_title( + title, fig=fig, rcParams=rcParams, frame=title_frame, + use_existing=False) - # Legacy return pocessing + # Legacy return processing if plot is True or return_contour is not None: if len(data) == 1: counts, contours = counts[0], contours[0] @@ -1913,81 +2076,7 @@ def _parse_linestyle(style_name, allow_false=False): # Return counts and (optionally) the contour we used return (counts, contours) if return_contour else counts - return out - - -# Internal function to add arrows to a curve -def _add_arrows_to_line2D( - axes, line, arrow_locs=[0.2, 0.4, 0.6, 0.8], - arrowstyle='-|>', arrowsize=1, dir=1, transform=None): - """ - Add arrows to a matplotlib.lines.Line2D at selected locations. - - Parameters: - ----------- - axes: Axes object as returned by axes command (or gca) - line: Line2D object as returned by plot command - arrow_locs: list of locations where to insert arrows, % of total length - arrowstyle: style of the arrow - arrowsize: size of the arrow - transform: a matplotlib transform instance, default to data coordinates - - Returns: - -------- - arrows: list of arrows - - Based on https://stackoverflow.com/questions/26911898/ - - """ - if not isinstance(line, mpl.lines.Line2D): - raise ValueError("expected a matplotlib.lines.Line2D object") - x, y = line.get_xdata(), line.get_ydata() - - arrow_kw = { - "arrowstyle": arrowstyle, - } - - color = line.get_color() - use_multicolor_lines = isinstance(color, np.ndarray) - if use_multicolor_lines: - raise NotImplementedError("multicolor lines not supported") - else: - arrow_kw['color'] = color - - linewidth = line.get_linewidth() - if isinstance(linewidth, np.ndarray): - raise NotImplementedError("multiwidth lines not supported") - else: - arrow_kw['linewidth'] = linewidth - - if transform is None: - transform = axes.transData - - # Compute the arc length along the curve - s = np.cumsum(np.sqrt(np.diff(x) ** 2 + np.diff(y) ** 2)) - - arrows = [] - for loc in arrow_locs: - n = np.searchsorted(s, s[-1] * loc) - - # Figure out what direction to paint the arrow - if dir == 1: - arrow_tail = (x[n], y[n]) - arrow_head = (np.mean(x[n:n + 2]), np.mean(y[n:n + 2])) - elif dir == -1: - # Orient the arrow in the other direction on the segment - arrow_tail = (x[n + 1], y[n + 1]) - arrow_head = (np.mean(x[n:n + 2]), np.mean(y[n:n + 2])) - else: - raise ValueError("unknown value for keyword 'dir'") - - p = mpl.patches.FancyArrowPatch( - arrow_tail, arrow_head, transform=transform, lw=0, - **arrow_kw) - axes.add_patch(p) - arrows.append(p) - return arrows - + return ControlPlot(out, ax, fig, legend=legend) # @@ -2005,7 +2094,7 @@ def _compute_curve_offset(resp, mask, max_offset): offset = np.zeros(resp.size) arclen = np.zeros(resp.size) - # Walk through the response and keep track of each continous component + # Walk through the response and keep track of each continuous component i, nsegs = 0, 0 while i < resp.size: # Skip the regular segment @@ -2050,8 +2139,9 @@ def _compute_curve_offset(resp, mask, max_offset): # # Gang of Four plot # -def gangof4_response(P, C, omega=None, Hz=False): - """Compute the response of the "Gang of 4" transfer functions for a system. +def gangof4_response( + P, C, omega=None, omega_limits=None, omega_num=None, Hz=False): + """Compute response of "Gang of 4" transfer functions. Generates a 2x2 frequency response for the "Gang of 4" sensitivity functions [T, PS; CS, S]. @@ -2059,13 +2149,25 @@ def gangof4_response(P, C, omega=None, Hz=False): Parameters ---------- P, C : LTI - Linear input/output systems (process and control) + Linear input/output systems (process and control). omega : array - Range of frequencies (list or bounds) in rad/sec + Range of frequencies (list or bounds) in rad/sec. + omega_limits : array_like of two values + Set limits for plotted frequency range. If Hz=True the limits are + in Hz otherwise in rad/s. Specifying `omega` as a list of two + elements is equivalent to providing `omega_limits`. Ignored if + data is not a list of systems. + omega_num : int + Number of samples to use for the frequency range. Defaults to + `config.defaults['freqplot.number_of_samples']`. Ignored if data is + not a list of systems. + Hz : bool, optional + If True, when computing frequency limits automatically set + limits to full decades in Hz instead of rad/s. Returns ------- - response : :class:`~control.FrequencyResponseData` + response : `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. @@ -2074,7 +2176,7 @@ def gangof4_response(P, C, omega=None, Hz=False): >>> P = ct.tf([1], [1, 1]) >>> C = ct.tf([2], [1]) >>> response = ct.gangof4_response(P, C) - >>> lines = response.plot() + >>> cplt = response.plot() """ if not P.issiso() or not C.issiso(): @@ -2082,15 +2184,15 @@ def gangof4_response(P, C, omega=None, Hz=False): raise ControlMIMONotImplemented( "Gang of four is currently only implemented for SISO systems.") - # Compute the senstivity functions + # Compute the sensitivity functions L = P * C S = feedback(1, L) T = L * S # Select a default range if none is provided # TODO: This needs to be made more intelligent - if omega is None: - omega = _default_frequency_range((P, C, S), Hz=Hz) + omega, _ = _determine_omega_vector( + [P, C, S], omega, omega_limits, omega_num, Hz=Hz) # # bode_plot based implementation @@ -2111,12 +2213,78 @@ def gangof4_response(P, C, omega=None, Hz=False): return FrequencyResponseData( data, omega, outputs=['y', 'u'], inputs=['r', 'd'], - title=f"Gang of Four for P={P.name}, C={C.name}", plot_phase=False) + title=f"Gang of Four for P={P.name}, C={C.name}", + sysname=f"P={P.name}, C={C.name}", plot_phase=False) + + +def gangof4_plot( + *args, omega=None, omega_limits=None, omega_num=None, + Hz=False, **kwargs): + """gangof4_plot(response) \ + gangof4_plot(P, C, omega) + + Plot response of "Gang of 4" transfer functions. + + Plots a 2x2 frequency response for the "Gang of 4" sensitivity + functions [T, PS; CS, S]. Can be called in one of two ways: + + gangof4_plot(response[, ...]) + gangof4_plot(P, C[, ...]) + + Parameters + ---------- + response : FrequencyPlotData + Gang of 4 frequency response from `gangof4_response`. + P, C : LTI + Linear input/output systems (process and control). + omega : array + Range of frequencies (list or bounds) in rad/sec. + omega_limits : array_like of two values + Set limits for plotted frequency range. If Hz=True the limits are + in Hz otherwise in rad/s. Specifying `omega` as a list of two + elements is equivalent to providing `omega_limits`. Ignored if + data is not a list of systems. + omega_num : int + Number of samples to use for the frequency range. Defaults to + `config.defaults['freqplot.number_of_samples']`. Ignored if data is + not a list of systems. + Hz : bool, optional + If True, when computing frequency limits automatically set + limits to full decades in Hz instead of rad/s. + Returns + ------- + cplt : `ControlPlot` object + Object containing the data that were plotted. See `ControlPlot` + for more detailed information. + cplt.lines : 2x2 array of `matplotlib.lines.Line2D` + Array containing information on each line in the plot. The value + of each array entry is a list of Line2D objects in that subplot. + cplt.axes : 2D array of `matplotlib.axes.Axes` + Axes for each subplot. + cplt.figure : `matplotlib.figure.Figure` + Figure containing the plot. + cplt.legend : 2D array of `matplotlib.legend.Legend` + Legend object(s) contained in the plot. + + """ + if len(args) == 1 and isinstance(args[0], FrequencyResponseData): + if any([kw is not None + for kw in [omega, omega_limits, omega_num, Hz]]): + raise ValueError( + "omega, omega_limits, omega_num, Hz not allowed when " + "given a Gang of 4 response as first argument") + return args[0].plot(kwargs) + else: + if len(args) > 3: + raise TypeError( + f"expecting 2 or 3 positional arguments; received {len(args)}") + omega = omega if len(args) < 3 else args[2] + args = args[0:2] + return gangof4_response( + *args, omega=omega, omega_limits=omega_limits, + omega_num=omega_num, Hz=Hz).plot(**kwargs) -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 @@ -2134,22 +2302,30 @@ def singular_values_response( 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 - 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, 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. + limits to full decades in Hz instead of rad/s. Returns ------- - response : FrequencyResponseData + response : `FrequencyResponseData` Frequency response with the number of outputs equal to the number of singular values in the response, and a single input. + Other Parameters + ---------------- + omega_limits : array_like of two values + Set limits for plotted frequency range. If Hz=True the limits are + in Hz otherwise in rad/s. Specifying `omega` as a list of two + elements is equivalent to providing `omega_limits`. + omega_num : int, optional + Number of samples to use for the frequency range. Defaults to + `config.defaults['freqplot.number_of_samples']`. + + See Also + -------- + singular_values_plot + Examples -------- >>> omegas = np.logspace(-4, 1, 1000) @@ -2174,7 +2350,7 @@ def singular_values_response( svd_responses = [] for response in responses: # Compute the singular values (permute indices to make things work) - fresp_permuted = response.fresp.transpose((2, 0, 1)) + fresp_permuted = response.frdata.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]) @@ -2195,7 +2371,7 @@ def singular_values_response( def singular_values_plot( data, omega=None, *fmt, plot=None, omega_limits=None, omega_num=None, - title=None, legend_loc='center right', **kwargs): + ax=None, label=None, title=None, **kwargs): """Plot the singular values for a system. Plot the singular values as a function of frequency for a system or @@ -2205,48 +2381,62 @@ def singular_values_plot( Parameters ---------- data : list of `FrequencyResponseData` - List of :class:`FrequencyResponseData` objects. For backward + List of `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. - *fmt : :func:`matplotlib.pyplot.plot` format string, optional + *fmt : `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 If True, plot frequency in Hz (omega must be provided in rad/sec). - Default value (False) set by config.defaults['freqplot.Hz']. - 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 + Default value (False) set by `config.defaults['freqplot.Hz']`. + **kwargs : `matplotlib.pyplot.plot` keyword properties, optional Additional keywords passed to `matplotlib` to specify line properties. Returns ------- - lines : array of Line2D - 1-D array of Line2D objects. The size of the array matches - the number of systems and the value of the array is a list of - Line2D objects for that system. - mag : ndarray (or list of ndarray if len(data) > 1)) - If plot=False, magnitude of the response (deprecated). - phase : ndarray (or list of ndarray if len(data) > 1)) - If plot=False, phase in radians of the response (deprecated). - omega : ndarray (or list of ndarray if len(data) > 1)) - If plot=False, frequency in rad/sec (deprecated). + cplt : `ControlPlot` object + Object containing the data that were plotted. See `ControlPlot` + for more detailed information. + cplt.lines : array of `matplotlib.lines.Line2D` + Array containing information on each line in the plot. The size of + the array matches the number of systems and the value of the array + is a list of Line2D objects for that system. + cplt.axes : 2D array of `matplotlib.axes.Axes` + Axes for each subplot. + cplt.figure : `matplotlib.figure.Figure` + Figure containing the plot. + cplt.legend : 2D array of `matplotlib.legend.Legend` + Legend object(s) contained in the plot. Other Parameters ---------------- + ax : `matplotlib.axes.Axes`, optional + The matplotlib axes to draw the figure on. If not specified and + the current figure has a single axes, that axes is used. + Otherwise, a new figure is created. + color : matplotlib color spec + Color to use for singular values (or None for matplotlib default). grid : bool - If True, plot grid lines on gain and phase plots. Default is set by - `config.defaults['freqplot.grid']`. + If True, plot grid lines on gain and phase plots. Default is + set by `config.defaults['freqplot.grid']`. + label : str or array_like of str, optional + If present, replace automatically generated label(s) with the given + label(s). If sysdata is a list, strings should be specified for each + system. + legend_loc : int or str, optional + Include a legend in the given location. Default is 'center right', + with no legend for a single response. Use False to suppress legend. omega_limits : array_like of two values - Set limits for plotted frequency range. If Hz=True the limits - are in Hz otherwise in rad/s. - omega_num : int - Number of samples to use for the frequeny range. Defaults to - config.defaults['freqplot.number_of_samples']. Ignore if data is + Set limits for plotted frequency range. If Hz=True the limits are + in Hz otherwise in rad/s. Specifying `omega` as a list of two + elements is equivalent to providing `omega_limits`. + omega_num : int, optional + Number of samples to use for the frequency range. Defaults to + `config.defaults['freqplot.number_of_samples']`. Ignored if data is not a list of systems. plot : bool, optional (legacy) If given, `singular_values_plot` returns the legacy return @@ -2254,18 +2444,45 @@ def singular_values_plot( the 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 up `config.defaults['ctrlplot.rcParams']`. + show_legend : bool, optional + Force legend to be shown if True or hidden if False. If + None, then show legend when there is more than one line on an + axis or `legend_loc` or `legend_map` has been specified. + title : str, optional + Set the title of the plot. Defaults to plot type and system name(s). + title_frame : str, optional + Set the frame of reference used to center the plot title. If set to + 'axes' (default), the horizontal position of the title will + centered relative to the axes. If set to 'figure', it will be + centered with respect to the figure (faster execution). + + See Also + -------- + singular_values_response + + Notes + ----- + If `plot` = False, the following legacy values are returned: + * `mag` : ndarray (or list of ndarray if len(data) > 1)) + Magnitude of the response (deprecated). + * `phase` : ndarray (or list of ndarray if len(data) > 1)) + Phase in radians of the response (deprecated). + * `omega` : ndarray (or list of ndarray if len(data) > 1)) + Frequency in rad/sec (deprecated). """ # Keyword processing + color = kwargs.pop('color', None) 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) - freqplot_rcParams = config._get_param( - 'freqplot', 'rcParams', kwargs, _freqplot_defaults, pop=True) + rcParams = config._get_param('ctrlplot', 'rcParams', kwargs, pop=True) + title_frame = config._get_param( + 'freqplot', 'title_frame', kwargs, _freqplot_defaults, pop=True) # If argument was a singleton, turn it into a tuple data = data if isinstance(data, (list, tuple)) else (data,) @@ -2290,19 +2507,22 @@ def singular_values_plot( responses = data + # Process label keyword + line_labels = _process_line_labels(label, len(data)) + # 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) + "deprecated; use singular_values_response()", FutureWarning) # Warn the user if we got past something that is not real-valued - if any([not np.allclose(np.imag(response.fresp[:, 0, :]), 0) + if any([not np.allclose(np.imag(response.frdata[:, 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] + sigmas = [np.real(response.frdata[:, 0, :]) for response in responses] omegas = [response.omega for response in responses] # Legacy processing for no plotting case @@ -2312,31 +2532,14 @@ def singular_values_plot( else: return sigmas, omegas - fig = plt.gcf() # get current figure (or create new one) - ax_sigma = None # axes for plotting singular values + fig, ax_sigma = _process_ax_keyword( + ax, shape=(1, 1), squeeze=True, rcParams=rcParams) + ax_sigma.set_label('control-sigma') # TODO: deprecate? + legend_loc, _, show_legend = _process_legend_keywords( + kwargs, None, 'center right') - # Get the current axes if they already exist - for ax in fig.axes: - if ax.get_label() == 'control-sigma': - ax_sigma = ax - - # 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() - - with plt.rc_context(_freqplot_rcParams): - ax_sigma = plt.subplot(111, label='control-sigma') - - # 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 + # Get color offset for first (new) line to be drawn + color_offset, color_cycle = _get_color_offset(ax_sigma) # Create a list of lines for the output out = np.empty(len(data), dtype=object) @@ -2351,29 +2554,29 @@ def singular_values_plot( else: nyq_freq = None - # 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: - color_arg = {'color': color_cycle[ - (idx_sys + color_offset) % len(color_cycle)]} + # Determine the color to use for this response + current_color = _get_color( + color, fmt=fmt, offset=color_offset + idx_sys, + color_cycle=color_cycle) + + # To avoid conflict with *fmt, only pass color kw if non-None + color_arg = {} if current_color is None else {'color': current_color} # Decide on the system name sysname = response.sysname if response.sysname is not None \ else f"Unknown-{idx_sys}" + # Get the label to use for the line + label = sysname if line_labels is None else line_labels[idx_sys] + # Plot the data if dB: - with plt.rc_context(freqplot_rcParams): - out[idx_sys] = ax_sigma.semilogx( - omega, 20 * np.log10(sigma), *fmt, - label=sysname, **color_arg, **kwargs) + out[idx_sys] = ax_sigma.semilogx( + omega, 20 * np.log10(sigma), *fmt, + label=label, **color_arg, **kwargs) else: - with plt.rc_context(freqplot_rcParams): - out[idx_sys] = ax_sigma.loglog( - omega, sigma, label=sysname, *fmt, **color_arg, **kwargs) + out[idx_sys] = ax_sigma.loglog( + omega, sigma, label=label, *fmt, **color_arg, **kwargs) # Plot the Nyquist frequency if nyq_freq is not None: @@ -2388,24 +2591,28 @@ def singular_values_plot( # Add a grid to the plot + labeling 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]") + + ax_sigma.set_ylabel( + "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 lines, labels = _get_line_labels(ax_sigma) # Add legend if there is more than one system plotted - if len(labels) > 1 and legend_loc is not False: - with plt.rc_context(freqplot_rcParams): - ax_sigma.legend(lines, labels, loc=legend_loc) + if show_legend == True or (show_legend != False and len(labels) > 1): + with plt.rc_context(rcParams): + legend = ax_sigma.legend(lines, labels, loc=legend_loc) + else: + legend = None # Add the title - if title is None: - title = "Singular values for " + ", ".join(labels) - with plt.rc_context(freqplot_rcParams): - fig.suptitle(title) + if ax is None: + if title is None: + title = "Singular values for " + ", ".join(labels) + _update_plot_title( + title, fig=fig, rcParams=rcParams, frame=title_frame, + use_existing=False) # Legacy return processing if plot is not None: @@ -2414,13 +2621,13 @@ def singular_values_plot( else: return sigmas, omegas - return out + return ControlPlot(out, ax_sigma, fig, legend=legend) # # Utility functions # # This section of the code contains some utility functions for -# generating frequency domain plots +# generating frequency domain plots. # @@ -2430,28 +2637,36 @@ def _determine_omega_vector(syslist, omega_in, omega_limits, omega_num, """Determine the frequency range for a frequency-domain plot according to a standard logic. - If omega_in and omega_limits are both None, then omega_out is computed - on omega_num points according to a default logic defined by - _default_frequency_range and tailored for the list of systems syslist, and - omega_range_given is set to False. - If omega_in is None but omega_limits is an array-like of 2 elements, then - omega_out is computed with the function np.logspace on omega_num points - within the interval [min, max] = [omega_limits[0], omega_limits[1]], and - omega_range_given is set to True. - If omega_in is not None, then omega_out is set to omega_in, - and omega_range_given is set to True + If `omega_in` and `omega_limits` are both None, then `omega_out` is + computed on `omega_num` points according to a default logic defined by + `_default_frequency_range` and tailored for the list of systems + syslist, and `omega_range_given` is set to False. + + If `omega_in` is None but `omega_limits` is a tuple of 2 elements, then + `omega_out` is computed with the function `numpy.logspace` on + `omega_num` points within the interval ``[min, max] = [omega_limits[0], + omega_limits[1]]``, and `omega_range_given` is set to True. + + If `omega_in` is a tuple of length 2, it is interpreted as a range and + handled like `omega_limits`. If `omega_in` is a tuple of length 3, it + is interpreted a range plus number of points and handled like + `omega_limits` and `omega_num`. + + If `omega_in` is an array or a list/tuple of length greater than two, + then `omega_out` is set to `omega_in` (as an array), and + `omega_range_given` is set to True Parameters ---------- syslist : list of LTI - List of linear input/output systems (single system is OK) + List of linear input/output systems (single system is OK). omega_in : 1D array_like or None - Frequency range specified by the user + Frequency range specified by the user. omega_limits : 1D array_like or None - Frequency limits specified by the user + Frequency limits specified by the user. omega_num : int - Number of points to be used for the frequency - range (if the frequency range is not user-specified) + Number of points to be used for the frequency range (if the + frequency range is not user-specified). Hz : bool, optional If True, the limits (first and last value) of the frequencies are set to full decades in Hz so it fits plotting with logarithmic @@ -2460,14 +2675,22 @@ def _determine_omega_vector(syslist, omega_in, omega_limits, omega_num, Returns ------- omega_out : 1D array - Frequency range to be used + Frequency range to be used. omega_range_given : bool True if the frequency range was specified by the user, either through omega_in or through omega_limits. False if both omega_in and omega_limits are None. + """ - omega_range_given = True + # Handle the special case of a range of frequencies + if omega_in is not None and omega_limits is not None: + warnings.warn( + "omega and omega_limits both specified; ignoring limits") + elif isinstance(omega_in, (list, tuple)) and len(omega_in) == 2: + omega_limits = omega_in + omega_in = None + omega_range_given = True if omega_in is None: if omega_limits is None: omega_range_given = False @@ -2508,12 +2731,12 @@ def _default_frequency_range(syslist, Hz=None, number_of_samples=None, scale in Hz otherwise in rad/s. Omega is always returned in rad/sec. number_of_samples : int, optional Number of samples to generate. The default value is read from - ``config.defaults['freqplot.number_of_samples']. If None, then the - default from `numpy.logspace` is used. + `config.defaults['freqplot.number_of_samples']`. If None, + then the default from `numpy.logspace` is used. feature_periphery_decades : float, optional Defines how many decades shall be included in the frequency range on both sides of features (poles, zeros). The default value is read from - ``config.defaults['freqplot.feature_periphery_decades']``. + `config.defaults['freqplot.feature_periphery_decades']`. Returns ------- @@ -2543,6 +2766,15 @@ def _default_frequency_range(syslist, Hz=None, number_of_samples=None, syslist = (syslist,) for sys in syslist: + # For FRD systems, just use the response frequencies + if isinstance(sys, FrequencyResponseData): + # Add the min and max frequency, minus periphery decades + # (keeps frequency ranges from artificially expanding) + features = np.concatenate([features, np.array([ + np.min(sys.omega) * 10**feature_periphery_decades, + np.max(sys.omega) / 10**feature_periphery_decades])]) + continue + try: # Add new features to the list if sys.isctime(): @@ -2557,10 +2789,11 @@ def _default_frequency_range(syslist, Hz=None, number_of_samples=None, # TODO: What distance to the Nyquist frequency is appropriate? freq_interesting.append(fn * 0.9) - features_ = np.concatenate((sys.poles(), sys.zeros())) + features_ = np.concatenate( + (np.abs(sys.poles()), np.abs(sys.zeros()))) # Get rid of poles and zeros on the real axis (imag==0) # * origin and real < 0 - # * at 1.: would result in omega=0. (logaritmic plot!) + # * at 1.: would result in omega=0. (logarithmic plot!) toreplace = np.isclose(features_.imag, 0.0) & ( (features_.real <= 0.) | (np.abs(features_.real - 1.0) < 1.e-10)) @@ -2572,8 +2805,9 @@ def _default_frequency_range(syslist, Hz=None, number_of_samples=None, # TODO raise NotImplementedError( "type of system in not implemented now") - features = np.concatenate((features, features_)) + features = np.concatenate([features, features_]) except NotImplementedError: + # Don't add any features for anything we don't understand pass # Make sure there is at least one point in the range @@ -2605,34 +2839,12 @@ 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) # def get_pow1000(num): - """Determine exponent for which significand of a number is within the + """Determine exponent for which significance of a number is within the range [1, 1000). """ # Based on algorithm from http://www.mail-archive.com/ diff --git a/control/grid.py b/control/grid.py index ef9995947..a3e7f36e5 100644 --- a/control/grid.py +++ b/control/grid.py @@ -1,9 +1,13 @@ # 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. -# + +"""Functions 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 matplotlib.pyplot as plt import mpl_toolkits.axisartist.angle_helper as angle_helper @@ -18,8 +22,8 @@ from .iosys import isdtime -class FormatterDMS(object): - '''Transforms angle ticks to damping ratios''' +class FormatterDMS(): + """Transforms angle ticks to damping ratios.""" def __call__(self, direction, factor, values): angles_deg = np.asarray(values)/factor damping_ratios = np.cos((180-angles_deg) * np.pi/180) @@ -28,10 +32,10 @@ def __call__(self, direction, factor, values): class ModifiedExtremeFinderCycle(angle_helper.ExtremeFinderCycle): - '''Changed to allow only left hand-side polar grid + """Changed to allow only left hand-side polar grid. https://matplotlib.org/_modules/mpl_toolkits/axisartist/angle_helper.html#ExtremeFinderCycle.__call__ - ''' + """ def __call__(self, transform_xy, x1, y1, x2, y2): x, y = np.meshgrid( np.linspace(x1, x2, self.nx), np.linspace(y1, y2, self.ny)) @@ -74,7 +78,7 @@ def __call__(self, transform_xy, x1, y1, x2, y2): return lon_min, lon_max, lat_min, lat_max -def sgrid(scaling=None): +def sgrid(subplot=(1, 1, 1), scaling=None): # From matplotlib demos: # https://matplotlib.org/gallery/axisartist/demo_curvelinear_grid.html # https://matplotlib.org/gallery/axisartist/demo_floating_axis.html @@ -101,11 +105,10 @@ def sgrid(scaling=None): # Set up an axes with a specialized grid helper fig = plt.gcf() - ax = SubplotHost(fig, 1, 1, 1, grid_helper=grid_helper) + ax = SubplotHost(fig, *subplot, grid_helper=grid_helper) # make ticklabels of right invisible, and top axis visible. - visible = True - ax.axis[:].major_ticklabels.set_visible(visible) + ax.axis[:].major_ticklabels.set_visible(True) ax.axis[:].major_ticks.set_visible(False) ax.axis[:].invert_ticklabel_direction() ax.axis[:].major_ticklabels.set_color('gray') @@ -141,25 +144,13 @@ def sgrid(scaling=None): return ax, fig -# Utility function used by all grid code -def _final_setup(ax, scaling=None): - ax.set_xlabel('Real') - ax.set_ylabel('Imaginary') - ax.axhline(y=0, color='black', lw=0.25) - ax.axvline(x=0, color='black', lw=0.25) - - # Set up the scaling for the axes - scaling = 'equal' if scaling is None else scaling - plt.axis(scaling) - - # If not grid is given, at least separate stable/unstable regions def nogrid(dt=None, ax=None, scaling=None): fig = plt.gcf() if ax is None: ax = fig.gca() - # Draw the unit circle for discrete time systems + # 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)) @@ -167,7 +158,7 @@ def nogrid(dt=None, ax=None, scaling=None): _final_setup(ax, scaling=scaling) return ax, fig -# Grid for discrete time system (drawn, not rendered by AxisArtist) +# 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""" @@ -185,11 +176,11 @@ def zgrid(zetas=None, wns=None, ax=None, scaling=None): x = linspace(0, sqrt(1-zeta**2), 200) ang = pi*x mag = exp(-pi*factor*x) - # Draw upper part in retangular coordinates + # Draw upper part in rectangular coordinates xret = mag*cos(ang) yret = mag*sin(ang) ax.plot(xret, yret, ':', color='grey', lw=0.75) - # Draw lower part in retangular coordinates + # Draw lower part in rectangular coordinates xret = mag*cos(-ang) yret = mag*sin(-ang) ax.plot(xret, yret, ':', color='grey', lw=0.75) @@ -208,7 +199,7 @@ def zgrid(zetas=None, wns=None, ax=None, scaling=None): x = linspace(-pi/2, pi/2, 200) ang = pi*a*sin(x) mag = exp(-pi*a*cos(x)) - # Draw in retangular coordinates + # Draw in rectangular coordinates xret = mag*cos(ang) yret = mag*sin(ang) ax.plot(xret, yret, ':', color='grey', lw=0.75) @@ -226,3 +217,15 @@ def zgrid(zetas=None, wns=None, ax=None, scaling=None): _final_setup(ax, scaling=scaling) return ax, fig + + +# Utility function used by all grid code +def _final_setup(ax, scaling=None): + ax.set_xlabel('Real') + ax.set_ylabel('Imaginary') + ax.axhline(y=0, color='black', lw=0.25) + ax.axvline(x=0, color='black', lw=0.25) + + # Set up the scaling for the axes + scaling = 'equal' if scaling is None else scaling + plt.axis(scaling) diff --git a/control/iosys.py b/control/iosys.py index fbd5c1dba..29f5bfefb 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -1,19 +1,25 @@ # 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 StateSpace, TransferFunction, NonlinearIOSystem, LTI, -# FrequencyResponseData, InterconnectedSystem and other similar classes -# that allow naming of signals. -import numpy as np -from copy import deepcopy -from warnings import warn +"""I/O system class and helper functions. + +This module implements the `InputOutputSystem` class, which is used as a +parent class for `LTI`, `StateSpace`, `TransferFunction`, +`NonlinearIOSystem`, class:`FrequencyResponseData`, `InterconnectedSystem` +and other similar classes that allow naming of signals. + +""" + import re +from copy import deepcopy + +import numpy as np + from . import config +from .exception import ControlIndexError -__all__ = ['InputOutputSystem', 'issiso', 'timebase', 'common_timebase', - 'isdtime', 'isctime'] +__all__ = ['InputOutputSystem', 'NamedSignal', 'issiso', 'timebase', + 'common_timebase', 'isdtime', 'isctime', 'iosys_repr'] # Define module default parameter values _iosys_defaults = { @@ -28,25 +34,107 @@ 'iosys.indexed_system_name_suffix': '$indexed', 'iosys.converted_system_name_prefix': '', 'iosys.converted_system_name_suffix': '$converted', + 'iosys.repr_format': 'eval', + 'iosys.repr_show_count': True, } -class InputOutputSystem(object): - """A class for representing input/output systems. +# Named signal class +class NamedSignal(np.ndarray): + """Named signal with label-based access. + + This class modifies the `numpy.ndarray` class and allows signals to + be accessed using the signal name in addition to indices and slices. + + """ + def __new__(cls, input_array, signal_labels=None, trace_labels=None): + # See https://numpy.org/doc/stable/user/basics.subclassing.html + obj = np.asarray(input_array).view(cls) # Cast to our class type + obj.signal_labels = signal_labels # Save signal labels + obj.trace_labels = trace_labels # Save trace labels + obj.data_shape = input_array.shape # Save data shape + return obj # Return new object + + def __array_finalize__(self, obj): + # See https://numpy.org/doc/stable/user/basics.subclassing.html + if obj is None: + return + self.signal_labels = getattr(obj, 'signal_labels', None) + self.trace_labels = getattr(obj, 'trace_labels', None) + self.data_shape = getattr(obj, 'data_shape', None) + + def _parse_key(self, key, labels=None, level=0): + if labels is None: + labels = self.signal_labels + try: + if isinstance(key, str): + key = labels.index(item := key) + if level == 0 and len(self.data_shape) < 2: + # This is the only signal => use it + return () + elif isinstance(key, list): + keylist = [] + for item in key: # use for loop to save item for error + keylist.append( + self._parse_key(item, labels=labels, level=level+1)) + if level == 0 and key != keylist and len(self.data_shape) < 2: + raise ControlIndexError + key = keylist + elif isinstance(key, tuple) and len(key) > 0: + keylist = [] + keylist.append( + self._parse_key( + item := key[0], labels=self.signal_labels, + level=level+1)) + if len(key) > 1: + keylist.append( + self._parse_key( + item := key[1], labels=self.trace_labels, + level=level+1)) + if level == 0 and key[:len(keylist)] != tuple(keylist) \ + and len(keylist) > len(self.data_shape) - 1: + raise ControlIndexError + for i in range(2, len(key)): + keylist.append(key[i]) # pass on remaining elements + key = tuple(keylist) + except ValueError: + raise ValueError(f"unknown signal name '{item}'") + except ControlIndexError: + raise ControlIndexError( + "signal name(s) not valid for squeezed data") + + return key + + def __getitem__(self, key): + return super().__getitem__(self._parse_key(key)) + + def __repr__(self): + out = "NamedSignal(\n" + out += repr(np.array(self)) # NamedSignal -> array + if self.signal_labels is not None: + out += f",\nsignal_labels={self.signal_labels}" + if self.trace_labels is not None: + out += f",\ntrace_labels={self.trace_labels}" + out += ")" + return out + + +class InputOutputSystem(): + """Base class for input/output systems. - The InputOutputSystem class allows (possibly nonlinear) input/output + 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. - The timebase for the system, dt, is used to specify whether the system + 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 + * `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 ---------- @@ -54,16 +142,16 @@ class InputOutputSystem(object): 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 + 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 + 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'). + 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'). + 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 @@ -71,7 +159,7 @@ class InputOutputSystem(object): 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. + name 'sys[id]' 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. @@ -79,20 +167,14 @@ class InputOutputSystem(object): Attributes ---------- ninputs, noutputs, nstates : int - Number of input, output and state variables + 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) + Dictionary of signal names for the inputs, outputs, and states and + the index of the corresponding array. + input_labels, output_labels, state_labels : list of str + List of signal names for inputs, outputs, and states. + shape : tuple + 2-tuple of I/O system dimension, (noutputs, ninputs). Other Parameters ---------------- @@ -102,9 +184,11 @@ class InputOutputSystem(object): Set the prefix for output signals. Default = 'y'. state_prefix : string, optional Set the prefix for state signals. Default = 'x'. + repr_format : str + String representation format. See `control.iosys_repr`. """ - # Allow NDarray * IOSystem to give IOSystem._rmul_() priority + # Allow ndarray * IOSystem to give IOSystem._rmul_() priority # https://docs.scipy.org/doc/numpy/reference/arrays.classes.html __array_priority__ = 20 @@ -123,12 +207,14 @@ def __init__( # Process timebase: if not given use default, but allow None as value self.dt = _process_dt_keyword(kwargs) + self._repr_format = kwargs.pop('repr_format', None) + # Make sure there were no other keywords if kwargs: raise TypeError("unrecognized keywords: ", str(kwargs)) # Keep track of the keywords that we recognize - kwargs_list = [ + _kwargs_list = [ 'name', 'inputs', 'outputs', 'states', 'input_prefix', 'output_prefix', 'state_prefix', 'dt'] @@ -177,18 +263,135 @@ def _generic_name_check(self): #: :meta hide-value: nstates = None - def __repr__(self): - return f'<{self.__class__.__name__}:{self.name}:' + \ - f'{list(self.input_labels)}->{list(self.output_labels)}>' + #: System timebase. + #: + #: :meta hide-value: + dt = None + + # + # System representation + # 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" + out = f"<{self.__class__.__name__}>: {self.name}" + out += f"\nInputs ({self.ninputs}): {self.input_labels}" + out += f"\nOutputs ({self.noutputs}): {self.output_labels}" if self.nstates is not None: - str += f"States ({self.nstates}): {self.state_labels}" - return str + out += f"\nStates ({self.nstates}): {self.state_labels}" + out += self._dt_repr(separator="\n", space=" ") + return out + + def __repr__(self): + return iosys_repr(self, format=self.repr_format) + + def _repr_info_(self, html=False): + out = f"<{self.__class__.__name__} {self.name}: " + \ + f"{list(self.input_labels)} -> {list(self.output_labels)}" + out += self._dt_repr(separator=", ", space="") + ">" + + if html: + # Replace symbols that might be interpreted by HTML processing + # TODO: replace -> with right arrow (later) + escape_chars = { + '$': r'\$', + '<': '<', + '>': '>', + } + return "".join([c if c not in escape_chars else + escape_chars[c] for c in out]) + else: + return out + + def _repr_eval_(self): + # Defaults to _repr_info_; override in subclasses + return self._repr_info_() + + def _repr_latex_(self): + # Defaults to using __repr__; override in subclasses + return None + + def _repr_html_(self): + # Defaults to using __repr__; override in subclasses + return None + + def _repr_markdown_(self): + return self._repr_html_() + + @property + def repr_format(self): + """String representation format. + + Format used in creating the representation for the system: + + * 'info' : [outputs]> + * 'eval' : system specific, loadable representation + * 'latex' : HTML/LaTeX representation of the object + + The default representation for an input/output is set to 'eval'. + This value can be changed for an individual system by setting the + `repr_format` parameter when the system is created or by setting + the `repr_format` property after system creation. Set + `config.defaults['iosys.repr_format']` to change for all I/O systems + or use the `repr_format` parameter/attribute for a single system. + + """ + return self._repr_format if self._repr_format is not None \ + else config.defaults['iosys.repr_format'] + + @repr_format.setter + def repr_format(self, value): + self._repr_format = value + + def _label_repr(self, show_count=None): + show_count = config._get_param( + 'iosys', 'repr_show_count', show_count, True) + out, count = "", 0 + + # Include the system name if not generic + if not self._generic_name_check(): + name_spec = f"name='{self.name}'" + count += len(name_spec) + out += name_spec + + # Include the state, output, and input names if not generic + for sig_name, sig_default, sig_labels in zip( + ['states', 'outputs', 'inputs'], + ['x', 'y', 'u'], # TODO: replace with defaults + [self.state_labels, self.output_labels, self.input_labels]): + if sig_name == 'states' and self.nstates is None: + continue + + # Check if the signal labels are generic + if any([re.match(r'^' + sig_default + r'\[\d*\]$', label) is None + for label in sig_labels]): + spec = f"{sig_name}={sig_labels}" + elif show_count: + spec = f"{sig_name}={len(sig_labels)}" + else: + spec = "" + + # Append the specification string to the output, with wrapping + if count == 0: + count = len(spec) # no system name => suppress comma + elif count + len(spec) > 72: + # TODO: check to make sure a single line is enough (minor) + out += ",\n" + count = len(spec) + elif len(spec) > 0: + out += ", " + count += len(spec) + 2 + out += spec + + return out + + def _dt_repr(self, separator="\n", space=""): + if config.defaults['control.default_dt'] != self.dt: + return "{separator}dt{space}={space}{dt}".format( + separator=separator, space=space, + dt='None' if self.dt is None else self.dt) + else: + return "" # Find a list of signals by name, index, or pattern def _find_signals(self, name_list, sigdict): @@ -227,13 +430,8 @@ 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[ - 'iosys.' + prefix_suffix_name + '_system_name_prefix'] - if suffix == "" and prefix_suffix_name is not None: - suffix = config.defaults[ - 'iosys.' + prefix_suffix_name + '_system_name_suffix'] - self.name = prefix + sys.name + suffix + self.name = _extended_system_name( + sys.name, prefix, suffix, prefix_suffix_name) # Name the inputs, outputs, and states self.input_index = sys.input_index.copy() @@ -243,15 +441,30 @@ def _copy_names(self, sys, prefix="", suffix="", prefix_suffix_name=None): self.state_index = sys.state_index.copy() def copy(self, name=None, use_prefix_suffix=True): - """Make a copy of an input/output system + """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']. - Otherwise, a generic system name of the form `sys[]` is used, - where `` is based on an internal counter. + 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. + + Parameters + ---------- + name : str, optional + Name of the newly created system. + + use_prefix_suffix : bool, optional + If True and `name` is None, set the name of the new system + to the name of the original system with prefix + `config.defaults['duplicate_system_name_prefix']` and + suffix `config.defaults['duplicate_system_name_suffix']`. + + Returns + ------- + `InputOutputSystem` """ # Create a copy of the system @@ -276,29 +489,58 @@ def set_inputs(self, inputs, prefix='u'): 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 + 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]`. + 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)""" + """Find the index for an input given its name (None if not found). + + Parameters + ---------- + name : str + Signal name for the desired input. + + Returns + ------- + int + Index of the named input. + + """ 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 list of indices matching input spec (None if not found). + + Parameters + ---------- + name_list : str or list of str + List of signal specifications for the desired inputs. A + signal can be described by its name or by a slice-like + description of the form 'start:end` where 'start' and + 'end' are signal names. If either is omitted, it is taken + as the first or last signal, respectively. + + Returns + ------- + list of int + List of indices for the specified inputs. + + """ 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 + set_inputs, # setter + doc="List of labels for the input signals.") def set_outputs(self, outputs, prefix='y'): """Set the number/names of the system outputs. @@ -306,32 +548,61 @@ def set_outputs(self, outputs, prefix='y'): 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). + 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 'y[i]' (where the prefix 'y' 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]`. + 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)""" + """Find the index for a output given its name (None if not found). + + Parameters + ---------- + name : str + Signal name for the desired output. + + Returns + ------- + int + Index of the named output. + + """ 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 list of indices matching output spec (None if not found). + + Parameters + ---------- + name_list : str or list of str + List of signal specifications for the desired outputs. A + signal can be described by its name or by a slice-like + description of the form 'start:end` where 'start' and + 'end' are signal names. If either is omitted, it is taken + as the first or last signal, respectively. + + Returns + ------- + list of int + List of indices for the specified outputs. + + """ 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 + set_outputs, # setter + doc="List of labels for the output signals.") def set_states(self, states, prefix='x'): """Set the number/names of the system states. @@ -342,29 +613,114 @@ def set_states(self, states, prefix='x'): 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 + of the form 'x[i]' (where the prefix 'x' 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]`. + 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)""" + """Find the index for a state given its name (None if not found). + + Parameters + ---------- + name : str + Signal name for the desired state. + + Returns + ------- + int + Index of the named state. + + """ 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 list of indices matching state spec (None if not found). + + Parameters + ---------- + name_list : str or list of str + List of signal specifications for the desired states. A + signal can be described by its name or by a slice-like + description of the form 'start:end` where 'start' and + 'end' are signal names. If either is omitted, it is taken + as the first or last signal, respectively. + + Returns + ------- + list of int + List of indices for the specified states.. + + """ 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 + set_states, # setter + doc="List of labels for the state signals.") + + @property + def shape(self): + """2-tuple of I/O system dimension, (noutputs, ninputs).""" + return (self.noutputs, self.ninputs) + + # TODO: add dict as a means to selective change names? [GH #1019] + def update_names(self, **kwargs): + """update_names([name, inputs, outputs, states]) + + Update signal and system names for an I/O system. + + Parameters + ---------- + name : str, optional + New system name. + inputs : list of str, int, or None, optional + List of strings that name the individual input signals. If + given as an integer or None, signal names default to the form + 'u[i]'. See `InputOutputSystem` for more information. + outputs : list of str, int, or None, optional + Description of output signals; defaults to 'y[i]'. + states : int, list of str, int, or None, optional + Description of system states; defaults to 'x[i]'. + 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'. + + """ + self.name = kwargs.pop('name', self.name) + if 'inputs' in kwargs: + ninputs, input_index = _process_signal_list( + kwargs.pop('inputs'), prefix=kwargs.pop('input_prefix', 'u')) + if self.ninputs and self.ninputs != ninputs: + raise ValueError("number of inputs does not match system size") + self.input_index = input_index + if 'outputs' in kwargs: + noutputs, output_index = _process_signal_list( + kwargs.pop('outputs'), prefix=kwargs.pop('output_prefix', 'y')) + if self.noutputs and self.noutputs != noutputs: + raise ValueError("number of outputs does not match system size") + self.output_index = output_index + if 'states' in kwargs: + nstates, state_index = _process_signal_list( + kwargs.pop('states'), prefix=kwargs.pop('state_prefix', 'x')) + if self.nstates != nstates: + raise ValueError("number of states does not match system size") + self.state_index = state_index + + # Make sure we processed all of the arguments + if kwargs: + raise TypeError("unrecognized keywords: ", str(kwargs)) + def isctime(self, strict=False): """ @@ -372,11 +728,10 @@ def isctime(self, strict=False): Parameters ---------- - sys : Named I/O system - System to be checked - strict: bool, optional + 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: @@ -385,11 +740,11 @@ def isctime(self, strict=False): def isdtime(self, 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 ---------- - strict: bool, optional + strict : bool, optional If strict is True, make sure that timebase is not None. Default is False. """ @@ -405,10 +760,6 @@ 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): @@ -418,9 +769,9 @@ def issiso(sys, strict=False): 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 + 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 @@ -437,7 +788,21 @@ def timebase(sys, strict=True): 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. + set to True, `dt` = True will be returned as 1. + + Parameters + ---------- + sys : `InputOutputSystem` or float + System whose timebase is to be determined. + strict : bool, optional + Whether to implement strict checking. If set to True (default), + a float will always be returned (`dt` = True will be returned as 1). + + Returns + ------- + dt : timebase + Timebase for the system (0 = continuous time, None = unspecified). + """ # System needs to be either a constant or an I/O or LTI system if isinstance(sys, (int, float, complex, np.number)): @@ -445,39 +810,41 @@ def timebase(sys, strict=True): elif not isinstance(sys, InputOutputSystem): raise ValueError("Timebase not defined") - # Return the sample time, with converstion to float if strict is false - if (sys.dt == None): + # Return the sample time, with conversion to float if strict is false + if sys.dt == None: return None - elif (strict): + elif strict: return float(sys.dt) return sys.dt def common_timebase(dt1, dt2): """ - Find the common timebase when interconnecting systems + Find the common timebase when interconnecting systems. Parameters ---------- - dt1, dt2: number or system with a 'dt' attribute (e.g. TransferFunction - or StateSpace system) + dt1, dt2 : `InputOutputSystem` or float + Number or system with a 'dt' attribute (e.g. `TransferFunction` + or `StateSpace` system). Returns ------- - dt: number + 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 + 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 + # otherwise both dt's must be equal if hasattr(dt1, 'dt'): dt1 = dt1.dt if hasattr(dt2, 'dt'): @@ -502,10 +869,10 @@ def common_timebase(dt1, dt2): else: raise ValueError("Systems have incompatible timebases") -# Check to see if a system is a discrete time system +# Check to see if a system is a discrete-time system def isdtime(sys=None, strict=False, dt=None): """ - Check to see if a system is a discrete time system. + Check to see if a system is a discrete-time system. Parameters ---------- @@ -513,7 +880,7 @@ def isdtime(sys=None, strict=False, dt=None): 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. """ @@ -534,7 +901,7 @@ def isdtime(sys=None, strict=False, dt=None): return sys.isdtime(strict) -# Check to see if a system is a continuous time system +# Check to see if a system is a continuous-time system def isctime(sys=None, dt=None, strict=False): """ Check to see if a system is a continuous-time system. @@ -545,7 +912,7 @@ def isctime(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. """ @@ -566,15 +933,56 @@ def isctime(sys=None, dt=None, strict=False): return sys.isctime(strict) +def iosys_repr(sys, format=None): + """Return representation of an I/O system. + + Parameters + ---------- + sys : `InputOutputSystem` + System for which the representation is generated. + format : str + Format to use in creating the representation: + + * 'info' : [outputs]> + * 'eval' : system specific, loadable representation + * 'latex' : HTML/LaTeX representation of the object + + Returns + ------- + str + String representing the input/output system. + + Notes + ----- + By default, the representation for an input/output is set to 'eval'. + Set `config.defaults['iosys.repr_format']` to change for all I/O systems + or use the `repr_format` parameter for a single system. + + Jupyter will automatically use the 'latex' representation for I/O + systems, when available. + + """ + format = config.defaults['iosys.repr_format'] if format is None else format + match format: + case 'info': + return sys._repr_info_() + case 'eval': + return sys._repr_eval_() + case 'latex': + return sys._repr_html_() + case _: + raise ValueError(f"format '{format}' unknown") + + # Utility function to parse iosys keywords def _process_iosys_keywords( keywords={}, defaults={}, static=False, end=False): """Process iosys specification. 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, + I/O system. It first looks in the `keywords` dictionary to see if a + value is specified. If not, the `defaults` dictionary is used. The + `defaults` 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 @@ -823,7 +1231,6 @@ def _process_labels(labels, name, default): # 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.""" @@ -905,3 +1312,42 @@ 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 processing subsystem indices +# +# This function processes an index specification (int, list, or slice) and +# returns a index specification that can be used to create a subsystem +# +def _process_subsys_index(idx, sys_labels, slice_to_list=False): + if not isinstance(idx, (slice, list, int)): + raise TypeError("system indices must be integers, slices, or lists") + + # Convert singleton lists to integers for proper slicing (below) + if isinstance(idx, (list, tuple)) and len(idx) == 1: + idx = idx[0] + + # Convert int to slice so that numpy doesn't drop dimension + if isinstance(idx, int): + idx = slice(idx, idx+1, 1) + + # Get label names (taking care of possibility that we were passed a list) + labels = [sys_labels[i] for i in idx] if isinstance(idx, list) \ + else sys_labels[idx] + + if slice_to_list and isinstance(idx, slice): + idx = range(len(sys_labels))[idx] + + return idx, labels + + +# Create an extended system name +def _extended_system_name(name, prefix="", suffix="", prefix_suffix_name=None): + if prefix == "" and prefix_suffix_name is not None: + prefix = config.defaults[ + 'iosys.' + prefix_suffix_name + '_system_name_prefix'] + if suffix == "" and prefix_suffix_name is not None: + suffix = config.defaults[ + 'iosys.' + prefix_suffix_name + '_system_name_suffix'] + return prefix + name + suffix diff --git a/control/lti.py b/control/lti.py index cccb44a63..e4c9b2f4e 100644 --- a/control/lti.py +++ b/control/lti.py @@ -1,14 +1,18 @@ -"""lti.py +# lti.py - LTI class and functions for linear systems + +"""LTI class and functions for linear systems. + +This module contains the LTI parent class to the child classes +StateSpace and TransferFunction. -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. """ -import numpy as np import math - -from numpy import real, angle, abs from warnings import warn + +import numpy as np +from numpy import abs, real + from . import config from .iosys import InputOutputSystem @@ -17,36 +21,79 @@ class LTI(InputOutputSystem): - """LTI is a parent class to linear time-invariant (LTI) system objects. + """Parent class for linear time-invariant system objects. - LTI is the parent to the StateSpace and TransferFunction child classes. It - contains the number of inputs and outputs, and the timebase (dt) for the - system. This function is not generally called directly by the user. + LTI is the parent to the `FrequencyResponseData`, `StateSpace`, and + `TransferFunction` child classes. It contains the number of inputs and + outputs, and the timebase (dt) for the system. This class is not + generally accessed directly by the user. - 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. - - Note: dt processing has been moved to the InputOutputSystem class. + See Also + -------- + InputOutputSystem, StateSpace, TransferFunction, FrequencyResponseData """ def __init__(self, inputs=1, outputs=1, states=None, name=None, **kwargs): - """Assign the LTI object's numbers of inputs and ouputs.""" + """Assign the LTI object's numbers of inputs and outputs.""" super().__init__( name=name, inputs=inputs, outputs=outputs, states=states, **kwargs) + def __call__(self, x, squeeze=None, warn_infinite=True): + """Evaluate system transfer function at point in complex plane. + + Returns the value of the system's transfer function at a point `x` + in the complex plane, where `x` is `s` for continuous-time systems + and `z` for discrete-time systems. + + By default, a (complex) scalar will be returned for SISO systems + and a p x m array will be return for MIMO systems with m inputs and + p outputs. This can be changed using the `squeeze` keyword. + + To evaluate at a frequency `omega` in radians per second, + enter ``x = omega * 1j`` for continuous-time systems, + ``x = exp(1j * omega * dt)`` for discrete-time systems, or + use the `~LTI.frequency_response` method. + + Parameters + ---------- + x : complex or complex 1D array_like + Complex value(s) at which transfer function will be evaluated. + squeeze : bool, optional + Squeeze output, as described below. Default value can be set + using `config.defaults['control.squeeze_frequency_response']`. + warn_infinite : bool, optional + If set to False, turn off divide by zero warning. + + Returns + ------- + fresp : complex ndarray + The value of the system transfer function at `x`. If the system + is SISO and `squeeze` is not True, the shape of the array matches + the shape of `x`. If the system is not SISO or `squeeze` is + False, the first two dimensions of the array are indices for the + output and input and the remaining dimensions match `x`. If + `squeeze` is True then single-dimensional axes are removed. + + Notes + ----- + See `FrequencyResponseData.__call__`, `StateSpace.__call__`, + `TransferFunction.__call__` for class-specific details. + + """ + raise NotImplementedError("not implemented in subclass") + def damp(self): - '''Natural frequency, damping ratio of system poles + """Natural frequency, damping ratio of system poles. Returns ------- wn : array - Natural frequency for each system pole + Natural frequency for each system pole. zeta : array - Damping ratio for each system pole + Damping ratio for each system pole. poles : array - System pole locations - ''' + System pole locations. + """ poles = self.poles() if self.isdtime(strict=True): @@ -57,56 +104,33 @@ def damp(self): zeta = -real(splane_poles)/wn return wn, zeta, poles - def frequency_response(self, omega=None, squeeze=None): - """Evaluate the linear time-invariant system at an array of angular - frequencies. - - For continuous time systems, computes the frequency response as - - G(j*omega) = mag * exp(j*phase) + def feedback(self, other=1, sign=-1): + """Feedback interconnection between two input/output systems. - For discrete time systems, the response is evaluated around the - unit circle such that + Parameters + ---------- + other : `InputOutputSystem` + System in the feedback path. - G(exp(j*omega*dt)) = mag * exp(j*phase). + sign : float, optional + Gain to use in feedback path. Defaults to -1. - In general the system may be multiple input, multiple output (MIMO), - where `m = self.ninputs` number of inputs and `p = self.noutputs` - number of outputs. + """ + raise NotImplementedError("feedback not implemented in subclass") - Parameters - ---------- - omega : float or 1D array_like - A list, tuple, array, or scalar value of frequencies in - radians/sec at which the system will be evaluated. - 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']. + def frequency_response(self, omega=None, squeeze=None): + """Evaluate LTI system response at an array of frequencies. - Returns - ------- - 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. - 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, if omega is array_like, frequency. If - ``squeeze`` is True then single-dimensional axes are removed. + See `frequency_response` for more detailed information. """ from .frdata import FrequencyResponseData + if omega is None: + # Use default frequency range + from .freqplot import _default_frequency_range + omega = _default_frequency_range(self) + omega = np.sort(np.array(omega, ndmin=1)) if self.isdtime(strict=True): # Convert the frequency to discrete time @@ -120,12 +144,12 @@ def frequency_response(self, omega=None, squeeze=None): response = self(s) return FrequencyResponseData( response, omega, return_magphase=True, squeeze=squeeze, - dt=self.dt, sysname=self.name, plot_type='bode') + dt=self.dt, sysname=self.name, inputs=self.input_labels, + outputs=self.output_labels, plot_type='bode') def dcgain(self): - """Return the zero-frequency gain""" - raise NotImplementedError("dcgain not implemented for %s objects" % - str(self.__class__)) + """Return the zero-frequency (DC) gain.""" + raise NotImplementedError("dcgain not defined for subclass") def _dcgain(self, warn_infinite): zeroresp = self(0 if self.isctime() else 1, @@ -136,14 +160,14 @@ 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 bandwidth of an LTI system for a given dB drop. Evaluate the first frequency that the response magnitude is lower than - DC gain by dbdrop dB. + DC gain by `dbdrop` dB. Parameters ---------- - dpdrop : float, optional + dbdrop : float, optional A strictly negative scalar in dB (default = -3) defines the amount of gain drop for deciding bandwidth. @@ -151,15 +175,16 @@ def bandwidth(self, dbdrop=-3): ------- 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 + `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 + If `sys` is not an SISO LTI instance. ValueError - if 'dbdrop' is not a negative scalar + If `dbdrop` is not a negative scalar. + """ # check if system is SISO and dbdrop is a negative scalar if not self.issiso(): @@ -198,10 +223,110 @@ def bandwidth(self, dbdrop=-3): raise Exception(result.message) def ispassive(self): - # importing here prevents circular dependancy + r"""Indicate if a linear time invariant (LTI) system is passive. + + See `ispassive` for details. + + """ + # importing here prevents circular dependency from control.passivity import ispassive return ispassive(self) + # + # Convenience aliases for conversion functions + # + # Allow conversion between state space and transfer function types + # as methods. These are just pass throughs to factory functions. + # + # Note: in order for docstrings to created, these have to set these up + # as independent methods, not just assigned to ss() and tf(). + # + # Imports are done within the function to avoid circular imports. + # + def to_ss(self, *args, **kwargs): + """Convert to state space representation. + + See `ss` for details. + """ + from .statesp import ss + return ss(self, *args, **kwargs) + + def to_tf(self, *args, **kwargs): + """Convert to transfer function representation. + + See `tf` for details. + """ + from .xferfcn import tf + return tf(self, *args, **kwargs) + + # + # Convenience aliases for plotting and response functions + # + # Allow standard plots to be generated directly from the system object + # in addition to standalone plotting and response functions. + # + # Note: in order for docstrings to created, these have to set these up as + # independent methods, not just assigned to plotting/response functions. + # + # Imports are done within the function to avoid circular imports. + # + + def bode_plot(self, *args, **kwargs): + """Generate a Bode plot for the system. + + See `bode_plot` for more information. + """ + from .freqplot import bode_plot + return bode_plot(self, *args, **kwargs) + + def nichols_plot(self, *args, **kwargs): + """Generate a Nichols plot for the system. + + See `nichols_plot` for more information. + """ + from .nichols import nichols_plot + return nichols_plot(self, *args, **kwargs) + + def nyquist_plot(self, *args, **kwargs): + """Generate a Nyquist plot for the system. + + See `nyquist_plot` for more information. + """ + from .freqplot import nyquist_plot + return nyquist_plot(self, *args, **kwargs) + + def forced_response(self, *args, **kwargs): + """Generate the forced response for the system. + + See `forced_response` for more information. + """ + from .timeresp import forced_response + return forced_response(self, *args, **kwargs) + + def impulse_response(self, *args, **kwargs): + """Generate the impulse response for the system. + + See `impulse_response` for more information. + """ + from .timeresp import impulse_response + return impulse_response(self, *args, **kwargs) + + def initial_response(self, *args, **kwargs): + """Generate the initial response for the system. + + See `initial_response` for more information. + """ + from .timeresp import initial_response + return initial_response(self, *args, **kwargs) + + def step_response(self, *args, **kwargs): + """Generate the step response for the system. + + See `step_response` for more information. + """ + from .timeresp import step_response + return step_response(self, *args, **kwargs) + def poles(sys): """ @@ -209,19 +334,17 @@ def poles(sys): Parameters ---------- - sys: StateSpace or TransferFunction - Linear system + sys : `StateSpace` or `TransferFunction` + Linear system. Returns ------- - poles: ndarray + poles : ndarray Array that contains the system's poles. See Also -------- - zeros - TransferFunction.poles - StateSpace.poles + zeros, StateSpace.poles, TransferFunction.poles """ @@ -234,19 +357,17 @@ def zeros(sys): Parameters ---------- - sys: StateSpace or TransferFunction - Linear system + sys : `StateSpace` or `TransferFunction` + Linear system. Returns ------- - zeros: ndarray + zeros : ndarray Array that contains the system's zeros. See Also -------- - poles - StateSpace.zeros - TransferFunction.zeros + poles, StateSpace.zeros, TransferFunction.zeros """ @@ -254,44 +375,44 @@ def zeros(sys): def damp(sys, doprint=True): - """ - Compute natural frequencies, damping ratios, and poles of a system. + """Compute system's natural frequencies, damping ratios, and poles. Parameters ---------- - sys : LTI (StateSpace or TransferFunction) - A linear system object + sys : `StateSpace` or `TransferFunction` + A linear system object. doprint : bool (optional) - if True, print table with values + If True, print table with values. Returns ------- wn : array - Natural frequency for each system pole + Natural frequency for each system pole. zeta : array - Damping ratio for each system pole + Damping ratio for each system pole. poles : array - System pole locations + System pole locations. See Also -------- - pole + poles Notes ----- - If the system is continuous, - wn = abs(poles) - zeta = -real(poles)/poles + If the system is continuous + + | ``wn = abs(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 = log(poles)/dt + | ``s = log(poles)/dt`` and - wn = abs(s) - zeta = -real(s)/wn. + | ``wn = abs(s)`` + | ``zeta = -real(s)/wn`` Examples -------- @@ -314,12 +435,13 @@ def damp(sys, doprint=True): return wn, zeta, poles +# TODO: deprecate this function def evalfr(sys, x, squeeze=None): - """Evaluate the transfer function of an LTI system for complex frequency x. + """Evaluate transfer function of LTI system at complex frequency. - Returns the complex frequency response `sys(x)` where `x` is `s` for + Returns the complex frequency response ``sys(x)`` where `x` is `s` for continuous-time systems and `z` for discrete-time systems, with - `m = sys.ninputs` number of inputs and `p = sys.noutputs` number of + ``m = sys.ninputs`` number of inputs and ``p = sys.noutputs`` number of outputs. To evaluate at a frequency omega in radians per second, enter @@ -329,16 +451,17 @@ def evalfr(sys, x, squeeze=None): Parameters ---------- - sys: StateSpace or TransferFunction - Linear system + sys : `StateSpace` or `TransferFunction` + Linear system. x : complex scalar or 1D array_like - Complex frequency(s) + Complex frequency(s). squeeze : bool, optional (default=True) - 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']. + 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']`. Returns ------- @@ -347,26 +470,23 @@ def evalfr(sys, x, squeeze=None): squeeze is not True, the shape of the array matches the shape of omega. If the system is not SISO or squeeze is False, the first two dimensions of the array are indices for the output and input and the - remaining dimensions match omega. If ``squeeze`` is True then + remaining dimensions match omega. If `squeeze` is True then single-dimensional axes are removed. See Also -------- - freqresp - bode + LTI.__call__, frequency_response, bode_plot Notes ----- - This function is a wrapper for :meth:`StateSpace.__call__` and - :meth:`TransferFunction.__call__`. + This function is a wrapper for `StateSpace.__call__` and + `TransferFunction.__call__`. Examples -------- >>> 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 - """ return sys(x, squeeze=squeeze) @@ -374,48 +494,61 @@ def evalfr(sys, x, squeeze=None): def frequency_response( sysdata, omega=None, omega_limits=None, omega_num=None, Hz=None, squeeze=None): - """Frequency response of an LTI system at multiple angular frequencies. + """Frequency response of an LTI system. - In general the system may be multiple input, multiple output (MIMO), where - `m = sys.ninputs` number of inputs and `p = sys.noutputs` number of - outputs. + For continuous-time systems with transfer function G, computes the + frequency response as + + G(j*omega) = mag * exp(j*phase) + + For discrete-time systems, the response is evaluated around the unit + circle such that + + G(exp(j*omega*dt)) = mag * exp(j*phase). + + In general the system may be multiple input, multiple output (MIMO), + where ``m = self.ninputs`` number of inputs and ``p = self.noutputs`` + number of outputs. Parameters ---------- 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 - 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 given systems is computed. + A list, tuple, array, or scalar value of frequencies in radians/sec + at which the system will be evaluated. Can be a single frequency + or array of frequencies, which will be sorted before evaluation. + If None (default), a common 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. + Limits to the range of frequencies, in rad/sec. Specifying + `omega` as a list of two elements is equivalent to providing + `omega_limits`. Ignored if omega is provided. omega_num : int, optional - Number of frequency samples to plot. Defaults to - config.defaults['freqplot.number_of_samples']. + Number of frequency samples at which to compute the response. + Defaults to `config.defaults['freqplot.number_of_samples']`. Ignored + if omega is provided. Returns ------- - 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. If the - 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. + response : `FrequencyResponseData` + Frequency response data object representing the frequency + response. When accessed as a tuple, returns ``(magnitude, + phase, omega)``. If `sysdata` is a list of systems, returns a + `FrequencyResponseList` object. Results can be plotted using + the `~FrequencyResponseData.plot` method. See + `FrequencyResponseData` for more detailed information. + response.magnitude : array + Magnitude of the frequency response (absolute value, not dB or + log10). If the system is SISO and squeeze is not True, the + array is 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. + response.phase : array + Wrapped phase, in radians, with same shape as `magnitude`. + response.omega : array + Sorted list of frequencies at which response was evaluated. Other Parameters ---------------- @@ -424,54 +557,47 @@ def frequency_response( 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']. + 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_plot + LTI.__call__, bode_plot Notes ----- - 1. This function is a wrapper for :meth:`StateSpace.frequency_response` - and :meth:`TransferFunction.frequency_response`. + This function is a wrapper for `StateSpace.frequency_response` and + `TransferFunction.frequency_response`. You can also use the + lower-level methods ``sys(s)`` or ``sys(z)`` to generate the frequency + response for a single system. - 2. You can also use the lower-level methods ``sys(s)`` or ``sys(z)`` to - generate the frequency response for a single system. + 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. - 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. + The frequency response data can be plotted by calling the `bode_plot` + function or using the `plot` method of the `FrequencyResponseData` + class. Examples -------- >>> 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 - - #>>> sys = rss(3, 2, 2) - #>>> mag, phase, omega = freqresp(sys, [0.1, 1., 10.]) - #>>> mag[0, 1, :] - #array([ 55.43747231, 42.47766549, 1.97225895]) - #>>> phase[1, 0, :] - #array([-0.12611087, -1.14294316, 2.5764547 ]) - #>>> # This is the magnitude of the frequency response from the 2nd - #>>> # input to the 1st output, and the phase (in radians) of the - #>>> # frequency response from the 1st input to the 2nd output, for - #>>> # s = 0.1i, i, 10i. + >>> mag, phase, omega = ct.frequency_response(G, [0.1, 1., 10.]) + + >>> sys = ct.rss(3, 2, 2) + >>> mag, phase, omega = ct.frequency_response(sys, [0.1, 1., 10.]) + >>> mag[0, 1, :] # Magnitude of second input to first output + array([..., ..., ...]) + >>> phase[1, 0, :] # Phase of first input to second output + array([..., ..., ...]) """ + from .frdata import FrequencyResponseData from .freqplot import _determine_omega_vector # Process keyword arguments @@ -486,13 +612,18 @@ def frequency_response( 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 the Nyquist frequency - omega_sys = omega_sys[omega_sys < nyquistfrq] + if isinstance(sys_, FrequencyResponseData) and sys_._ifunc is None \ + and not omega_range_given: + omega_sys = sys_.omega # use system properties + else: + omega_sys = omega_syslist.copy() # use common omega vector + + # Add the Nyquist frequency for discrete-time systems + if sys_.isdtime(strict=True): + nyquistfrq = math.pi / sys_.dt + if not omega_range_given: + # 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)) @@ -505,14 +636,25 @@ def frequency_response( # Alternative name (legacy) def freqresp(sys, omega): - """Legacy version of frequency_response.""" - warn("freqresp is deprecated; use frequency_response", DeprecationWarning) + """Legacy version of frequency_response. + + .. deprecated:: 0.9.0 + This function will be removed in a future version of python-control. + Use `frequency_response` instead. + + """ + warn("freqresp() is deprecated; use frequency_response()", FutureWarning) return frequency_response(sys, omega) def dcgain(sys): """Return the zero-frequency (or DC) gain of the given system. + Parameters + ---------- + sys : LTI + System for which the zero-frequency gain is computed. + Returns ------- gain : ndarray @@ -524,49 +666,49 @@ def dcgain(sys): -------- >>> G = ct.tf([1], [1, 2]) >>> ct.dcgain(G) # doctest: +SKIP - 0.5 + np.float(0.5) """ return sys.dcgain() def bandwidth(sys, dbdrop=-3): - """Return the first freqency where the gain drop by dbdrop of the system. + """Find first frequency where gain drops by 3 dB. Parameters ---------- - sys: StateSpace or TransferFunction - Linear system + sys : `StateSpace` or `TransferFunction` + Linear system for which the bandwidth should be computed. dbdrop : float, optional By how much the gain drop in dB (default = -3) that defines the - bandwidth. Should be a negative scalar + bandwidth. Should be a negative scalar. 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 where the gain drops below `dbdrop` of the zero + frequency (DC) gain of the system, or nan if the system has infinite + zero frequency gain, inf if the gain does not drop for any frequency. Raises ------ TypeError - if 'sys' is not an SISO LTI instance + If `sys` is not an SISO LTI instance. ValueError - if 'dbdrop' is not a negative scalar + If `dbdrop` is not a negative scalar. - Example - ------- + Examples + -------- >>> G = ct.tf([1], [1, 1]) >>> ct.bandwidth(G) - 0.9976 + np.float64(0.9976283451102316) >>> 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 + np.float64(0.10184838823897456) """ if not isinstance(sys, LTI): diff --git a/control/margins.py b/control/margins.py index 301baaf57..d7c7992be 100644 --- a/control/margins.py +++ b/control/margins.py @@ -1,62 +1,19 @@ -"""margins.py - -Functions for computing stability margins and related functions. - -Routines in this module: - -margins.stability_margins -margins.phase_crossover_frequencies -margins.margin -""" - -"""Copyright (c) 2011 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. - -Author: Richard M. Murray -Date: 14 July 2011 +# margins.py - functions for computing stability margins +# +# Initial author: Richard M. Murray +# Creation date: 14 July 2011 -$Id$ -""" +"""Functions for computing stability margins and related functions.""" import math from warnings import warn + import numpy as np import scipy as sp -from . import xferfcn -from .lti import evalfr -from .iosys import issiso -from . import frdata -from . import freqplot + +from . import frdata, freqplot, xferfcn from .exception import ControlMIMONotImplemented +from .iosys import issiso __all__ = ['stability_margins', 'phase_crossover_frequencies', 'margin'] @@ -81,11 +38,16 @@ def _poly_iw_sqr(pol_iw): def _poly_iw_real_crossing(num_iw, den_iw, epsw): # Return w where imag(H(iw)) == 0 + + # Compute the imaginary part of H = (num.r + j num.i)/(den.r + j den.i) test_w = np.polysub(np.polymul(num_iw.imag, den_iw.real), np.polymul(num_iw.real, den_iw.imag)) + + # Find the real-valued w > 0 where imag(H(iw)) = 0 w = np.roots(test_w) w = np.real(w[np.isreal(w)]) w = w[w >= epsw] + return w @@ -248,18 +210,16 @@ def _likely_numerical_inaccuracy(sys): # systems +# TODO: consider handling sysdata similar to margin (via *sysdata?) def stability_margins(sysdata, returnall=False, epsw=0.0, method='best'): - """Calculate stability margins and associated crossover frequencies. + """Stability margins and associated crossover frequencies. Parameters ---------- - sysdata : LTI system or (mag, phase, omega) sequence - sys : LTI system - Linear SISO system representing the loop transfer function - mag, phase, omega : sequence of array_like - Arrays of magnitudes (absolute values, not dB), phases (degrees), - and corresponding frequencies. Crossover frequencies returned are - in the same units as those in `omega` (e.g., rad/sec or Hz). + sysdata : LTI system or 3-tuple of array_like + Linear SISO system representing the loop transfer function. + Alternatively, a three tuple of the form (mag, phase, omega) + providing the frequency response can be passed. returnall : bool, optional If true, return all margins found. If False (default), return only the minimum stability margins. For frequency data or FRD systems, only @@ -269,22 +229,23 @@ def stability_margins(sysdata, returnall=False, epsw=0.0, method='best'): and not returned as margin. method : string, optional Method to use (default is 'best'): - 'poly': use polynomial method if passed a :class:`LTI` system. - 'frd': calculate crossover frequencies using numerical interpolation - of a :class:`FrequencyResponseData` representation of the system if - passed a :class:`LTI` system. - 'best': use the 'poly' method if possible, reverting to 'frd' if it is - detected that numerical inaccuracy is likey to arise in the 'poly' - method for for discrete-time systems. + + * 'poly': use polynomial method if passed a `LTI` system. + * 'frd': calculate crossover frequencies using numerical + interpolation of a `FrequencyResponseData` representation + of the system if passed a `LTI` system. + * 'best': use the 'poly' method if possible, reverting to 'frd' if + it is detected that numerical inaccuracy is likely to arise in the + 'poly' method for for discrete-time systems. Returns ------- gm : float or array_like - Gain margin + Gain margin. pm : float or array_like - Phase margin + Phase margin. sm : float or array_like - Stability margin, the minimum distance from the Nyquist plot to -1 + Stability margin, the minimum distance from the Nyquist plot to -1. wpc : float or array_like Phase crossover frequency (where phase crosses -180 degrees), which is associated with the gain margin. @@ -292,14 +253,16 @@ def stability_margins(sysdata, returnall=False, epsw=0.0, method='best'): Gain crossover frequency (where gain crosses 1), which is associated with the phase margin. wms : float or array_like - Stability margin frequency (where Nyquist plot is closest to -1) - - Note that the gain margin is determined by the gain of the loop - transfer function at the phase crossover frequency(s), the phase - margin is determined by the phase of the loop transfer function at - the gain crossover frequency(s), and the stability margin is - determined by the frequency of maximum sensitivity (given by the - magnitude of 1/(1+L)). + Stability margin frequency (where Nyquist plot is closest to -1). + + Notes + ----- + The gain margin is determined by the gain of the loop transfer function + at the phase crossover frequency(s), the phase margin is determined by + the phase of the loop transfer function at the gain crossover + frequency(s), and the stability margin is determined by the frequency + of maximum sensitivity (given by the magnitude of 1/(1+L)). + """ # TODO: FRD method for cont-time systems doesn't work try: @@ -424,9 +387,8 @@ def _dstab(w): # find all stab margins? widx, = np.where(np.diff(np.sign(np.diff(_dstab(sys.omega)))) > 0) wstab = np.array( - [sp.optimize.minimize_scalar(_dstab, - bracket=(sys.omega[i], sys.omega[i+1]) - ).x + [sp.optimize.minimize_scalar( + _dstab, bracket=(sys.omega[i], sys.omega[i+1])).x for i in widx]) wstab = wstab[(wstab >= sys.omega[0]) * (wstab <= sys.omega[-1])] ws_resp = sys(1j * wstab) @@ -459,20 +421,20 @@ def _dstab(w): # Contributed by Steffen Waldherr def phase_crossover_frequencies(sys): - """Compute frequencies and gains at intersections with real axis - in Nyquist plot. + """Compute Nyquist plot real-axis crossover frequencies and gains. Parameters ---------- - sys : SISO LTI system + sys : LTI + SISO LTI system. Returns ------- omega : ndarray 1d array of (non-negative) frequencies where Nyquist plot - intersects the real axis - gain : ndarray - 1d array of corresponding gains + intersects the real axis. + gains : ndarray + 1d array of corresponding gains. Examples -------- @@ -493,35 +455,39 @@ def phase_crossover_frequencies(sys): omega = _poly_iw_real_crossing(num_iw, den_iw, 0.) # using real() to avoid rounding errors and results like 1+0j - gain = np.real(evalfr(sys, 1J * omega)) + gains = np.real(sys(omega * 1j, warn_infinite=False)) else: zargs = _poly_z_invz(sys) z, omega = _poly_z_real_crossing(*zargs, epsw=0.) - gain = np.real(evalfr(sys, z)) + gains = np.real(sys(z, warn_infinite=False)) - return omega, gain + return omega, gains def margin(*args): - """margin(sysdata) + """ + margin(sys) \ + margin(mag, phase, omega) + + Gain and phase margins and associated crossover frequencies. - Calculate gain and phase margins and associated crossover frequencies. + Can be called as ``margin(sys)`` where `sys` is a SISO LTI system or + ``margin(mag, phase, omega)``. Parameters ---------- - sysdata : LTI system or (mag, phase, omega) sequence - sys : StateSpace or TransferFunction - Linear SISO system representing the loop transfer function - mag, phase, omega : sequence of array_like - Input magnitude, phase (in deg.), and frequencies (rad/sec) from - bode frequency response data + sys : `StateSpace` or `TransferFunction` + Linear SISO system representing the loop transfer function. + mag, phase, omega : sequence of array_like + Input magnitude, phase (in deg.), and frequencies (rad/sec) from + bode frequency response data. Returns ------- gm : float - Gain margin + Gain margin. pm : float - Phase margin (in degrees) + Phase margin (in degrees). wcg : float or array_like Crossover frequency associated with gain margin (phase crossover frequency), where phase crosses below -180 degrees. diff --git a/control/mateqn.py b/control/mateqn.py index 05b47ffae..9d1349b0c 100644 --- a/control/mateqn.py +++ b/control/mateqn.py @@ -1,52 +1,26 @@ -# mateqn.py - Matrix equation solvers (Lyapunov, Riccati) +# mateqn.py - matrix equation solvers (Lyapunov, Riccati) # -# Implementation of the functions lyap, dlyap, care and dare -# for solution of Lyapunov and Riccati equations. -# -# Original author: Bjorn Olofsson - -# Copyright (c) 2011, 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 project author 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. +# Initial author: Bjorn Olofsson +# Creation date: 2011 + +"""Matrix equation solvers (Lyapunov, Riccati). + +This module contains implementation of the functions lyap, dlyap, care +and dare for solution of Lyapunov and Riccati equations. + +""" import warnings -import numpy as np -from numpy import copy, eye, dot, finfo, inexact, atleast_2d +import numpy as np import scipy as sp +from numpy import eye, finfo, inexact from scipy.linalg import eigvals, solve -from .exception import ControlSlycot, ControlArgument, ControlDimension, \ +from .exception import ControlArgument, ControlDimension, ControlSlycot, \ slycot_check -from .statesp import _ssmatrix -# Make sure we have access to the right slycot routines +# Make sure we have access to the right Slycot routines try: from slycot.exceptions import SlycotResultWarning except ImportError: @@ -114,11 +88,11 @@ def lyap(A, Q, C=None, E=None, method=None): Parameters ---------- A, Q : 2D array_like - Input matrices for the Lyapunov or Sylvestor equation + Input matrices for the Lyapunov or Sylvestor equation. C : 2D array_like, optional - If present, solve the Sylvester equation + If present, solve the Sylvester equation. E : 2D array_like, optional - If present, solve the generalized Lyapunov equation + If present, solve the generalized Lyapunov equation. 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 @@ -127,7 +101,7 @@ def lyap(A, Q, C=None, E=None, method=None): Returns ------- X : 2D array - Solution to the Lyapunov or Sylvester equation + Solution to the Lyapunov or Sylvester equation. """ # Decide what method to use @@ -151,12 +125,12 @@ def lyap(A, Q, C=None, E=None, method=None): m = Q.shape[0] # Check to make sure input matrices are the right shape and type - _check_shape("A", A, n, n, square=True) + _check_shape(A, n, n, square=True, name="A") # Solve standard Lyapunov equation if C is None and E is None: # Check to make sure input matrices are the right shape and type - _check_shape("Q", Q, n, n, square=True, symmetric=True) + _check_shape(Q, n, n, square=True, symmetric=True, name="Q") if method == 'scipy': # Solve the Lyapunov equation using SciPy @@ -171,8 +145,8 @@ def lyap(A, Q, C=None, E=None, method=None): # Solve the Sylvester equation elif C is not None and E is None: # Check to make sure input matrices are the right shape and type - _check_shape("Q", Q, m, m, square=True) - _check_shape("C", C, n, m) + _check_shape(Q, m, m, square=True, name="Q") + _check_shape(C, n, m, name="C") if method == 'scipy': # Solve the Sylvester equation using SciPy @@ -184,14 +158,14 @@ def lyap(A, Q, C=None, E=None, method=None): # Solve the generalized Lyapunov equation elif C is None and E is not None: # Check to make sure input matrices are the right shape and type - _check_shape("Q", Q, n, n, square=True, symmetric=True) - _check_shape("E", E, n, n, square=True) + _check_shape(Q, n, n, square=True, symmetric=True, name="Q") + _check_shape(E, n, n, square=True, name="E") if method == 'scipy': raise ControlArgument( "method='scipy' not valid for generalized Lyapunov equation") - # Make sure we have access to the write slicot routine + # Make sure we have access to the write Slycot routine try: from slycot import sg03ad @@ -210,7 +184,7 @@ def lyap(A, Q, C=None, E=None, method=None): else: raise ControlArgument("Invalid set of input parameters") - return _ssmatrix(X) + return X def dlyap(A, Q, C=None, E=None, method=None): @@ -240,11 +214,11 @@ def dlyap(A, Q, C=None, E=None, method=None): Parameters ---------- A, Q : 2D array_like - Input matrices for the Lyapunov or Sylvestor equation + Input matrices for the Lyapunov or Sylvestor equation. C : 2D array_like, optional - If present, solve the Sylvester equation + If present, solve the Sylvester equation. E : 2D array_like, optional - If present, solve the generalized Lyapunov equation + If present, solve the generalized Lyapunov equation. 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 @@ -253,7 +227,7 @@ def dlyap(A, Q, C=None, E=None, method=None): Returns ------- X : 2D array (or matrix) - Solution to the Lyapunov or Sylvester equation + Solution to the Lyapunov or Sylvester equation. """ # Decide what method to use @@ -281,12 +255,12 @@ def dlyap(A, Q, C=None, E=None, method=None): m = Q.shape[0] # Check to make sure input matrices are the right shape and type - _check_shape("A", A, n, n, square=True) + _check_shape(A, n, n, square=True, name="A") # Solve standard Lyapunov equation if C is None and E is None: # Check to make sure input matrices are the right shape and type - _check_shape("Q", Q, n, n, square=True, symmetric=True) + _check_shape(Q, n, n, square=True, symmetric=True, name="Q") if method == 'scipy': # Solve the Lyapunov equation using SciPy @@ -301,8 +275,8 @@ def dlyap(A, Q, C=None, E=None, method=None): # Solve the Sylvester equation elif C is not None and E is None: # Check to make sure input matrices are the right shape and type - _check_shape("Q", Q, m, m, square=True) - _check_shape("C", C, n, m) + _check_shape(Q, m, m, square=True, name="Q") + _check_shape(C, n, m, name="C") if method == 'scipy': raise ControlArgument( @@ -314,8 +288,8 @@ def dlyap(A, Q, C=None, E=None, method=None): # Solve the generalized Lyapunov equation elif C is None and E is not None: # Check to make sure input matrices are the right shape and type - _check_shape("Q", Q, n, n, square=True, symmetric=True) - _check_shape("E", E, n, n, square=True) + _check_shape(Q, n, n, square=True, symmetric=True, name="Q") + _check_shape(E, n, n, square=True, name="E") if method == 'scipy': raise ControlArgument( @@ -333,7 +307,7 @@ def dlyap(A, Q, C=None, E=None, method=None): else: raise ControlArgument("Invalid set of input parameters") - return _ssmatrix(X) + return X # @@ -341,7 +315,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"): + _As="A", _Bs="B", _Qs="Q", _Rs="R", _Ss="S", _Es="E"): """Solves the continuous-time algebraic Riccati equation. X, L, G = care(A, B, Q, R=None) solves @@ -368,22 +342,25 @@ def care(A, B, Q, R=None, S=None, E=None, stabilizing=True, method=None, Parameters ---------- A, B, Q : 2D array_like - Input matrices for the Riccati equation + Input matrices for the Riccati equation. R, S, E : 2D array_like, optional - Input matrices for generalized Riccati equation + Input matrices for generalized Riccati equation. 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'. + stabilizing : bool, optional + If `method` is 'slycot', unstabilized eigenvalues will be returned + in the initial elements of `L`. Not supported for 'scipy'. Returns ------- X : 2D array (or matrix) - Solution to the Ricatti equation + Solution to the Riccati equation. L : 1D array - Closed loop eigenvalues + Closed loop eigenvalues. G : 2D array (or matrix) - Gain matrix + Gain matrix. """ # Decide what method to use @@ -404,10 +381,10 @@ def care(A, B, Q, R=None, S=None, E=None, stabilizing=True, method=None, m = B.shape[1] # Check to make sure input matrices are the right shape and type - _check_shape(A_s, A, n, n, square=True) - _check_shape(B_s, B, n, m) - _check_shape(Q_s, Q, n, n, square=True, symmetric=True) - _check_shape(R_s, R, m, m, square=True, symmetric=True) + _check_shape(A, n, n, square=True, name=_As) + _check_shape(B, n, m, name=_Bs) + _check_shape(Q, n, n, square=True, symmetric=True, name=_Qs) + _check_shape(R, m, m, square=True, symmetric=True, name=_Rs) # Solve the standard algebraic Riccati equation if S is None and E is None: @@ -420,9 +397,9 @@ def care(A, B, Q, R=None, S=None, E=None, stabilizing=True, method=None, X = sp.linalg.solve_continuous_are(A, B, Q, R) K = np.linalg.solve(R, B.T @ X) E, _ = np.linalg.eig(A - B @ K) - return _ssmatrix(X), E, _ssmatrix(K) + return X, E, K - # Make sure we can import required slycot routines + # Make sure we can import required Slycot routines try: from slycot import sb02md except ImportError: @@ -445,7 +422,7 @@ def care(A, B, Q, R=None, S=None, E=None, stabilizing=True, method=None, # Return the solution X, the closed-loop eigenvalues L and # the gain matrix G - return _ssmatrix(X), w[:n], _ssmatrix(G) + return X, w[:n], G # Solve the generalized algebraic Riccati equation else: @@ -454,8 +431,8 @@ def care(A, B, Q, R=None, S=None, E=None, stabilizing=True, method=None, E = np.eye(A.shape[0]) if E is None else np.array(E, ndmin=2) # Check to make sure input matrices are the right shape and type - _check_shape(E_s, E, n, n, square=True) - _check_shape(S_s, S, n, m) + _check_shape(E, n, n, square=True, name=_Es) + _check_shape(S, n, m, name=_Ss) # See if we should solve this using SciPy if method == 'scipy': @@ -466,13 +443,13 @@ def care(A, B, Q, R=None, S=None, E=None, stabilizing=True, method=None, X = sp.linalg.solve_continuous_are(A, B, Q, R, s=S, e=E) K = np.linalg.solve(R, B.T @ X @ E + S.T) eigs, _ = sp.linalg.eig(A - B @ K, E) - return _ssmatrix(X), eigs, _ssmatrix(K) + return X, eigs, K - # Make sure we can find the required slycot routine + # Make sure we can find the required Slycot routine try: from slycot import sg02ad except ImportError: - raise ControlSlycot("Can't find slycot module 'sg02ad'") + raise ControlSlycot("Can't find slycot module sg02ad") # Solve the generalized algebraic Riccati equation by calling the # Slycot function sg02ad @@ -491,12 +468,11 @@ def care(A, B, Q, R=None, S=None, E=None, stabilizing=True, method=None, # Return the solution X, the closed-loop eigenvalues L and # the gain matrix G - return _ssmatrix(X), L, _ssmatrix(G) + return X, L, G 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. + _As="A", _Bs="B", _Qs="Q", _Rs="R", _Ss="S", _Es="E"): + """Solves the discrete-time algebraic Riccati equation. X, L, G = dare(A, B, Q, R) solves @@ -522,22 +498,25 @@ def dare(A, B, Q, R, S=None, E=None, stabilizing=True, method=None, Parameters ---------- A, B, Q : 2D arrays - Input matrices for the Riccati equation + Input matrices for the Riccati equation. R, S, E : 2D arrays, optional - Input matrices for generalized Riccati equation + Input matrices for generalized Riccati equation. 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'. + stabilizing : bool, optional + If `method` is 'slycot', unstabilized eigenvalues will be returned + in the initial elements of `L`. Not supported for 'scipy'. Returns ------- X : 2D array (or matrix) - Solution to the Ricatti equation + Solution to the Riccati equation. L : 1D array - Closed loop eigenvalues + Closed loop eigenvalues. G : 2D array (or matrix) - Gain matrix + Gain matrix. """ # Decide what method to use @@ -558,14 +537,14 @@ def dare(A, B, Q, R, S=None, E=None, stabilizing=True, method=None, m = B.shape[1] # Check to make sure input matrices are the right shape and type - _check_shape(A_s, A, n, n, square=True) - _check_shape(B_s, B, n, m) - _check_shape(Q_s, Q, n, n, square=True, symmetric=True) - _check_shape(R_s, R, m, m, square=True, symmetric=True) + _check_shape(A, n, n, square=True, name=_As) + _check_shape(B, n, m, name=_Bs) + _check_shape(Q, n, n, square=True, symmetric=True, name=_Qs) + _check_shape(R, m, m, square=True, symmetric=True, name=_Rs) if E is not None: - _check_shape(E_s, E, n, n, square=True) + _check_shape(E, n, n, square=True, name=_Es) if S is not None: - _check_shape(S_s, S, n, m) + _check_shape(S, n, m, name=_Ss) # Figure out how to solve the problem if method == 'scipy': @@ -583,13 +562,13 @@ def dare(A, B, Q, R, S=None, E=None, stabilizing=True, method=None, else: L, _ = sp.linalg.eig(A - B @ G, E) - return _ssmatrix(X), L, _ssmatrix(G) + return X, L, G - # Make sure we can import required slycot routine + # Make sure we can import required Slycot routine try: from slycot import sg02ad except ImportError: - raise ControlSlycot("Can't find slycot module 'sg02ad'") + raise ControlSlycot("Can't find slycot module sg02ad") # Initialize optional matrices S = np.zeros((n, m)) if S is None else np.array(S, ndmin=2) @@ -612,7 +591,7 @@ def dare(A, B, Q, R, S=None, E=None, stabilizing=True, method=None, # Return the solution X, the closed-loop eigenvalues L and # the gain matrix G - return _ssmatrix(X), L, _ssmatrix(G) + return X, L, G # Utility function to decide on method to use @@ -626,15 +605,48 @@ def _slycot_or_scipy(method): # Utility function to check matrix dimensions -def _check_shape(name, M, n, m, square=False, symmetric=False): - if square and M.shape[0] != M.shape[1]: +def _check_shape(M, n, m, square=False, symmetric=False, name="??"): + """Check the shape and properties of a 2D array. + + This function can be used to check to make sure a 2D array_like has the + right shape, along with other properties. If not, an appropriate error + message is generated. + + Parameters + ---------- + M : array_like + Array to be checked. + n : int + Expected number of rows. + m : int + Expected number of columns. + square : bool, optional + If True, check to make sure the matrix is square. + symmetric : bool, optional + If True, check to make sure the matrix is symmetric. + name : str + Name of the matrix (for use in error messages). + + Returns + ------- + M : 2D array + Input array, converted to 2D if needed. + + """ + M = np.atleast_2d(M) + + if (square or symmetric) and M.shape[0] != M.shape[1]: raise ControlDimension("%s must be a square matrix" % name) if symmetric and not _is_symmetric(M): raise ControlArgument("%s must be a symmetric matrix" % name) if M.shape[0] != n or M.shape[1] != m: - raise ControlDimension("Incompatible dimensions of %s matrix" % name) + raise ControlDimension( + f"Incompatible dimensions of {name} matrix; " + f"expected ({n}, {m}) but found {M.shape}") + + return M # Utility function to check if a matrix is symmetric diff --git a/control/matlab/__init__.py b/control/matlab/__init__.py index b02d16d53..6414c9131 100644 --- a/control/matlab/__init__.py +++ b/control/matlab/__init__.py @@ -1,55 +1,20 @@ -# -*- coding: utf-8 -*- -""" -The :mod:`control.matlab` module contains a number of functions that emulate -some of the functionality of MATLAB. The intent of these functions is to -provide a simple interface to the python control systems library -(python-control) for people who are familiar with the MATLAB Control Systems -Toolbox (tm). -""" - -"""Copyright (c) 2009 by California Institute of Technology -All rights reserved. - -Copyright (c) 2011 by Eike Welk - - -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. +# Original author: Richard M. Murray +# Creation date: 29 May 09 +# Pre-2014 revisions: Kevin K. Chen, Dec 2010 -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. +"""MATLAB compatibility subpackage. -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. - -Author: Richard M. Murray -Date: 29 May 09 -Revised: Kevin K. Chen, Dec 10 - -$Id$ +This subpackage contains a number of functions that emulate some of +the functionality of MATLAB. The intent of these functions is to +provide a simple interface to the python control systems library +(python-control) for people who are familiar with the MATLAB Control +Systems Toolbox (tm). """ +# Silence unused imports (F401), * imports (F403), unknown symbols (F405) +# ruff: noqa: F401, F403, F405 + # Import MATLAB-like functions that are defined in other packages from scipy.signal import zpk2ss, ss2zpk, tf2zpk, zpk2tf from numpy import linspace, logspace @@ -84,10 +49,12 @@ from ..dtime import c2d from ..sisotool import sisotool from ..stochsys import lqe, dlqe +from ..nlsys import find_operating_point # Functions that are renamed in MATLAB pole, zero = poles, zeros freqresp = frequency_response +trim = find_operating_point # Import functions specific to Matlab compatibility package from .timeresp import * @@ -96,295 +63,3 @@ # Set up defaults corresponding to MATLAB conventions from ..config import * use_matlab_defaults() - -r""" -The following tables give an overview of the module ``control.matlab``. -They also show the implementation progress and the planned features of the -module. - -The symbols in the first column show the current state of a feature: - -* ``*`` : The feature is currently implemented. -* ``-`` : The feature is not planned for implementation. -* ``s`` : A similar feature from another library (Scipy) is imported into - the module, until the feature is implemented here. - - -Creating linear models ----------------------------------------------------------------------------- - -== ========================== ============================================ -\* :func:`tf` create transfer function (TF) 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 -\* :func:`frd` create frequency response data (FRD) models -\ lti/exp create pure continuous-time delays (TF and - ZPK only) -\ filt specify digital filters -\- lti/set set/modify properties of LTI models -\- setdelaymodel specify internal delay model (state space - only) -\* :func:`rss` create a random continuous state space model -\* :func:`drss` create a random discrete state space model -== ========================== ============================================ - - -Data extraction ----------------------------------------------------------------------------- - -== ========================== ============================================ -\* :func:`tfdata` extract numerators and denominators -\ lti/zpkdata extract zero/pole/gain data -\ lti/ssdata extract state-space matrices -\ lti/dssdata descriptor version of SSDATA -\ frd/frdata extract frequency response data -\ lti/get access values of LTI model properties -\ ss/getDelayModel access internal delay model (state space) -== ========================== ============================================ - - -Conversions ----------------------------------------------------------------------------- - -== ============================ ============================================ -\* :func:`tf` conversion to transfer function -\ zpk conversion to zero/pole/gain -\* :func:`ss` conversion to state space -\* :func:`frd` conversion to frequency data -\* :func:`c2d` continuous to discrete conversion -\ d2c discrete to continuous conversion -\ d2d resample discrete-time model -\ upsample upsample discrete-time LTI systems -\* :func:`ss2tf` state space to transfer function -\s :func:`~scipy.signal.ss2zpk` transfer function to zero-pole-gain -\* :func:`tf2ss` transfer function to state space -\s :func:`~scipy.signal.tf2zpk` transfer function to zero-pole-gain -\s :func:`~scipy.signal.zpk2ss` zero-pole-gain to state space -\s :func:`~scipy.signal.zpk2tf` zero-pole-gain to transfer function -== ============================ ============================================ - - -System interconnections ----------------------------------------------------------------------------- - -== ========================== ============================================ -\* :func:`~control.append` group LTI models by appending inputs/outputs -\* :func:`~control.parallel` connect LTI models in parallel - (see also overloaded ``+``) -\* :func:`~control.series` connect LTI models in series - (see also overloaded ``*``) -\* :func:`~control.feedback` connect lti models with a feedback loop -\ lti/lft generalized feedback interconnection -\* :func:`~control.connect` arbitrary interconnection of lti models -\ sumblk summing junction (for use with connect) -\ strseq builds sequence of indexed strings - (for I/O naming) -== ========================== ============================================ - - -System gain and dynamics ----------------------------------------------------------------------------- - -== ========================== ============================================ -\* :func:`dcgain` steady-state (D.C.) gain -\* :func:`bandwidth` system bandwidth -\ lti/norm h2 and Hinfinity norms of LTI models -\* :func:`pole` system poles -\* :func:`zero` system (transmission) zeros -\ lti/order model order (number of states) -\* :func:`~control.pzmap` pole-zero map (TF only) -\ lti/iopzmap input/output pole-zero map -\* :func:`damp` natural frequency, damping of system poles -\ esort sort continuous poles by real part -\ dsort sort discrete poles by magnitude -\ lti/stabsep stable/unstable decomposition -\ lti/modsep region-based modal decomposition -== ========================== ============================================ - - -Time-domain analysis ----------------------------------------------------------------------------- - -== ========================== ============================================ -\* :func:`step` step response -\ stepinfo step response characteristics -\* :func:`impulse` impulse response -\* :func:`initial` free response with initial conditions -\* :func:`lsim` response to user-defined input signal -\ lsiminfo linear response characteristics -\ gensig generate input signal for LSIM -\ covar covariance of response to white noise -== ========================== ============================================ - - -Frequency-domain analysis ----------------------------------------------------------------------------- - -== ========================== ============================================ -\* :func:`bode` Bode plot of the frequency response -\ lti/bodemag Bode magnitude diagram only -\ sigma singular value frequency plot -\* :func:`~control.nyquist` Nyquist plot -\* :func:`~control.nichols` Nichols plot -\* :func:`margin` gain and phase margins -\ lti/allmargin all crossover frequencies and margins -\* :func:`freqresp` frequency response -\* :func:`evalfr` frequency response at complex frequency s -== ========================== ============================================ - - -Model simplification ----------------------------------------------------------------------------- - -== ========================== ============================================ -\* :func:`~control.minreal` minimal realization; pole/zero cancellation -\ ss/sminreal structurally minimal realization -\* :func:`~control.hsvd` hankel singular values (state contributions) -\* :func:`~control.balred` reduced-order approximations of LTI models -\* :func:`~control.modred` model order reduction -== ========================== ============================================ - - -Compensator design ----------------------------------------------------------------------------- - -== ========================== ============================================ -\* :func:`rlocus` evans root locus -\* :func:`sisotool` SISO controller design -\* :func:`~control.place` pole placement -\ estim form estimator given estimator gain -\ reg form regulator given state-feedback and - estimator gains -== ========================== ============================================ - - -LQR/LQG design ----------------------------------------------------------------------------- - -== ========================== ============================================ -\ ss/lqg single-step LQG design -\* :func:`~control.lqr` linear quadratic (LQ) state-fbk regulator -\ dlqr discrete-time LQ state-feedback regulator -\ lqry LQ regulator with output weighting -\ lqrd discrete LQ regulator for continuous plant -\ ss/lqi Linear-Quadratic-Integral (LQI) controller -\ ss/kalman Kalman state estimator -\ ss/kalmd discrete Kalman estimator for cts plant -\ ss/lqgreg build LQG regulator from LQ gain and Kalman - estimator -\ ss/lqgtrack build LQG servo-controller -\ augstate augment output by appending states -== ========================== ============================================ - - -State-space (SS) models ----------------------------------------------------------------------------- - -== ========================== ============================================ -\* :func:`rss` random stable cts-time state-space models -\* :func:`drss` random stable disc-time state-space models -\ ss2ss state coordinate transformation -\ canon canonical forms of state-space models -\* :func:`~control.ctrb` controllability matrix -\* :func:`~control.obsv` observability matrix -\* :func:`~control.gram` controllability and observability gramians -\ ss/prescale optimal scaling of state-space models. -\ balreal gramian-based input/output balancing -\ ss/xperm reorder states. -== ========================== ============================================ - - -Frequency response data (FRD) models ----------------------------------------------------------------------------- - -== ========================== ============================================ -\ frd/chgunits change frequency vector units -\ frd/fcat merge frequency responses -\ frd/fselect select frequency range or subgrid -\ frd/fnorm peak gain as a function of frequency -\ frd/abs entrywise magnitude of frequency response -\ frd/real real part of the frequency response -\ frd/imag imaginary part of the frequency response -\ frd/interp interpolate frequency response data -\* :func:`~control.mag2db` convert magnitude to decibels (dB) -\* :func:`~control.db2mag` convert decibels (dB) to magnitude -== ========================== ============================================ - - -Time delays ----------------------------------------------------------------------------- - -== ========================== ============================================ -\ lti/hasdelay true for models with time delays -\ lti/totaldelay total delay between each input/output pair -\ lti/delay2z replace delays by poles at z=0 or FRD phase - shift -\* :func:`~control.pade` pade approximation of time delays -== ========================== ============================================ - - -Model dimensions and characteristics ----------------------------------------------------------------------------- - -== ========================== ============================================ -\ class model type ('tf', 'zpk', 'ss', or 'frd') -\ isa test if model is of given type -\ tf/size model sizes -\ lti/ndims number of dimensions -\ lti/isempty true for empty models -\ lti/isct true for continuous-time models -\ lti/isdt true for discrete-time models -\ lti/isproper true for proper models -\ lti/issiso true for single-input/single-output models -\ lti/isstable true for models with stable dynamics -\ lti/reshape reshape array of linear models -== ========================== ============================================ - -Overloaded arithmetic operations ----------------------------------------------------------------------------- - -== ========================== ============================================ -\* \+ and - add, subtract systems (parallel connection) -\* \* multiply systems (series connection) -\ / right divide -- sys1\*inv(sys2) -\- \\ left divide -- inv(sys1)\*sys2 -\ ^ powers of a given system -\ ' pertransposition -\ .' transposition of input/output map -\ .\* element-by-element multiplication -\ [..] concatenate models along inputs or outputs -\ lti/stack stack models/arrays along some dimension -\ lti/inv inverse of an LTI system -\ lti/conj complex conjugation of model coefficients -== ========================== ============================================ - -Matrix equation solvers and linear algebra ----------------------------------------------------------------------------- - -== ========================== ============================================ -\* :func:`~control.lyap` solve continuous-time Lyapunov equations -\* :func:`~control.dlyap` solve discrete-time Lyapunov equations -\ lyapchol, dlyapchol square-root Lyapunov solvers -\* :func:`~control.care` solve continuous-time algebraic Riccati - equations -\* :func:`~control.dare` solve disc-time algebraic Riccati equations -\ gcare, gdare generalized Riccati solvers -\ bdschur block diagonalization of a square matrix -== ========================== ============================================ - - -Additional functions ----------------------------------------------------------------------------- - -== ========================== ============================================ -\* :func:`~control.gangof4` generate the Gang of 4 sensitivity plots -\* :func:`~numpy.linspace` generate a set of numbers that are linearly - spaced -\* :func:`~numpy.logspace` generate a set of numbers that are - logarithmically spaced -\* :func:`~control.unwrap` unwrap phase angle to give continuous curve -== ========================== ============================================ - -""" diff --git a/control/matlab/timeresp.py b/control/matlab/timeresp.py index fe8bfbd71..a0554ec9b 100644 --- a/control/matlab/timeresp.py +++ b/control/matlab/timeresp.py @@ -1,13 +1,16 @@ -""" -Time response routines in the Matlab compatibility package +# timeresp.py - time response routines in the MATLAB compatibility package + +"""Time response routines in the MATLAB compatibility package. + +Note that the return arguments are different than in the standard +control package.. -Note that the return arguments are different than in the standard control package. """ __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 @@ -17,25 +20,26 @@ def step(sys, T=None, input=0, output=None, return_x=False): Parameters ---------- - sys: StateSpace, or TransferFunction - LTI system to simulate - T: array-like or number, optional + 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) - input: int + autocomputed if not given). + input : int Index of the input that will be used in this simulation. - output: int + output : int If given, index of the output that is returned by this simulation. + return_x : bool, optional + If True, return the state vector in addition to outputs. Returns ------- - yout: array - Response of the system - T: array - Time values of the output - xout: array (if selected) - Individual response of each x variable - + 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 -------- @@ -48,7 +52,7 @@ def step(sys, T=None, input=0, output=None, return_x=False): >>> G = rss(4) >>> yout, T = step(G) - ''' + """ from ..timeresp import step_response # Switch output argument order and transpose outputs @@ -59,13 +63,14 @@ def step(sys, T=None, 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, etc). Parameters ---------- - sysdata : StateSpace or TransferFunction or array_like - The system data. Either LTI system to similate (StateSpace, - TransferFunction), or a time series of step response data. + sysdata : `StateSpace` or `TransferFunction` or array_like + 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 autocomputed if not given). @@ -76,39 +81,29 @@ def stepinfo(sysdata, T=None, yfinal=None, SettlingTimeThreshold=0.02, used for a given time series of response data. Scalar for SISO, (noutputs, ninputs) array_like for MIMO systems. SettlingTimeThreshold : float, optional - Defines the error to compute settling time (default = 0.02) - RiseTimeLimits : tuple (lower_threshold, upper_theshold) - Defines the lower and upper threshold for RiseTime computation + Defines the error to compute settling time (default = 0.02). + RiseTimeLimits : tuple (lower_threshold, upper_threshold) + Defines the lower and upper threshold for RiseTime computation. Returns ------- S : dict or list of list of dict - If `sysdata` corresponds to a SISO system, S is a dictionary + If `sysdata` corresponds to a SISO system, `S` is a dictionary containing: - RiseTime: - Time from 10% to 90% of the steady-state value. - SettlingTime: - Time to enter inside a default error of 2% - SettlingMin: - Minimum value after RiseTime - SettlingMax: - Maximum value after RiseTime - Overshoot: - Percentage of the Peak relative to steady value - Undershoot: - Percentage of undershoot - Peak: - Absolute peak value - PeakTime: - time of the Peak - SteadyStateValue: - Steady-state value + - 'RiseTime': Time from 10% to 90% of the steady-state value. + - 'SettlingTime': Time to enter inside a default error of 2%. + - 'SettlingMin': Minimum value after `RiseTime`. + - 'SettlingMax': Maximum value after `RiseTime`. + - 'Overshoot': Percentage of the peak relative to steady value. + - 'Undershoot': Percentage of undershoot. + - 'Peak': Absolute peak value. + - 'PeakTime': Time that the first peak value is obtained. + - 'SteadyStateValue': Steady-state value. If `sysdata` corresponds to a MIMO system, `S` is a 2D list of dicts. - To get the step response characteristics from the j-th input to the - i-th output, access ``S[i][j]`` - + To get the step response characteristics from the jth input to the + ith output, access ``S[i][j]``. See Also -------- @@ -132,7 +127,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 @@ -142,24 +137,26 @@ def impulse(sys, T=None, input=0, output=None, return_x=False): Parameters ---------- - sys: StateSpace, TransferFunction - LTI system to simulate - T: array-like or number, optional + 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) - input: int + autocomputed if not given). + input : int Index of the input that will be used in this simulation. - output: int + output : int Index of the output that will be used in this simulation. + return_x : bool, optional + If True, return the state vector in addition to outputs. Returns ------- - yout: array - Response of the system - T: array - Time values of the output - xout: array (if selected) - Individual response of each x variable + 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 -------- @@ -172,7 +169,7 @@ def impulse(sys, T=None, input=0, output=None, return_x=False): >>> G = rss() >>> yout, T = impulse(G) - ''' + """ from ..timeresp import impulse_response # Switch output argument order and transpose outputs @@ -181,7 +178,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 @@ -189,27 +186,29 @@ def initial(sys, T=None, X0=0., input=None, output=None, return_x=False): Parameters ---------- - sys: StateSpace, or TransferFunction - LTI system to simulate - T: array-like or number, optional + 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) - input: int + autocomputed if not given). + X0 : array_like object or number, optional + Initial condition (default = 0). + input : int This input is ignored, but present for compatibility with step and impulse. - output: int + output : int If given, index of the output that is returned by this simulation. + return_x : bool, optional + If True, return the state vector in addition to outputs. Returns ------- - yout: array - Response of the system - T: array - Time values of the output - xout: array (if selected) - Individual response of each x variable + 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 -------- @@ -222,7 +221,7 @@ def initial(sys, T=None, X0=0., input=None, output=None, return_x=False): >>> G = rss(4) >>> yout, T = initial(G) - ''' + """ from ..timeresp import initial_response # Switch output argument order and transpose outputs @@ -232,33 +231,32 @@ 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. - The correct shape is inferred from arguments `sys` and `T`. + As a convenience for parameters `U` and `X0`, numbers (scalars) are + converted to constant arrays with the correct shape. The correct + shape is inferred from arguments `sys` and `T`. Parameters ---------- - 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` + sys : `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 + X0 : array_like or number, optional Initial condition (default = 0). Returns ------- - yout: array + yout : array Response of the system. - T: array + T : array Time values of the output. - xout: array + xout : array Time evolution of the state vector. See Also @@ -273,7 +271,7 @@ def lsim(sys, U=0., T=None, X0=0.): >>> T = np.linspace(0,10) >>> yout, T, xout = lsim(G, T=T) - ''' + """ from ..timeresp import forced_response # Switch output argument order and transpose outputs (and always return x) diff --git a/control/matlab/wrappers.py b/control/matlab/wrappers.py index 0384215a8..e244479ad 100644 --- a/control/matlab/wrappers.py +++ b/control/matlab/wrappers.py @@ -1,21 +1,24 @@ -""" -Wrappers for the MATLAB compatibility module +# wrappers.py - Wrappers for the MATLAB compatibility module. + +"""Wrappers for the MATLAB compatibility module. + """ -import numpy as np -from scipy.signal import zpk2tf import warnings from warnings import warn +import numpy as np +from scipy.signal import zpk2tf + +from ..exception import ControlArgument +from ..lti import LTI from ..statesp import ss from ..xferfcn import tf -from ..lti import LTI -from ..exception import ControlArgument __all__ = ['bode', 'nyquist', 'ngrid', 'rlocus', 'pzmap', 'dcgain', 'connect'] def bode(*args, **kwargs): - """bode(syslist[, omega, dB, Hz, deg, ...]) + """bode(sys[, omega, dB, Hz, deg, ...]) Bode plot of the frequency response. @@ -26,25 +29,24 @@ def bode(*args, **kwargs): sys : LTI, or list of LTI System for which the Bode response is plotted and give. Optionally a list of systems can be entered, or several systems can be - specified (i.e. several parameters). The sys arguments may also 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 # 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 + may also be added (see Examples). + omega : array + Range of frequencies in rad/s. dB : boolean - If True, plot result in dB + If True, plot result in dB. Hz : boolean - If True, plot frequency in Hz (omega must be provided in rad/sec) + If True, plot frequency in Hz (omega must be provided in rad/sec). deg : boolean - If True, return phase in degrees (else radians) + If True, return phase in degrees (else radians). plot : boolean - If True, plot magnitude and phase + If True, plot magnitude and phase. + + Returns + ------- + mag, phase, omega : array + Magnitude, phase, and frequencies represented in the Bode plot. Examples -------- @@ -52,15 +54,11 @@ def bode(*args, **kwargs): >>> sys = ss([[1, -2], [3, -4]], [[5], [7]], [[6, 8]], 9) >>> mag, phase, omega = bode(sys) + >>> 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') # doctest: +SKIP - .. todo:: - - Document these use cases - - * >>> 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 @@ -99,22 +97,28 @@ def nyquist(*args, plot=True, **kwargs): Parameters ---------- - sys1, ..., sysn : list of LTI + syslist : list of LTI List of linear input/output systems (single system is OK). omega : array_like Set of frequencies to be evaluated, in rad/sec. + omega_limits : array_like of two values + Set limits for plotted frequency range. If Hz=True the limits are + in Hz otherwise in rad/s. Specifying `omega` as a list of two + elements is equivalent to providing `omega_limits`. + plot : bool + If False, do not generate a plot. Returns ------- real : ndarray (or list of ndarray if len(syslist) > 1)) - real part of the frequency response array + Real part of the frequency response array. imag : ndarray (or list of ndarray if len(syslist) > 1)) - imaginary part of the frequency response array + Imaginary part of the frequency response array. omega : ndarray (or list of ndarray if len(syslist) > 1)) - frequencies in rad/s + Frequencies in rad/s. """ - from ..freqplot import nyquist_response, nyquist_plot + from ..freqplot import nyquist_plot, nyquist_response # If first argument is a list, assume python-control calling format if hasattr(args[0], '__iter__'): @@ -189,7 +193,7 @@ def _parse_freqplot_args(*args): if len(syslist) == 0: raise ControlArgument("no systems specified") elif len(syslist) == 1: - # If only one system given, retun just that system (not a list) + # If only one system given, return just that system (not a list) syslist = syslist[0] return syslist, omega, plotstyle, other @@ -197,26 +201,26 @@ def _parse_freqplot_args(*args): # TODO: rewrite to call root_locus_map, without using legacy plot keyword def rlocus(*args, **kwargs): - """rlocus(sys[, klist, xlim, ylim, ...]) + """rlocus(sys[, gains, 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. + an element of gains. Parameters ---------- sys : LTI object Linear input/output systems (SISO only, for now). - kvect : array_like, optional + gains : 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`). + Set limits of x axis (see `matplotlib.axes.Axes.set_xlim`). ylim : tuple or list, optional - Set limits of y axis, normally with tuple - (see :doc:`matplotlib:api/axes_api`). + Set limits of y axis (see `matplotlib.axes.Axes.set_ylim`). + plot : bool + If False, do not generate a plot. Returns ------- @@ -224,11 +228,11 @@ def rlocus(*args, **kwargs): 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. + Gains used. Same as gains keyword argument if provided. Notes ----- - This function is a wrapper for :func:`~control.root_locus_plot`, + This function is a wrapper for `root_locus_plot`, with legacy return arguments. """ @@ -257,24 +261,24 @@ def pzmap(*args, **kwargs): Parameters ---------- - sys: LTI (StateSpace or TransferFunction) + sys : `StateSpace` or `TransferFunction` Linear system for which poles and zeros are computed. - plot: bool, optional - If ``True`` a graph is generated with Matplotlib, + 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. + grid : boolean (default = False) + If True, plot omega-damping grid. Returns ------- - poles: array + poles : array The system's poles. - zeros: array + zeros : array The system's zeros. Notes ----- - This function is a wrapper for :func:`~control.pole_zero_plot`, + This function is a wrapper for `pole_zero_plot`, with legacy return arguments. """ @@ -296,43 +300,55 @@ def pzmap(*args, **kwargs): from ..nichols import nichols_grid + + def ngrid(): return nichols_grid() ngrid.__doc__ = nichols_grid.__doc__ def dcgain(*args): - '''Compute the gain of the system in steady state. + """dcgain(sys) \ + dcgain(num, den) \ + dcgain(Z, P, k) \ + dcgain(A, B, C, D) + + Compute the gain of the system in steady state. The function takes either 1, 2, 3, or 4 parameters: + * dcgain(sys) + * dcgain(num, den) + * dcgain(Z, P, k) + * dcgain(A, B, C, D) + Parameters ---------- - A, B, C, D: array-like + A, B, C, D : array_like A linear system in state space form. - Z, P, k: array-like, array-like, number + Z, P, k : array_like, array_like, number A linear system in zero, pole, gain form. - num, den: array-like + num, den : array_like A linear system in transfer function form. - sys: LTI (StateSpace or TransferFunction) + sys : `StateSpace` or `TransferFunction` A linear system object. Returns ------- - gain: ndarray + gain : ndarray The gain of each output versus each input: - :math:`y = gain \\cdot u` + :math:`y = gain \\cdot u`. Notes ----- This function is only useful for systems with invertible system - matrix ``A``. + matrix `A`. All systems are first converted to state space form. The function then computes: .. math:: gain = - C \\cdot A^{-1} \\cdot B + D - ''' + """ #Convert the parameters to state space form if len(args) == 4: A, B, C, D = args @@ -348,48 +364,51 @@ def dcgain(*args): sys, = args return sys.dcgain() else: - raise ValueError("Function ``dcgain`` needs either 1, 2, 3 or 4 " + raise ValueError("Function `dcgain` needs either 1, 2, 3 or 4 " "arguments.") from ..bdalg import connect as ct_connect + + def connect(*args): + """connect(sys, Q, inputv, outputv) - """Index-based interconnection of an LTI system. + 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`. + 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` + sys : `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 + 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 + List of final external inputs, indexed starting at 1. outputv : 1D array - list of final external outputs, indexed starting at 1 + List of final external outputs, indexed starting at 1. Returns ------- - out : :class:`InputOutputSystem` + out : `InputOutputSystem` Connected and trimmed I/O system. See Also -------- - append, feedback, interconnect, negate, parallel, series + append, feedback, connect, negate, parallel, series Examples -------- diff --git a/control/modelsimp.py b/control/modelsimp.py index cbaf242c3..3352cc156 100644 --- a/control/modelsimp.py +++ b/control/modelsimp.py @@ -1,55 +1,29 @@ -#! TODO: add module docstring # modelsimp.py - tools for model simplification # -# Author: Steve Brunton, Kevin Chen, Lauren Padilla -# Date: 30 Nov 2010 -# -# This file contains routines for obtaining reduced order models -# -# 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$ +# Initial authors: Steve Brunton, Kevin Chen, Lauren Padilla +# Creation date: 30 Nov 2010 + +"""Tools for model simplification. + +This module contains routines for obtaining reduced order models for state +space systems. + +""" + +import warnings # External packages and modules import numpy as np -import warnings -from .exception import ControlSlycot, ControlMIMONotImplemented, \ - ControlDimension -from .iosys import isdtime, isctime -from .statesp import StateSpace + +from .exception import ControlArgument, ControlDimension, ControlSlycot +from .iosys import isctime, isdtime from .statefbk import gram +from .statesp import StateSpace +from .timeresp import TimeResponseData -__all__ = ['hsvd', 'balred', 'modred', 'era', 'markov', 'minreal'] +__all__ = ['hankel_singular_values', 'balanced_reduction', 'model_reduction', + 'minimal_realization', 'eigensys_realization', 'markov', 'hsvd', + 'balred', 'modred', 'minreal', 'era'] # Hankel Singular Value Decomposition @@ -57,18 +31,18 @@ # The following returns the Hankel singular values, which are singular values # of the matrix formed by multiplying the controllability and observability # Gramians -def hsvd(sys): +def hankel_singular_values(sys): """Calculate the Hankel singular values. Parameters ---------- - sys : StateSpace - A state space system + sys : `StateSpace` + State space system. Returns ------- H : array - A list of Hankel singular values + List of Hankel singular values. See Also -------- @@ -79,7 +53,7 @@ def hsvd(sys): The Hankel singular values are the singular values of the Hankel operator. In practice, we compute the square root of the eigenvalues of the matrix formed by taking the product of the observability and controllability - gramians. There are other (more efficient) methods based on solving the + Gramians. There are other (more efficient) methods based on solving the Lyapunov equation in a particular way (more details soon). Examples @@ -87,10 +61,10 @@ def hsvd(sys): >>> G = ct.tf2ss([1], [1, 2]) >>> H = ct.hsvd(G) >>> H[0] - 0.25 + np.float64(0.25) """ - # TODO: implement for discrete time systems + # TODO: implement for discrete-time systems if (isdtime(sys, strict=True)): raise NotImplementedError("Function not implemented in discrete time") @@ -106,88 +80,145 @@ def hsvd(sys): return hsv[::-1] -def modred(sys, ELIM, method='matchdc'): - """ - Model reduction of `sys` by eliminating the states in `ELIM` using a given - method. +def model_reduction( + sys, elim_states=None, method='matchdc', elim_inputs=None, + elim_outputs=None, keep_states=None, keep_inputs=None, + keep_outputs=None, warn_unstable=True): + """Model reduction by input, output, or state elimination. + + This function produces a reduced-order model of a system by eliminating + specified inputs, outputs, and/or states from the original system. The + specific states, inputs, or outputs that are eliminated can be + specified by either listing the states, inputs, or outputs to be + eliminated or those to be kept. + + Two methods of state reduction are possible: 'truncate' removes the + states marked for elimination, while 'matchdc' replaces the eliminated + states with their equilibrium values (thereby keeping the input/output + gain unchanged at zero frequency ["DC"]). Parameters ---------- - sys: StateSpace - Original system to reduce - ELIM: array - Vector of states to eliminate - method: string - Method of removing states in `ELIM`: either ``'truncate'`` or - ``'matchdc'``. + sys : `StateSpace` + Original system to reduce. + elim_inputs, elim_outputs, elim_states : array of int or str, optional + Vector of inputs, outputs, or states to eliminate. Can be specified + either as an offset into the appropriate vector or as a signal name. + keep_inputs, keep_outputs, keep_states : array, optional + Vector of inputs, outputs, or states to keep. Can be specified + either as an offset into the appropriate vector or as a signal name. + method : string + Method of removing states: either 'truncate' or 'matchdc' (default). + warn_unstable : bool, option + If False, don't warn if system is unstable. Returns ------- - rsys: StateSpace - A reduced order model + rsys : `StateSpace` + Reduced order model. Raises ------ ValueError - Raised under the following conditions: - - * if `method` is not either ``'matchdc'`` or ``'truncate'`` + If `method` is not either 'matchdc' or 'truncate'. + NotImplementedError + If the 'matchdc' method is used for a discrete-time system. - * if eigenvalues of `sys.A` are not all in left half plane - (`sys` must be stable) + Warns + ----- + UserWarning + If eigenvalues of `sys.A` are not all stable. Examples -------- >>> G = ct.rss(4) - >>> Gr = ct.modred(G, [0, 2], method='matchdc') + >>> Gr = ct.model_reduction(G, [0, 2], method='matchdc') >>> Gr.nstates 2 - """ + See Also + -------- + balanced_reduction, minimal_realization - # Check for ss system object, need a utility for this? + Notes + ----- + The model_reduction function issues a warning if the system has + unstable eigenvalues, since in those situations the stability of the + reduced order model may be different than the stability of the full + model. No other checking is done, so users must to be careful not to + render a system unobservable or unreachable. - # TODO: Check for continous or discrete, only continuous supported for now - # if isCont(): - # dico = 'C' - # elif isDisc(): - # dico = 'D' - # else: - if (isctime(sys)): - dico = 'C' - else: - raise NotImplementedError("Function not implemented in discrete time") + States, inputs, and outputs can be specified using integer offsets or + using signal names. Slices can also be specified, but must use the + Python `slice` function. + + """ + if not isinstance(sys, StateSpace): + raise TypeError("system must be a StateSpace system") # Check system is stable - if np.any(np.linalg.eigvals(sys.A).real >= 0.0): - raise ValueError("Oops, the system is unstable!") - - ELIM = np.sort(ELIM) - # Create list of elements not to eliminate (NELIM) - NELIM = [i for i in range(len(sys.A)) if i not in ELIM] - # A1 is a matrix of all columns of sys.A not to eliminate - A1 = sys.A[:, NELIM[0]].reshape(-1, 1) - for i in NELIM[1:]: - A1 = np.hstack((A1, sys.A[:, i].reshape(-1, 1))) - A11 = A1[NELIM, :] - A21 = A1[ELIM, :] - # A2 is a matrix of all columns of sys.A to eliminate - A2 = sys.A[:, ELIM[0]].reshape(-1, 1) - for i in ELIM[1:]: - A2 = np.hstack((A2, sys.A[:, i].reshape(-1, 1))) - A12 = A2[NELIM, :] - A22 = A2[ELIM, :] - - C1 = sys.C[:, NELIM] - C2 = sys.C[:, ELIM] - B1 = sys.B[NELIM, :] - B2 = sys.B[ELIM, :] - - if method == 'matchdc': - # if matchdc, residualize + if warn_unstable: + if isctime(sys) and np.any(np.linalg.eigvals(sys.A).real >= 0.0) or \ + isdtime(sys) and np.any(np.abs(np.linalg.eigvals(sys.A)) >= 1): + warnings.warn("System is unstable; reduction may be meaningless") + + # Utility function to process keep/elim keywords + def _process_elim_or_keep(elim, keep, labels): + def _expand_key(key): + if key is None: + return [] + elif isinstance(key, str): + return labels.index(key) + elif isinstance(key, list): + return [_expand_key(k) for k in key] + elif isinstance(key, slice): + return range(len(labels))[key] + else: + return key + + elim = np.atleast_1d(_expand_key(elim)) + keep = np.atleast_1d(_expand_key(keep)) + + if len(elim) > 0 and len(keep) > 0: + raise ValueError( + "can't provide both 'keep' and 'elim' for same variables") + elif len(keep) > 0: + keep = np.sort(keep).tolist() + elim = [i for i in range(len(labels)) if i not in keep] + else: + elim = [] if elim is None else np.sort(elim).tolist() + keep = [i for i in range(len(labels)) if i not in elim] + return elim, keep + + # Determine which states to keep + elim_states, keep_states = _process_elim_or_keep( + elim_states, keep_states, sys.state_labels) + elim_inputs, keep_inputs = _process_elim_or_keep( + elim_inputs, keep_inputs, sys.input_labels) + elim_outputs, keep_outputs = _process_elim_or_keep( + elim_outputs, keep_outputs, sys.output_labels) + + # Create submatrix of states we are keeping + A11 = sys.A[:, keep_states][keep_states, :] # states we are keeping + A12 = sys.A[:, elim_states][keep_states, :] # needed for 'matchdc' + A21 = sys.A[:, keep_states][elim_states, :] + A22 = sys.A[:, elim_states][elim_states, :] + + B1 = sys.B[keep_states, :] + B2 = sys.B[elim_states, :] + + C1 = sys.C[:, keep_states] + C2 = sys.C[:, elim_states] + + # Figure out the new state space system + if method == 'matchdc' and A22.size > 0: + if sys.isdtime(strict=True): + raise NotImplementedError( + "'matchdc' not (yet) supported for discrete-time systems") + # if matchdc, residualize # Check if the matrix A22 is invertible - if np.linalg.matrix_rank(A22) != len(ELIM): + if np.linalg.matrix_rank(A22) != len(elim_states): raise ValueError("Matrix A22 is singular to working precision.") # Now precompute A22\A21 and A22\B2 (A22I = inv(A22)) @@ -203,40 +234,49 @@ def modred(sys, ELIM, method='matchdc'): Br = B1 - A12 @ A22I_B2 Cr = C1 - C2 @ A22I_A21 Dr = sys.D - C2 @ A22I_B2 - elif method == 'truncate': - # if truncate, simply discard state x2 + + elif method == 'truncate' or A22.size == 0: + # Get rid of unwanted states Ar = A11 Br = B1 Cr = C1 Dr = sys.D + else: raise ValueError("Oops, method is not supported!") + # Get rid of additional inputs and outputs + Br = Br[:, keep_inputs] + Cr = Cr[keep_outputs, :] + Dr = Dr[keep_outputs, :][:, keep_inputs] + rsys = StateSpace(Ar, Br, Cr, Dr) return rsys -def balred(sys, orders, method='truncate', alpha=None): - """Balanced reduced order model of sys of a given order. - States are eliminated based on Hankel singular value. - If sys has unstable modes, they are removed, the - balanced realization is done on the stable part, then - reinserted in accordance with the reference below. +def balanced_reduction(sys, orders, method='truncate', alpha=None): + """Balanced reduced order model of system of a given order. - Reference: Hsu,C.S., and Hou,D., 1991, - Reducing unstable linear control systems via real Schur transformation. - Electronics Letters, 27, 984-986. + States are eliminated based on Hankel singular value. If `sys` has + unstable modes, they are removed, the balanced realization is done on + the stable part, then reinserted in accordance with [1]_. + + References + ---------- + .. [1] C. S. Hsu and D. Hou, "Reducing unstable linear control + systems via real Schur transformation". Electronics Letters, + 27, 984-986, 1991. Parameters ---------- - sys: StateSpace - Original system to reduce - orders: integer or array of integer + sys : `StateSpace` + Original system to reduce. + orders : integer or array of integer Desired order of reduced order model (if a vector, returns a vector - of systems) - method: string - Method of removing states, either ``'truncate'`` or ``'matchdc'``. - alpha: float + of systems). + method : string + Method of removing states, either 'truncate' or 'matchdc'. + alpha : float Redefines the stability boundary for eigenvalues of the system matrix A. By default for continuous-time systems, alpha <= 0 defines the stability boundary for the real part of A's eigenvalues @@ -246,19 +286,18 @@ def balred(sys, orders, method='truncate', alpha=None): Returns ------- - rsys: StateSpace + rsys : `StateSpace` A reduced order model or a list of reduced order models if orders is a list. Raises ------ ValueError - If `method` is not ``'truncate'`` or ``'matchdc'`` + If `method` is not 'truncate' or 'matchdc'. ImportError - if slycot routine ab09ad, ab09md, or ab09nd is not found - + If slycot routine ab09ad, ab09md, or ab09nd is not found. ValueError - if there are more unstable modes than any value in orders + If there are more unstable modes than any value in orders. Examples -------- @@ -272,7 +311,7 @@ def balred(sys, orders, method='truncate', alpha=None): raise ValueError("supported methods are 'truncate' or 'matchdc'") elif method == 'truncate': try: - from slycot import ab09md, ab09ad + from slycot import ab09ad, ab09md except ImportError: raise ControlSlycot( "can't find slycot subroutine ab09md or ab09ad") @@ -284,7 +323,7 @@ def balred(sys, orders, method='truncate', alpha=None): # Check for ss system object, need a utility for this? - # TODO: Check for continous or discrete, only continuous supported for now + # TODO: Check for continuous or discrete, only continuous supported for now # if isCont(): # dico = 'C' # elif isDisc(): @@ -304,7 +343,7 @@ def balred(sys, orders, method='truncate', alpha=None): # check if orders is a list or a scalar try: - order = iter(orders) + iter(orders) except TypeError: # if orders is a scalar orders = [orders] @@ -340,27 +379,29 @@ def balred(sys, orders, method='truncate', alpha=None): return rsys -def minreal(sys, tol=None, verbose=True): - ''' +def minimal_realization(sys, tol=None, verbose=True): + """Eliminate uncontrollable or unobservable states. + Eliminates uncontrollable or unobservable states in state-space - models or cancelling pole-zero pairs in transfer functions. The - output sysr has minimal order and the same response - characteristics as the original model sys. + models or canceling pole-zero pairs in transfer functions. The + output `sysr` has minimal order and the same response + characteristics as the original model `sys`. Parameters ---------- - sys: StateSpace or TransferFunction - Original system - tol: real - Tolerance - verbose: bool - Print results if True + sys : `StateSpace` or `TransferFunction` + Original system. + tol : real + Tolerance. + verbose : bool + Print results if True. Returns ------- - rsys: StateSpace or TransferFunction - Cleaned model - ''' + rsys : `StateSpace` or `TransferFunction` + Cleaned model. + + """ sysr = sys.minreal(tol) if verbose: print("{nstates} states have been removed from the model".format( @@ -368,91 +409,196 @@ def minreal(sys, tol=None, verbose=True): return sysr -def era(YY, m, n, nin, nout, r): - """Calculate an ERA model of order `r` based on the impulse-response data - `YY`. +def _block_hankel(Y, m, n): + """Create a block Hankel matrix from impulse response.""" + q, p, _ = Y.shape + YY = Y.transpose(0, 2, 1) # transpose for reshape + + H = np.zeros((q*m, p*n)) + + for r in range(m): + # shift and add row to Hankel matrix + new_row = YY[:, r:r+n, :] + H[q*r:q*(r+1), :] = new_row.reshape((q, p*n)) + + return H + + +def eigensys_realization(arg, r, m=None, n=None, dt=True, transpose=False): + r"""eigensys_realization(YY, r) - .. note:: This function is not implemented yet. + Calculate ERA model based on impulse-response data. + + This function computes a discrete-time system + + .. math:: + + x[k+1] &= A x[k] + B u[k] \\\\ + y[k] &= C x[k] + D u[k] + + of order :math:`r` for a given impulse-response data (see [1]_). + + The function can be called with 2 arguments: + + * ``sysd, S = eigensys_realization(data, r)`` + * ``sysd, S = eigensys_realization(YY, r)`` + + where `data` is a `TimeResponseData` object, `YY` is a 1D or 3D + array, and r is an integer. Parameters ---------- - YY: array - `nout` x `nin` dimensional impulse-response data - m: integer - Number of rows in Hankel matrix - n: integer - Number of columns in Hankel matrix - nin: integer - Number of input variables - nout: integer - Number of output variables - r: integer - Order of model + YY : array_like + Impulse response from which the `StateSpace` model is estimated, 1D + or 3D array. + data : `TimeResponseData` + Impulse response from which the `StateSpace` model is estimated. + r : integer + Order of model. + m : integer, optional + Number of rows in Hankel matrix. Default is 2*r. + n : integer, optional + Number of columns in Hankel matrix. Default is 2*r. + dt : True or float, optional + True indicates discrete time with unspecified sampling time and a + positive float is discrete time with the specified sampling time. + It can be used to scale the `StateSpace` model in order to match the + unit-area impulse response of python-control. Default is True. + transpose : bool, optional + Assume that input data is transposed relative to the standard + :ref:`time-series-convention`. For `TimeResponseData` this parameter + is ignored. Default is False. Returns ------- - sys: StateSpace - A reduced order model sys=ss(Ar,Br,Cr,Dr) + sys : `StateSpace` + State space model of the specified order. + S : array + Singular values of Hankel matrix. Can be used to choose a good `r` + value. + + References + ---------- + .. [1] Samet Oymak and Necmiye Ozay, Non-asymptotic Identification of + LTI Systems from a Single Trajectory. https://arxiv.org/abs/1806.05722 Examples -------- - >>> rsys = era(YY, m, n, nin, nout, r) # doctest: +SKIP + >>> T = np.linspace(0, 10, 100) + >>> _, YY = ct.impulse_response(ct.tf([1], [1, 0.5], True), T) + >>> sysd, _ = ct.eigensys_realization(YY, r=1) + >>> T = np.linspace(0, 10, 100) + >>> response = ct.impulse_response(ct.tf([1], [1, 0.5], True), T) + >>> sysd, _ = ct.eigensys_realization(response, r=1) """ - raise NotImplementedError('This function is not implemented yet.') + if isinstance(arg, TimeResponseData): + YY = np.array(arg.outputs, ndmin=3) + if arg.transpose: + YY = np.transpose(YY) + else: + YY = np.array(arg, ndmin=3) + if transpose: + YY = np.transpose(YY) + + q, p, l = YY.shape + + if m is None: + m = 2*r + if n is None: + n = 2*r + + if m*q < r or n*p < r: + raise ValueError("Hankel parameters are to small") + + if (l-1) < m+n: + raise ValueError("not enough data for requested number of parameters") + + H = _block_hankel(YY[:, :, 1:], m, n+1) # Hankel matrix (q*m, p*(n+1)) + Hf = H[:, :-p] # first p*n columns of H + Hl = H[:, p:] # last p*n columns of H + + U,S,Vh = np.linalg.svd(Hf, True) + Ur =U[:, 0:r] + Vhr =Vh[0:r, :] + + # balanced realizations + Sigma_inv = np.diag(1./np.sqrt(S[0:r])) + Ar = Sigma_inv @ Ur.T @ Hl @ Vhr.T @ Sigma_inv + Br = Sigma_inv @ Ur.T @ Hf[:, 0:p]*dt # dt scaling for unit-area impulse + Cr = Hf[0:q, :] @ Vhr.T @ Sigma_inv + Dr = YY[:, :, 0] + + return StateSpace(Ar, Br, Cr, Dr, dt), S + +def markov(*args, m=None, transpose=False, dt=None, truncate=False): + """markov(Y, U, [, m]) -def markov(Y, U, m=None, transpose=False): - """Calculate the first `m` Markov parameters [D CB CAB ...] - from input `U`, output `Y`. + Calculate Markov parameters [D CB CAB ...] from data. - This function computes the Markov parameters for a discrete time system + This function computes the the first `m` Markov parameters [D CB CAB + ...] for a discrete-time system. .. math:: x[k+1] &= A x[k] + B u[k] \\\\ y[k] &= C x[k] + D u[k] - given data for u and y. The algorithm assumes that that C A^k B = 0 for - k > m-2 (see [1]_). Note that the problem is ill-posed if the length of - the input data is less than the desired number of Markov parameters (a - warning message is generated in this case). + given data for u and y. The algorithm assumes that that C A^k B = 0 + for k > m-2 (see [1]_). Note that the problem is ill-posed if the + length of the input data is less than the desired number of Markov + parameters (a warning message is generated in this case). + + The function can be called with either 1, 2 or 3 arguments: + + * ``H = markov(data)`` + * ``H = markov(data, m)`` + * ``H = markov(Y, U)`` + * ``H = markov(Y, U, m)`` + + where `data` is a `TimeResponseData` object, `YY` is a 1D or 3D + array, and r is an integer. Parameters ---------- Y : array_like - Output data. If the array is 1D, the system is assumed to be single - input. If the array is 2D and transpose=False, the columns of `Y` - are taken as time points, otherwise the rows of `Y` are taken as - time points. + Output data. If the array is 1D, the system is assumed to be + single input. If the array is 2D and `transpose` = False, the columns + of `Y` are taken as time points, otherwise the rows of `Y` are + taken as time points. U : array_like Input data, arranged in the same way as `Y`. + data : `TimeResponseData` + Response data from which the Markov parameters where estimated. + Input and output data must be 1D or 2D array. m : int, optional - Number of Markov parameters to output. Defaults to len(U). + Number of Markov parameters to output. Defaults to len(U). + dt : True of float, optional + True indicates discrete time with unspecified sampling time and a + positive float is discrete time with the specified sampling time. + It can be used to scale the Markov parameters in order to match + the unit-area impulse response of python-control. Default is True + for array_like and dt=data.time[1]-data.time[0] for + `TimeResponseData` as input. + truncate : bool, optional + Do not use first m equation for least squares. Default is False. transpose : bool, optional Assume that input data is transposed relative to the standard - :ref:`time-series-convention`. Default value is False. + :ref:`time-series-convention`. For `TimeResponseData` this parameter + is ignored. Default is False. Returns ------- H : ndarray - First m Markov parameters, [D CB CAB ...] + First m Markov parameters, [D CB CAB ...]. References ---------- .. [1] J.-N. Juang, M. Phan, L. G. Horta, and R. W. Longman, Identification of observer/Kalman filter Markov parameters - Theory and experiments. Journal of Guidance Control and Dynamics, 16(2), - 320-329, 2012. http://doi.org/10.2514/3.21006 - - Notes - ----- - Currently only works for SISO systems. - - This function does not currently comply with the Python Control Library - :ref:`time-series-convention` for representation of time series data. - Use `transpose=False` to make use of the standard convention (this - will be updated in a future release). + 320-329, 2012. https://doi.org/10.2514/3.21006 Examples -------- @@ -462,97 +608,125 @@ def markov(Y, U, m=None, transpose=False): >>> H = ct.markov(Y, U, 3, transpose=False) """ - # Convert input parameters to 2D arrays (if they aren't already) - Umat = np.array(U, ndmin=2) - Ymat = np.array(Y, ndmin=2) - - # If data is in transposed format, switch it around - if transpose: - Umat, Ymat = np.transpose(Umat), np.transpose(Ymat) - # Make sure the system is a SISO system - if Umat.shape[0] != 1 or Ymat.shape[0] != 1: - raise ControlMIMONotImplemented + # Convert input parameters to 2D arrays (if they aren't already) + # Get the system description + if len(args) < 1: + raise ControlArgument("not enough input arguments") + + if isinstance(args[0], TimeResponseData): + data = args[0] + Umat = np.array(data.inputs, ndmin=2) + Ymat = np.array(data.outputs, ndmin=2) + if dt is None: + dt = data.time[1] - data.time[0] + if not np.allclose(np.diff(data.time), dt): + raise ValueError("response time values must be equally " + "spaced.") + transpose = data.transpose + if data.transpose and not data.issiso: + Umat, Ymat = np.transpose(Umat), np.transpose(Ymat) + if len(args) == 2: + m = args[1] + elif len(args) > 2: + raise ControlArgument("too many positional arguments") + else: + if len(args) < 2: + raise ControlArgument("not enough input arguments") + Umat = np.array(args[1], ndmin=2) + Ymat = np.array(args[0], ndmin=2) + if dt is None: + dt = True + if transpose: + Umat, Ymat = np.transpose(Umat), np.transpose(Ymat) + if len(args) == 3: + m = args[2] + elif len(args) > 3: + raise ControlArgument("too many positional arguments") # Make sure the number of time points match if Umat.shape[1] != Ymat.shape[1]: raise ControlDimension( - "Input and output data are of differnent lengths") - n = Umat.shape[1] + "Input and output data are of different lengths") + l = Umat.shape[1] # If number of desired parameters was not given, set to size of input data if m is None: - m = Umat.shape[1] + m = l + + t = 0 + if truncate: + t = m + + q = Ymat.shape[0] # number of outputs + p = Umat.shape[0] # number of inputs # Make sure there is enough data to compute parameters - if m > n: + if m*p > (l-t): warnings.warn("Not enough data for requested number of parameters") + # the algorithm - Construct a matrix of control inputs to invert # - # Original algorithm (with mapping to standard order) - # - # RMM note, 24 Dec 2020: This algorithm sets the problem up correctly - # until the final column of the UU matrix is created, at which point it - # makes some modifications that I don't understand. This version of the - # algorithm does not seem to return the actual Markov parameters for a - # system. - # - # # Create the matrix of (shifted) inputs - # UU = np.transpose(Umat) - # for i in range(1, m-1): - # # Shift previous column down and add a zero at the top - # newCol = np.vstack((0, np.reshape(UU[0:n-1, i-1], (-1, 1)))) - # UU = np.hstack((UU, newCol)) - # - # # Shift previous column down and add a zero at the top - # Ulast = np.vstack((0, np.reshape(UU[0:n-1, m-2], (-1, 1)))) - # - # # Replace the elements of the last column new values (?) - # # Each row gets the sum of the rows above it (?) - # for i in range(n-1, 0, -1): - # Ulast[i] = np.sum(Ulast[0:i-1]) - # UU = np.hstack((UU, Ulast)) - # - # # Solve for the Markov parameters from Y = H @ UU - # # H = [[D], [CB], [CAB], ..., [C A^{m-3} B], [???]] - # H = np.linalg.lstsq(UU, np.transpose(Ymat))[0] - # - # # Markov parameters are in rows => transpose if needed - # return H if transpose else np.transpose(H) - - # - # New algorithm - Construct a matrix of control inputs to invert + # (q,l) = (q,p*m) @ (p*m,l) + # YY.T = H @ UU.T # # This algorithm sets up the following problem and solves it for # the Markov parameters # + # (l,q) = (l,p*m) @ (p*m,q) + # YY = UU @ H.T + # # [ y(0) ] [ u(0) 0 0 ] [ D ] # [ y(1) ] [ u(1) u(0) 0 ] [ C B ] # [ y(2) ] = [ u(2) u(1) u(0) ] [ C A B ] # [ : ] [ : : : : ] [ : ] - # [ y(n-1) ] [ u(n-1) u(n-2) u(n-3) ... u(n-m) ] [ C A^{m-2} B ] + # [ y(l-1) ] [ u(l-1) u(l-2) u(l-3) ... u(l-m) ] [ C A^{m-2} B ] + # + # truncated version t=m, do not use first m equation + # + # [ y(t) ] [ u(t) u(t-1) u(t-2) u(t-m) ] [ D ] + # [ y(t+1) ] [ u(t+1) u(t) u(t-1) u(t-m+1)] [ C B ] + # [ y(t+2) ] = [ u(t+2) u(t+1) u(t) u(t-m+2)] [ C B ] + # [ : ] [ : : : : ] [ : ] + # [ y(l-1) ] [ u(l-1) u(l-2) u(l-3) ... u(l-m) ] [ C A^{m-2} B ] # - # Note: if the number of Markov parameters (m) is less than the size of - # the input/output data (n), then this algorithm assumes C A^{j} B = 0 + # Note: This algorithm assumes C A^{j} B = 0 # for j > m-2. See equation (3) in # # J.-N. Juang, M. Phan, L. G. Horta, and R. W. Longman, Identification # of observer/Kalman filter Markov parameters - Theory and # experiments. Journal of Guidance Control and Dynamics, 16(2), - # 320-329, 2012. http://doi.org/10.2514/3.21006 + # 320-329, 2012. https://doi.org/10.2514/3.21006 # + # Set up the full problem # Create matrix of (shifted) inputs - UU = Umat - for i in range(1, m): - # Shift previous column down and add a zero at the top - new_row = np.hstack((0, UU[i-1, 0:-1])) - UU = np.vstack((UU, new_row)) - UU = np.transpose(UU) + UUT = np.zeros((p*m, l)) + for i in range(m): + # Shift previous column down and keep zeros at the top + UUT[i*p:(i+1)*p, i:] = Umat[:, :l-i] + + # Truncate first t=0 or t=m time steps, transpose the problem for lsq + YY = Ymat[:, t:].T + UU = UUT[:, t:].T + + # Solve for the Markov parameters from YY = UU @ H.T + HT, _, _, _ = np.linalg.lstsq(UU, YY, rcond=None) + H = HT.T/dt # scaling + + H = H.reshape(q, m, p) # output, time*input -> output, time, input + H = H.transpose(0, 2, 1) # output, input, time - # Invert and solve for Markov parameters - YY = np.transpose(Ymat) - H, _, _, _ = np.linalg.lstsq(UU, YY, rcond=None) + # for siso return a 1D array instead of a 3D array + if q == 1 and p == 1: + H = np.squeeze(H) # Return the first m Markov parameters - return H if transpose else np.transpose(H) + return H if not transpose else np.transpose(H) + +# Function aliases +hsvd = hankel_singular_values +balred = balanced_reduction +modred = model_reduction +minreal = minimal_realization +era = eigensys_realization diff --git a/control/nichols.py b/control/nichols.py index 1a5043cd4..98775ddaf 100644 --- a/control/nichols.py +++ b/control/nichols.py @@ -1,29 +1,20 @@ # nichols.py - Nichols plot # -# Contributed by Allan McInnes -# - -"""nichols.py - -Functions for plotting Black-Nichols charts. - -Routines in this module: +# Initial author: Allan McInnes -nichols.nichols_plot aliased as nichols.nichols -nichols.nichols_grid -""" +"""Functions for plotting Black-Nichols charts.""" -import numpy as np import matplotlib.pyplot as plt import matplotlib.transforms +import numpy as np +from . import config +from .ctrlplot import ControlPlot, _get_line_labels, _process_ax_keyword, \ + _process_legend_keywords, _process_line_labels, _update_plot_title from .ctrlutil import unwrap -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'] @@ -34,8 +25,8 @@ def nichols_plot( - data, omega=None, *fmt, grid=None, title=None, - legend_loc='upper left', **kwargs): + data, omega=None, *fmt, grid=None, title=None, ax=None, + label=None, **kwargs): """Nichols plot for a system. Plots a Nichols plot for the system over a (optional) frequency range. @@ -43,32 +34,63 @@ def nichols_plot( Parameters ---------- data : list of `FrequencyResponseData` or `LTI` - List of LTI systems or :class:`FrequencyResponseData` objects. A + List of LTI systems or `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 + Range of frequencies (list or bounds) in rad/sec. + *fmt : `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 + True if the plot should include a Nichols-chart grid. Default is + True and can be set using `config.defaults['nichols.grid']`. + **kwargs : `matplotlib.pyplot.plot` keyword properties, optional Additional keywords passed to `matplotlib` to specify line properties. Returns ------- - lines : array of Line2D - 1-D array of Line2D objects. The size of the array matches - the number of systems and the value of the array is a list of - Line2D objects for that system. + cplt : `ControlPlot` object + Object containing the data that were plotted. See `ControlPlot` + for more detailed information. + cplt.lines : Array of `matplotlib.lines.Line2D` objects + Array containing information on each line in the plot. The shape + of the array matches the subplots shape and the value of the array + is a list of Line2D objects in that subplot. + cplt.axes : 2D ndarray of `matplotlib.axes.Axes` + Axes for each subplot. + cplt.figure : `matplotlib.figure.Figure` + Figure containing the plot. + cplt.legend : 2D array of `matplotlib.legend.Legend` + Legend object(s) contained in the plot. + + Other Parameters + ---------------- + ax : `matplotlib.axes.Axes`, optional + The matplotlib axes to draw the figure on. If not specified and + the current figure has a single axes, that axes is used. + Otherwise, a new figure is created. + label : str or array_like of str, optional + If present, replace automatically generated label(s) with given + label(s). If sysdata is a list, strings should be specified for each + system. + legend_loc : int or str, optional + Include a legend in the given location. Default is 'upper left', + with no legend for a single response. Use False to suppress legend. + rcParams : dict + Override the default parameters used for generating plots. + Default is set by `config.defaults['ctrlplot.rcParams']`. + show_legend : bool, optional + Force legend to be shown if True or hidden if False. If + None, then show legend when there is more than one line on the + plot or `legend_loc` has been specified. + title : str, optional + Set the title of the plot. Defaults to plot type and system name(s). + """ # Get parameter values grid = config._get_param('nichols', 'grid', grid, True) - freqplot_rcParams = config._get_param( - 'freqplot', 'rcParams', kwargs, _freqplot_defaults, pop=True) + label = _process_line_labels(label) + rcParams = config._get_param('ctrlplot', 'rcParams', kwargs, pop=True) # If argument was a singleton, turn it into a list if not isinstance(data, (tuple, list)): @@ -83,6 +105,10 @@ def nichols_plot( if any([resp.ninputs > 1 or resp.noutputs > 1 for resp in data]): raise NotImplementedError("MIMO Nichols plots not implemented") + fig, ax_nichols = _process_ax_keyword(ax, rcParams=rcParams, squeeze=True) + legend_loc, _, show_legend = _process_legend_keywords( + kwargs, None, 'upper left') + # Create a list of lines for the output out = np.empty(len(data), dtype=object) @@ -97,41 +123,43 @@ def nichols_plot( x = unwrap(np.degrees(phase), 360) y = 20*np.log10(mag) - # Decide on the system name + # Decide on the system name and label sysname = response.sysname if response.sysname is not None \ - else f"Unknown-{idx_sys}" + else f"Unknown-sys_{idx}" + label_ = sysname if label is None else label[idx] # Generate the plot - with plt.rc_context(freqplot_rcParams): - out[idx] = plt.plot(x, y, *fmt, label=sysname, **kwargs) + out[idx] = ax_nichols.plot(x, y, *fmt, label=label_, **kwargs) # Label the plot axes - plt.xlabel('Phase [deg]') - plt.ylabel('Magnitude [dB]') + ax_nichols.set_xlabel('Phase [deg]') + ax_nichols.set_ylabel('Magnitude [dB]') # Mark the -180 point - plt.plot([-180], [0], 'r+') + ax_nichols.plot([-180], [0], 'r+') # Add grid if grid: - nichols_grid() + nichols_grid(ax=ax_nichols) # 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) + if show_legend == True or (show_legend != False and len(labels) > 1): + with plt.rc_context(rcParams): + legend = ax_nichols.legend(lines, labels, loc=legend_loc) + else: + legend = None # Add the title - if title is None: - title = "Nichols plot for " + ", ".join(labels) - with plt.rc_context(freqplot_rcParams): - plt.suptitle(title) + if ax is None: + if title is None: + title = "Nichols plot for " + ", ".join(labels) + _update_plot_title( + title, fig=fig, rcParams=rcParams, use_existing=False) - return out + return ControlPlot(out, ax_nichols, fig, legend=legend) def _inner_extents(ax): @@ -146,39 +174,40 @@ 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. + """Plot Nichols chart grid. - Plots a Nichols chart grid on the current axis, or creates a new chart + Plots a Nichols chart grid on the current axes, or creates a new chart if no plot already exists. Parameters ---------- - cl_mags : array-like (dB), optional + cl_mags : array_like (dB), optional Array of closed-loop magnitudes defining the iso-gain lines on a custom Nichols chart. - cl_phases : array-like (degrees), optional + cl_phases : array_like (degrees), optional Array of closed-loop phases defining the iso-phase lines on a custom Nichols chart. Must be in the range -360 < cl_phases < 0 line_style : string, optional :doc:`Matplotlib linestyle \ - ` - ax : matplotlib.axes.Axes, optional - Axes to add grid to. If ``None``, use ``plt.gca()``. - label_cl_phases: bool, optional - If True, closed-loop phase lines will be labelled. + `. + ax : `matplotlib.axes.Axes`, optional + Axes to add grid to. If None, use `matplotlib.pyplot.gca`. + label_cl_phases : bool, optional + If True, closed-loop phase lines will be labeled. Returns ------- - cl_mag_lines: list of `matplotlib.line.Line2D` - The constant closed-loop gain contours - cl_phase_lines: list of `matplotlib.line.Line2D` - The constant closed-loop phase contours - cl_mag_labels: list of `matplotlib.text.Text` - mcontour labels; each entry corresponds to the respective entry - in ``cl_mag_lines`` - cl_phase_labels: list of `matplotlib.text.Text` - ncontour labels; each entry corresponds to the respective entry - in ``cl_phase_lines`` + cl_mag_lines : list of `matplotlib.line.Line2D` + The constant closed-loop gain contours. + cl_phase_lines : list of `matplotlib.line.Line2D` + The constant closed-loop phase contours. + cl_mag_labels : list of `matplotlib.text.Text` + Magnitude contour labels; each entry corresponds to the respective + entry in `cl_mag_lines`. + cl_phase_labels : list of `matplotlib.text.Text` + Phase contour labels; each entry corresponds to the respective entry + in `cl_phase_lines`. + """ if ax is None: ax = plt.gca() @@ -311,15 +340,16 @@ def closed_loop_contours(Gcl_mags, Gcl_phases): Parameters ---------- - Gcl_mags : array-like + Gcl_mags : array_like Array of magnitudes of the contours - Gcl_phases : array-like + Gcl_phases : array_like Array of phases in radians of the contours Returns ------- contours : complex array Array of complex numbers corresponding to the contours. + """ # Compute the contours in Gcl-space. Since we're given closed-loop # magnitudes and phases, this is just a case of converting them into @@ -337,7 +367,7 @@ def m_circles(mags, phase_min=-359.75, phase_max=-0.25): Parameters ---------- - mags : array-like + mags : array_like Array of magnitudes in dB of the M-circles phase_min : degrees Minimum phase in degrees of the N-circles @@ -348,6 +378,7 @@ def m_circles(mags, phase_min=-359.75, phase_max=-0.25): ------- contours : complex array Array of complex numbers corresponding to the contours. + """ # Convert magnitudes and phase range into a grid suitable for # building contours @@ -363,7 +394,7 @@ def n_circles(phases, mag_min=-40.0, mag_max=12.0): Parameters ---------- - phases : array-like + phases : array_like Array of phases in degrees of the N-circles mag_min : dB Minimum magnitude in dB of the N-circles @@ -374,6 +405,7 @@ def n_circles(phases, mag_min=-40.0, mag_max=12.0): ------- contours : complex array Array of complex numbers corresponding to the contours. + """ # Convert phases and magnitude range into a grid suitable for # building contours diff --git a/control/nlsys.py b/control/nlsys.py index c154c0818..30f06f819 100644 --- a/control/nlsys.py +++ b/control/nlsys.py @@ -1,108 +1,104 @@ # nlsys.py - input/output system module # RMM, 28 April 2019 # -# Additional features to add +# 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 -# +# * 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.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. +"""This module contains the `NonlinearIOSystem` class that +represents (possibly nonlinear) input/output systems. The +`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 operating points and +linearizations. """ +from warnings import warn + import numpy as np import scipy as sp -import copy -from warnings import warn 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 +from .config import _process_param, _process_kwargs +from .iosys import InputOutputSystem, _parse_spec, _process_iosys_keywords, \ + common_timebase, iosys_repr, isctime, isdtime +from .timeresp import TimeResponseData, TimeResponseList, \ + _check_convert_array, _process_time_response, _timeresp_aliases __all__ = ['NonlinearIOSystem', 'InterconnectedSystem', 'nlsys', 'input_output_response', 'find_eqpt', 'linearize', - 'interconnect', 'connection_table'] + 'interconnect', 'connection_table', 'OperatingPoint', + 'find_operating_point'] class NonlinearIOSystem(InputOutputSystem): - """Nonlinear I/O system. + """Nonlinear input/output system model. - 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.) + Creates an `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. Nonlinear I/O + systems are usually created with the `nlsys` factory + function. Parameters ---------- updfcn : callable Function returning the state update function - `updfcn(t, x, u, params) -> array` + ``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. + where `t` is a float representing the current time, `x` is a 1-D + array with shape (nstates,), `u` is a 1-D array with shape + (ninputs,), 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`. + where the arguments are the same as for `updfcn`. - 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`. + inputs, outputs, states : int, list of str or None, optional + Description of the system inputs, outputs, and states. See + `control.nlsys` for more details. - states : int, list of str, or None, optional - Description of the system states. Same format as `inputs`. + 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 + * `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 + Attributes + ---------- + ninputs, noutputs, nstates : int + Number of input, output and state variables. + shape : tuple + 2-tuple of I/O system dimension, (noutputs, ninputs). + input_labels, output_labels, state_labels : list of str + Names for the input, output, and state variables. 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. + System name. See Also -------- - InputOutputSystem : Input/output system class. + nlsys, InputOutputSystem Notes ----- - The :class:`~control.InputOuputSystem` class (and its subclasses) makes - use of two special methods for implementing much of the work of the class: + The `InputOutputSystem` 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 @@ -132,14 +128,19 @@ def __init__(self, updfcn, outfcn=None, params=None, **kwargs): if updfcn is None: if self.nstates is None: self.nstates = 0 + self.updfcn = lambda t, x, u, params: np.zeros(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: + if self.noutputs == 0: + self.outfcn = lambda t, x, u, params: np.zeros(0) + elif self.noutputs is None and self.nstates is not None: self.noutputs = self.nstates + if len(self.output_index) == 0: + # Use state names for outputs + self.output_index = self.state_index elif self.noutputs is not None and self.noutputs == self.nstates: # Number of outputs = number of states => all is OK pass @@ -151,17 +152,21 @@ def __init__(self, updfcn, outfcn=None, params=None, **kwargs): self._current_params = {} if params is None else params.copy() def __str__(self): - return f"{InputOutputSystem.__str__(self)}\n\n" + \ + out = f"{InputOutputSystem.__str__(self)}" + if len(self.params) > 0: + out += f"\nParameters: {[p for p in self.params.keys()]}" + out += "\n\n" + \ f"Update: {self.updfcn}\n" + \ f"Output: {self.outfcn}" + return out # 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 + """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. + 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 ---------- @@ -169,14 +174,15 @@ def __call__(sys, u, params=None, squeeze=None): 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']. + 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']`. """ # Make sure the call makes sense - if not sys._isstatic(): + if sys.nstates != 0: raise TypeError( "function evaluation is only supported for static " "input/output systems") @@ -187,14 +193,14 @@ def __call__(sys, u, params=None, squeeze=None): # 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) + out = _process_time_response( + out, issiso=sys.issiso(), squeeze=squeeze) return out 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) + other = _convert_to_iosystem(other) if not isinstance(other, InputOutputSystem): return NotImplemented @@ -204,7 +210,7 @@ def __mul__(self, other): "can't multiply systems with incompatible inputs and outputs") # Make sure timebase are compatible - dt = common_timebase(other.dt, self.dt) + common_timebase(other.dt, self.dt) # Create a new system to handle the composition inplist = [(0, i) for i in range(other.ninputs)] @@ -226,7 +232,7 @@ def __mul__(self, other): def __rmul__(self, other): """Pre-multiply an input/output systems by a scalar/matrix""" # Convert other to an I/O system if needed - other = _convert_static_iosystem(other) + other = _convert_to_iosystem(other) if not isinstance(other, InputOutputSystem): return NotImplemented @@ -236,7 +242,7 @@ def __rmul__(self, other): "inputs and outputs") # Make sure timebase are compatible - dt = common_timebase(self.dt, other.dt) + common_timebase(self.dt, other.dt) # Create a new system to handle the composition inplist = [(0, i) for i in range(self.ninputs)] @@ -258,7 +264,7 @@ def __rmul__(self, other): 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) + other = _convert_to_iosystem(other) if not isinstance(other, InputOutputSystem): return NotImplemented @@ -279,7 +285,7 @@ def __add__(self, other): def __radd__(self, other): """Parallel addition of input/output system to a compatible object.""" # Convert other to an I/O system if needed - other = _convert_static_iosystem(other) + other = _convert_to_iosystem(other) if not isinstance(other, InputOutputSystem): return NotImplemented @@ -300,14 +306,14 @@ def __radd__(self, other): def __sub__(self, other): """Subtract two input/output systems (parallel interconnection)""" # Convert other to an I/O system if needed - other = _convert_static_iosystem(other) + other = _convert_to_iosystem(other) if not isinstance(other, InputOutputSystem): return NotImplemented # 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 " + "can't subtract systems with incompatible numbers of " "inputs or outputs") ninputs = self.ninputs noutputs = self.noutputs @@ -324,7 +330,7 @@ def __sub__(self, other): def __rsub__(self, other): """Parallel subtraction of I/O system to a compatible object.""" # Convert other to an I/O system if needed - other = _convert_static_iosystem(other) + other = _convert_to_iosystem(other) if not isinstance(other, InputOutputSystem): return NotImplemented return other - self @@ -334,7 +340,7 @@ def __neg__(self): if self.ninputs is None or self.noutputs is None: raise ValueError("Can't determine number of inputs or outputs") - # Create a new selftem to hold the negation + # Create a new system 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( @@ -350,7 +356,11 @@ def __truediv__(self, other): else: return NotImplemented - def _update_params(self, params, warning=False): + # Determine if a system is static (memoryless) + def _isstatic(self): + return self.nstates == 0 + + def _update_params(self, params): # Update the current parameter values self._current_params = self.params.copy() if params: @@ -361,26 +371,25 @@ def _rhs(self, t, x, u): 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`. + user-friendly interface you may want to use `dynamics`. """ - xdot = self.updfcn(t, x, u, self._current_params) \ - if self.updfcn is not None else [] - return np.array(xdot).reshape((-1,)) + return np.asarray( + self.updfcn(t, x, u, self._current_params)).reshape(-1) def dynamics(self, t, x, u, params=None): - """Compute the dynamics of a differential or difference equation. + """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 + right hand side of the dynamical system. If the system is a + continuous-time system, returns the time derivative:: - dx/dt = f(t, x, u[, params]) + dx/dt = updfcn(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`: + where `updfcn` is the system's (possibly nonlinear) update 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] = updfcn(t, x[t], u[t][, params]) where `t` is a scalar. @@ -390,20 +399,22 @@ def dynamics(self, t, x, u, params=None): Parameters ---------- t : float - the time at which to evaluate + Time at which to evaluate. x : array_like - current state + Current state. u : array_like - input + Current input. params : dict, optional - system parameter values + System parameter values. Returns ------- dx/dt or x[t+dt] : ndarray + """ self._update_params(params) - return self._rhs(t, x, u) + return self._rhs( + t, np.asarray(x).reshape(-1), np.asarray(u).reshape(-1)) def _out(self, t, x, u): """Evaluate the output of a system at a given state, input, and time @@ -411,68 +422,74 @@ def _out(self, t, x, u): 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`. + `output`. """ - y = self.outfcn(t, x, u, self._current_params) \ - if self.outfcn is not None else x - return np.array(y).reshape((-1,)) + # + # To allow lazy evaluation of the system size, we allow for the + # possibility that noutputs is left unspecified when the system + # is created => we have to check for that case here (and return + # the system state or a portion of it). + # + if self.outfcn is None: + return x if self.noutputs is None else x[:self.noutputs] + else: + return np.asarray( + self.outfcn(t, x, u, self._current_params)).reshape(-1) def output(self, t, x, u, params=None): - """Compute the output of the system + """Compute the output of the system. Given time `t`, input `u` and state `x`, returns the output of the - system: + system:: - y = g(t, x, u[, params]) + y = outfcn(t, x, u[, params]) The inputs `x` and `u` must be of the correct length. Parameters ---------- t : float - the time at which to evaluate + The time at which to evaluate. x : array_like - current state + Current state. u : array_like - input + Current input. params : dict, optional - system parameter values + System parameter values. Returns ------- y : ndarray + """ self._update_params(params) - return self._out(t, x, u) + return self._out( + t, np.asarray(x).reshape(-1), np.asarray(u).reshape(-1)) def feedback(self, other=1, sign=-1, params=None): - """Feedback interconnection between two input/output systems + """Feedback interconnection between two I/O 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. + other : `InputOutputSystem` + System in the feedback path. + + sign : float, optional + Gain to use in feedback path. Defaults to -1. + + params : dict, optional + Parameter values for the overall system. Passed to the + evaluation functions for the system as default values, + overriding defaults for the individual systems. Returns ------- - out: InputOutputSystem - - Raises - ------ - ValueError - if the inputs, outputs, or timebases of the systems are - incompatible. + `NonlinearIOSystem` """ # Convert sys2 to an I/O system if needed - other = _convert_static_iosystem(other) + other = _convert_to_iosystem(other) # Make sure systems can be interconnected if self.noutputs != other.ninputs or other.noutputs != self.ninputs: @@ -490,7 +507,7 @@ def feedback(self, other=1, sign=-1, params=None): (self, other), inplist=inplist, outlist=outlist, params=params, dt=dt) - # Set up the connecton map manually + # Set up the connection map manually newsys.set_connect_map(np.block( [[np.zeros((self.ninputs, self.noutputs)), sign * np.eye(self.ninputs, other.noutputs)], @@ -501,42 +518,38 @@ def feedback(self, other=1, sign=-1, params=None): # 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): + def linearize(self, x0, u0=None, t=0, params=None, eps=1e-6, + 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. + Return the linearization of an input/output system at a given + operating point (or state and input value) as a `StateSpace` system. + See `linearize` for complete documentation. """ - from .statesp import StateSpace - # - # If the linearization is not defined by the subclass, perform a - # numerical linearization use the `_rhs()` and `_out()` member - # functions. + # Default method: if the linearization is not defined by the + # subclass, perform a numerical linearization use the `_rhs()` and + # `_out()` member functions. # + from .statesp import StateSpace - # If x0 and u0 are specified as lists, concatenate the elements - x0 = _concatenate_list_elements(x0, 'x0') - u0 = _concatenate_list_elements(u0, 'u0') + # Allow first argument to be an operating point + if isinstance(x0, OperatingPoint): + u0 = x0.inputs if u0 is None else u0 + x0 = x0.states + elif u0 is None: + u0 = 0 - # Figure out dimensions if they were not specified. - nstates = _find_size(self.nstates, x0) - ninputs = _find_size(self.ninputs, u0) + # Process nominal states and inputs + x0, nstates = _process_vector_argument(x0, "x0", self.nstates) + u0, ninputs = _process_vector_argument(u0, "u0", self.ninputs) - # 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 + # Update the current parameters (prior to calling _out()) + self._update_params(params) # 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) + noutputs = _find_size(self.noutputs, self._out(t, x0, u0), "outputs") # Compute the nominal value of the update law and output F0 = self._rhs(t, x0, u0) @@ -568,8 +581,6 @@ def linearize(self, x0, u0, t=0, params=None, eps=1e-6, # Set the system name, inputs, outputs, and states 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 StateSpace(linsys, **kwargs) @@ -579,14 +590,60 @@ class InterconnectedSystem(NonlinearIOSystem): """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 + input/output systems. The system 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 + The `interconnect` factory function should be used to create an interconnected I/O system since it performs additional argument processing and checking. + Parameters + ---------- + syslist : list of `NonlinearIOSystem` + List of state space systems to interconnect. + connections : list of connections + Description of the internal connections between the subsystem. See + `interconnect` for details. + inplist, outlist : list of input and output connections + Description of the inputs and outputs for the overall system. See + `interconnect` for details. + inputs, outputs, states : int, list of str or None, optional + Description of the system inputs, outputs, and states. See + `control.nlsys` for more details. + params : dict, optional + Parameter values for the systems. Passed to the evaluation functions + for the system as default values, overriding internal defaults. + connection_type : str + Type of connection: 'explicit' (or None) for explicitly listed + set of connections, 'implicit' for connections made via signal names. + + Attributes + ---------- + ninputs, noutputs, nstates : int + Number of input, output and state variables. + shape : tuple + 2-tuple of I/O system dimension, (noutputs, ninputs). + name : string, optional + System name. + connect_map : 2D array + Mapping of subsystem outputs to subsystem inputs. + input_map : 2D array + Mapping of system inputs to subsystem inputs. + output_map : 2D array + Mapping of (stacked) subsystem outputs and inputs to system outputs. + input_labels, output_labels, state_labels : list of str + Names for the input, output, and state variables. + input_offset, output_offset, state_offset : list of int + Offset to the subsystem inputs, outputs, and states in the overall + system input, output, and state arrays. + syslist_index : dict + Index of the subsystem with key given by the name of the subsystem. + + See Also + -------- + interconnect, NonlinearIOSystem, LinearICSystem + """ def __init__(self, syslist, connections=None, inplist=None, outlist=None, params=None, warn_duplicate=None, connection_type=None, @@ -704,12 +761,17 @@ def __init__(self, syslist, connections=None, inplist=None, outlist=None, if outputs is None and outlist is not None: outputs = len(outlist) + if params is None: + params = {} + for sys in self.syslist: + params = params | sys.params + # Create updfcn and outfcn def updfcn(t, x, u, params): - self.update_params(params) + self._update_params(params) return self._rhs(t, x, u) def outfcn(t, x, u, params): - self.update_params(params) + self._update_params(params) return self._out(t, x, u) # Initialize NonlinearIOSystem object @@ -767,13 +829,78 @@ def outfcn(t, x, u, params): index + "; combining with previous entries") self.output_map[index + j, ylist_index] += gain - def _update_params(self, params, warning=False): + def __str__(self): + import textwrap + out = InputOutputSystem.__str__(self) + + out += f"\n\nSubsystems ({len(self.syslist)}):\n" + for sys in self.syslist: + out += "\n".join(textwrap.wrap( + iosys_repr(sys, format='info'), width=78, + initial_indent=" * ", subsequent_indent=" ")) + "\n" + + # Build a list of input, output, and inpout signals + input_list, output_list, inpout_list = [], [], [] + for sys in self.syslist: + input_list += [sys.name + "." + lbl for lbl in sys.input_labels] + output_list += [sys.name + "." + lbl for lbl in sys.output_labels] + inpout_list = input_list + output_list + + # Define a utility function to generate the signal + def cxn_string(signal, gain, first): + if gain == 1: + return (" + " if not first else "") + f"{signal}" + elif gain == -1: + return (" - " if not first else "-") + f"{signal}" + elif gain > 0: + return (" + " if not first else "") + f"{gain} * {signal}" + elif gain < 0: + return (" - " if not first else "-") + \ + f"{abs(gain)} * {signal}" + + out += "\nConnections:\n" + for i in range(len(input_list)): + first = True + cxn = f"{input_list[i]} <- " + if np.any(self.connect_map[i]): + for j in range(len(output_list)): + if self.connect_map[i, j]: + cxn += cxn_string( + output_list[j], self.connect_map[i,j], first) + first = False + if np.any(self.input_map[i]): + for j in range(len(self.input_labels)): + if self.input_map[i, j]: + cxn += cxn_string( + self.input_labels[j], self.input_map[i, j], first) + first = False + out += "\n".join(textwrap.wrap( + cxn, width=78, initial_indent=" * ", + subsequent_indent=" ")) + "\n" + + out += "\nOutputs:" + for i in range(len(self.output_labels)): + first = True + cxn = f"{self.output_labels[i]} <- " + if np.any(self.output_map[i]): + for j in range(len(inpout_list)): + if self.output_map[i, j]: + cxn += cxn_string( + output_list[j], self.output_map[i, j], first) + first = False + out += "\n" + "\n".join(textwrap.wrap( + cxn, width=78, initial_indent=" * ", + subsequent_indent=" ")) + + return out + + def _update_params(self, params): 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) + sys._update_params(local) def _rhs(self, t, x, u): # Make sure state and input are vectors @@ -810,6 +937,7 @@ def _out(self, t, x, u): # Make the full set of subsystem outputs to system output return self.output_map @ ylist + # Find steady state (static) inputs and outputs def _compute_static_io(self, t, x, u): # Figure out the total number of inputs and outputs (ninputs, noutputs) = self.connect_map.shape @@ -966,11 +1094,10 @@ def set_output_map(self, output_map): self.noutputs = output_map.shape[0] def unused_signals(self): - """Find unused subsystem inputs and outputs + """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. @@ -1005,18 +1132,18 @@ def unused_signals(self): {outputs[i][:2]: outputs[i][2] for i in unused_sysout}) def connection_table(self, show_names=False, column_width=32): - """Print table of connections inside an interconnected system model. + """Table of connections inside an interconnected system. - Intended primarily for :class:`InterconnectedSystems` that have been + Intended primarily for `InterconnectedSystem`'s 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`. + 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 `interconnect`. column_width : int, optional Character width of printed columns. @@ -1031,6 +1158,7 @@ def connection_table(self, show_names=False, column_width=32): e | input | C u | C | P y | P | output + """ print('signal'.ljust(10) + '| source'.ljust(column_width) + \ @@ -1104,13 +1232,14 @@ def _find_outputs_by_basename(self, basename): for sig, isig in sys.output_index.items() if sig == (basename)} + # TODO: change to internal function? (not sure users need to see this) def check_unused_signals( - self, ignore_inputs=None, ignore_outputs=None, warning=True): - """Check for unused subsystem inputs and outputs + self, ignore_inputs=None, ignore_outputs=None, print_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. + unused input and output signal descriptions. If `warning` is + True and any unused inputs or outputs are found, emit a warning. Parameters ---------- @@ -1128,13 +1257,16 @@ def check_unused_signals( If the 'sig' form is used, all subsystem outputs with that name are considered ignored. + print_warning : bool, optional + If True, print a warning listing any unused signals. + Returns ------- - dropped_inputs: list of tuples + 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 + dropped_outputs : list of tuples A list of the dropped output signals, with each element of the list in the form of (osys, osig). @@ -1184,25 +1316,25 @@ def check_unused_signals( 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: + if print_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: + if print_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: + if print_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: + if print_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)) @@ -1211,39 +1343,42 @@ def check_unused_signals( return dropped_inputs, dropped_outputs -def nlsys( - updfcn, outfcn=None, inputs=None, outputs=None, states=None, **kwargs): +def nlsys(updfcn, outfcn=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. + Creates an `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 + updfcn : callable (or `StateSpace`) Function returning the state update function - `updfcn(t, x, u, params) -> array` + ``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 + with shape (ninputs,), `t` is a float representing the current time, and `params` is a dict containing the values of parameters used by the function. + If a `StateSpace` system is passed as the update function, + then a nonlinear I/O system is created that implements the linear + dynamics of the state space system. + outfcn : callable Function returning the output at the given state - `outfcn(t, x, u, params) -> array` + ``outfcn(t, x, u, params) -> array`` - where the arguments are the same as for `upfcn`. + where the arguments are the same as for `updfcn`. 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 + 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. @@ -1258,25 +1393,30 @@ def nlsys( 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 + * `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. + generic name 'sys[id]' 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. + Parameter values for the system. Passed to the evaluation functions + for the system as default values, overriding internal defaults. Returns ------- - sys : :class:`NonlinearIOSystem` + sys : `NonlinearIOSystem` Nonlinear input/output system. + Other Parameters + ---------------- + input_prefix, output_prefix, state_prefix : string, optional + Set the prefix for input, output, and state signals. Defaults = + 'u', 'y', 'x'. + See Also -------- ss, tf @@ -1284,7 +1424,7 @@ def nlsys( Examples -------- >>> def kincar_update(t, x, u, params): - ... l = params.get('l', 1) # wheelbase + ... l = params['l'] # wheelbase ... return np.array([ ... np.cos(x[2]) * u[0], # x velocity ... np.sin(x[2]) * u[0], # y velocity @@ -1295,20 +1435,46 @@ def nlsys( ... return x[0:2] # x, y position >>> >>> kincar = ct.nlsys( - ... kincar_update, kincar_output, states=3, inputs=2, outputs=2) + ... kincar_update, kincar_output, states=3, inputs=2, outputs=2, + ... params={'l': 1}) >>> >>> 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) + from .iosys import _extended_system_name + from .statesp import StateSpace + + if isinstance(updfcn, StateSpace): + sys_ss = updfcn + kwargs['inputs'] = kwargs.get('inputs', sys_ss.input_labels) + kwargs['outputs'] = kwargs.get('outputs', sys_ss.output_labels) + kwargs['states'] = kwargs.get('states', sys_ss.state_labels) + kwargs['name'] = kwargs.get('name', _extended_system_name( + sys_ss.name, prefix_suffix_name='converted')) + + sys_nl = NonlinearIOSystem( + lambda t, x, u, params: + sys_ss.A @ np.atleast_1d(x) + sys_ss.B @ np.atleast_1d(u), + lambda t, x, u, params: + sys_ss.C @ np.atleast_1d(x) + sys_ss.D @ np.atleast_1d(u), + **kwargs) + + if sys_nl.nstates != sys_ss.nstates or sys_nl.shape != sys_ss.shape: + raise ValueError( + "new input, output, or state specification " + "doesn't match system size") + + return sys_nl + else: + return NonlinearIOSystem(updfcn, outfcn, **kwargs) 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): + sys, timepts=None, inputs=0., initial_state=0., params=None, + ignore_errors=False, transpose=False, return_states=False, + squeeze=None, solve_ivp_kwargs=None, evaluation_times='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 @@ -1316,103 +1482,119 @@ def input_output_response( Parameters ---------- - sys : InputOutputSystem - Input/output system to simulate. - - T : array-like + sys : `NonlinearIOSystem` or list of `NonlinearIOSystem` + I/O system(s) for which input/output response is simulated. + timepts (or 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 + inputs (or U) : array_like, list, or number, optional + Input array giving input at each time in `timepts` (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. + initial_state (or 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 + evaluation_times (or 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). - + Defaults to `timepts`. + return_states (or return_x) : bool, optional + If True, return the state vector when assigning to a tuple. See + `forced_response` for more details. If True, return the values of + the state at each time Default is False. + params : dict, optional + Parameter values for the system. Passed to the evaluation functions + 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']. + 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: + response : `TimeResponseData` + Time response data object representing the input/output response. + When accessed as a tuple, returns ``(time, outputs)`` or ``(time, + outputs, states`` if `return_x` is True. If the input/output system + signals are named, these names will be used as labels for the time + response. If `sys` is a list of systems, returns a `TimeResponseList` + object. Results can be plotted using the `~TimeResponseData.plot` + method. See `TimeResponseData` for more detailed information. + response.time : array + Time values of the output. + response.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). + response.states : array + Time evolution of the state vector, represented as a 2D array + indexed by state and time. + response.inputs : array + Input(s) to the system, indexed by input and time. + response.params : dict + Parameters values used for the simulation. - * 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. - - * params (dict): Parameters values used for the simulation. - - 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 + Other Parameters ---------------- + ignore_errors : bool, optional + If False (default), errors during computation of the trajectory + will raise a `RuntimeError` exception. If True, do not raise + an exception and instead set `response.success` to False and + place an error message in `response.message`. solve_ivp_method : str, optional - Set the method used by :func:`scipy.integrate.solve_ivp`. Defaults + Set the method used by `scipy.integrate.solve_ivp`. Defaults to 'RK45'. solve_ivp_kwargs : dict, optional - Pass additional keywords to :func:`scipy.integrate.solve_ivp`. + Pass additional keywords to `scipy.integrate.solve_ivp`. + transpose : bool, default=False + If True, transpose all input and output arrays (for backward + compatibility with MATLAB and `scipy.signal.lsim`). Raises ------ TypeError If the system is not an input/output system. ValueError - If time step does not match sampling time (for discrete time systems). + 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. + 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. + + 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. """ # # Process keyword arguments # + _process_kwargs(kwargs, _timeresp_aliases) + T = _process_param('timepts', timepts, kwargs, _timeresp_aliases) + U = _process_param('inputs', inputs, kwargs, _timeresp_aliases, sigval=0.) + X0 = _process_param( + 'initial_state', initial_state, kwargs, _timeresp_aliases, sigval=0.) + return_x = _process_param( + 'return_states', return_states, kwargs, _timeresp_aliases, + sigval=False) + # TODO: replace default value of evaluation_times with None? + t_eval = _process_param( + 'evaluation_times', evaluation_times, kwargs, _timeresp_aliases, + sigval='T') # Figure out the method to be used solve_ivp_kwargs = solve_ivp_kwargs.copy() if solve_ivp_kwargs else {} @@ -1432,6 +1614,17 @@ def input_output_response( if kwargs: raise TypeError("unrecognized keyword(s): ", str(kwargs)) + # If passed a list, recursively call individual responses with given T + if isinstance(sys, (list, tuple)): + sysdata, responses = sys, [] + for sys in sysdata: + responses.append(input_output_response( + sys, timepts=T, inputs=U, initial_state=X0, params=params, + transpose=transpose, return_states=return_x, squeeze=squeeze, + evaluation_times=t_eval, solve_ivp_kwargs=solve_ivp_kwargs, + **kwargs)) + return TimeResponseList(responses) + # Sanity checking on the input if not isinstance(sys, NonlinearIOSystem): raise TypeError("System of type ", type(sys), " not valid") @@ -1451,11 +1644,20 @@ def input_output_response( # 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) + # + # Process input argument + # + # The input argument is interpreted very flexibly, allowing the + # use of lists and/or tuples of mixed scalar and vector elements. + # + # Much of the processing here is similar to the processing in + # _process_vector_argument, but applied to a time series. + + # If we were passed a list of inputs, 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 + u = np.array(u) # convert everything 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 @@ -1475,62 +1677,44 @@ def input_output_response( # Save the newly created input vector U = np.vstack(U_elements) + # Figure out the number of inputs + if sys.ninputs is None: + if isinstance(U, np.ndarray): + ninputs = U.shape[0] if U.size > 1 else U.size + else: + ninputs = 1 + else: + ninputs = sys.ninputs + # Make sure the input has the right shape - if sys.ninputs is None or sys.ninputs == 1: + if ninputs is None or ninputs == 1: legal_shapes = [(ntimepts,), (1, ntimepts)] else: - legal_shapes = [(sys.ninputs, ntimepts)] + legal_shapes = [(ninputs, ntimepts)] - U = _check_convert_array(U, legal_shapes, - 'Parameter ``U``: ', squeeze=False) + 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 + # Process initial states + X0, nstates = _process_vector_argument(X0, "X0", sys.nstates) - # 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) + # Update the parameter values (prior to evaluating outfcn) + sys._update_params(params) # 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] + if sys.outfcn is None: + noutputs = nstates if sys.noutputs is None else sys.noutputs else: - noutputs = sys.noutputs + noutputs = np.shape(sys._out(T[0], X0, U[:, 0]))[0] - # Update the parameter values - sys._update_params(params) + if sys.noutputs is not None and sys.noutputs != noutputs: + raise RuntimeError( + f"inconsistent size of outputs; system specified {sys.noutputs}, " + f"output function returned {noutputs}") # # Define a function to evaluate the input at an arbitrary time @@ -1547,8 +1731,8 @@ def ufun(t): 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 + # Check to make sure see if this is a static function + if sys.nstates == 0: # 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... @@ -1583,7 +1767,11 @@ def ivp_rhs(t, x): 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) + message = "solve_ivp failed: " + soln.message + if not ignore_errors: + raise RuntimeError(message) + else: + message = None # Compute inputs and outputs for each time point u = np.zeros((ninputs, len(soln.t))) @@ -1600,7 +1788,7 @@ 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 " + raise ValueError("parameter `t_eval`: time values must be " "equally spaced") # Make sure the sample time matches the given time @@ -1611,11 +1799,11 @@ def ivp_rhs(t, x): # 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") + # 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 " + raise ValueError("Time steps `T` must be equal to " "sampling time") # Compute the solution @@ -1639,7 +1827,7 @@ def ivp_rhs(t, x): u = np.transpose(np.array(u)) # Mark solution as successful - soln.success = True # No way to fail + soln.success, message = True, None # No way to fail else: # Neither ctime or dtime?? raise TypeError("Can't determine system type") @@ -1649,100 +1837,234 @@ def ivp_rhs(t, x): output_labels=sys.output_labels, input_labels=sys.input_labels, state_labels=sys.state_labels, sysname=sys.name, title="Input/output response for " + sys.name, - transpose=transpose, return_x=return_x, squeeze=squeeze) + transpose=transpose, return_x=return_x, squeeze=squeeze, + success=soln.success, message=message) + + +class OperatingPoint(): + """Operating point of nonlinear I/O system. + + The OperatingPoint class stores the operating point of a nonlinear + system, consisting of the state and input vectors for the system. The + main use for this class is as the return object for the + `find_operating_point` function and as an input to the + `linearize` function. + + Parameters + ---------- + states : array + State vector at the operating point. + inputs : array + Input vector at the operating point. + outputs : array, optional + Output vector at the operating point. + result : `scipy.optimize.OptimizeResult`, optional + Result from the `scipy.optimize.root` function, if available. + return_outputs, return_result : bool, optional + If set to True, then when accessed a tuple the output values + and/or result of the root finding function will be returned. + + Notes + ----- + In addition to accessing the elements of the operating point as + attributes, if accessed as a list then the object will return ``(x0, + u0[, y0, res])``, where `y0` and `res` are returned depending on the + `return_outputs` and `return_result` parameters. + + """ + def __init__( + self, states, inputs, outputs=None, result=None, + return_outputs=False, return_result=False): + self.states = states + self.inputs = inputs + + if outputs is None and return_outputs and not return_result: + raise ValueError("return_outputs specified but no outputs value") + self.outputs = outputs + self.return_outputs = return_outputs + + if result is None and return_result: + raise ValueError("return_result specified but no result value") + self.result = result + self.return_result = return_result + + # Implement iter to allow assigning to a tuple + def __iter__(self): + if self.return_outputs and self.return_result: + return iter((self.states, self.inputs, self.outputs, self.result)) + elif self.return_outputs: + return iter((self.states, self.inputs, self.outputs)) + elif self.return_result: + return iter((self.states, self.inputs, self.result)) + else: + return iter((self.states, self.inputs)) + + # Implement (thin) getitem to allow access via legacy indexing + def __getitem__(self, index): + return list(self.__iter__())[index] + + # Implement (thin) len to emulate legacy return value + def __len__(self): + return len(list(self.__iter__())) + + +def find_operating_point( + sys, initial_state=0., inputs=None, outputs=None, t=0, params=None, + input_indices=None, output_indices=None, state_indices=None, + deriv_indices=None, derivs=None, root_method=None, root_kwargs=None, + return_outputs=None, return_result=None, **kwargs): + """Find an operating point for an input/output system. + + An operating point for a nonlinear system is a state and input around + which a nonlinear system operates. This point is most commonly an + equilibrium point for the system, but in some cases a non-equilibrium + operating point can be used. + This function attempts to find an operating point given a specification + for the desired inputs, outputs, states, or state updates of the system. -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. + In its simplest form, `find_operating_point` finds an equilibrium point + given either the desired input or desired output:: - Returns the value of an equilibrium point given the initial state and - either input value or desired output value for the equilibrium point. + xeq, ueq = find_operating_point(sys, x0, u0) + xeq, ueq = find_operating_point(sys, x0, u0, y0) + + The first form finds an equilibrium point for a given input u0 based on + an initial guess x0. The second form fixes the desired output values + and uses x0 and u0 as an initial guess to find the equilibrium point. + If no equilibrium point can be found, the function returns the + operating point that minimizes the state update (state derivative for + continuous-time systems, state difference for discrete-time systems). + + More complex operating points can be found by specifying which states, + inputs, or outputs should be used in computing the operating point, as + well as desired values of the states, inputs, outputs, or state + updates. 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 + sys : `NonlinearIOSystem` + I/O system for which the operating point is sought. + initial_state (or x0) : list of initial state values + Initial guess for the value of the state near the operating point. + inputs (or u0) : list of input values, optional + If `y0` is not specified, sets the 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. + outputs (or y0) : list of output values, optional If specified, sets the desired values of the outputs at the - equilibrium point. + operating point. t : float, optional - Evaluation time, for time-varying systems + 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 + input_indices (or 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 + the specified values in solving for an operating 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 + output_indices (or 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 operating point. All other outputs will be varied. Output indices can be listed in any order. - ix : list of state indices, optional + state_indices (or 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 + specified values in solving for an operating point. All other states will be varied. State indices can be listed in any order. - dx0 : list of update values, optional + derivs (or 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 + instead of the default value for an equilibrium point. + deriv_indices (or 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 + values will be ignored in solving for an operating 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. + fixed at `dx0` in searching for an operating point. + root_method : str, optional + Method to find the operating point. If specified, this parameter + is passed to the `scipy.optimize.root` function. + root_kwargs : dict, optional + Additional keyword arguments to pass `scipy.optimize.root`. + return_outputs : bool, optional + If True, return the value of outputs at the operating point. return_result : bool, optional If True, return the `result` option from the - :func:`scipy.optimize.root` function used to compute the equilibrium - point. + `scipy.optimize.root` function used to compute the + operating 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. + op_point : `OperatingPoint` + The solution represented as an `OperatingPoint` object. The main + attributes are `states` and `inputs`, which represent the state and + input arrays at the operating point. If accessed as a tuple, returns + `states`, `inputs`, and optionally `outputs` and `result` based on the + `return_outputs` and `return_result` parameters. See `OperatingPoint` + for a description of other attributes. + op_point.states : array + State vector at the operating point. + op_point.inputs : array + Input vector at the operating point. + op_point.outputs : array, optional + Output vector at the operating point. 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`. + 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`. + + Operating points are found using the `scipy.optimize.root` + function, which will attempt to find states and inputs that satisfy the + specified constraints. If no solution is found and `return_result` is + False, the returned state and input for the operating point will be + None. If `return_result` is True, then the return values from + `scipy.optimize.root` will be returned (but may not be valid). + If `root_method` is set to 'lm', then the least squares solution (in + the free variables) will be returned. """ from scipy.optimize import root + # Process keyword arguments + aliases = { + 'initial_state': (['x0', 'X0'], []), + 'inputs': (['u0'], []), + 'outputs': (['y0'], []), + 'derivs': (['dx0'], []), + 'input_indices': (['iu'], []), + 'output_indices': (['iy'], []), + 'state_indices': (['ix'], []), + 'deriv_indices': (['idx'], []), + 'return_outputs': ([], ['return_y']), + } + _process_kwargs(kwargs, aliases) + x0 = _process_param( + 'initial_state', initial_state, kwargs, aliases, sigval=0.) + u0 = _process_param('inputs', inputs, kwargs, aliases) + y0 = _process_param('outputs', outputs, kwargs, aliases) + dx0 = _process_param('derivs', derivs, kwargs, aliases) + iu = _process_param('input_indices', input_indices, kwargs, aliases) + iy = _process_param('output_indices', output_indices, kwargs, aliases) + ix = _process_param('state_indices', state_indices, kwargs, aliases) + idx = _process_param('deriv_indices', deriv_indices, kwargs, aliases) + return_outputs = _process_param( + 'return_outputs', return_outputs, kwargs, aliases) + if kwargs: + raise TypeError("unrecognized keyword(s): " + str(kwargs)) + + # Process arguments for the root function + root_kwargs = dict() if root_kwargs is None else root_kwargs + if root_method: + root_kwargs['method'] = root_method + # 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 + x0, nstates = _process_vector_argument(x0, "initial_states", sys.nstates) + u0, ninputs = _process_vector_argument(u0, "inputs", sys.ninputs) + y0, noutputs = _process_vector_argument(y0, "outputs", sys.noutputs) # Make sure the input arguments match the sizes of the system if len(x0) != nstates or \ @@ -1764,7 +2086,7 @@ 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) + result = root(state_rhs, x0, **root_kwargs) z = (result.x, u0, sys._out(t, result.x, u0)) else: @@ -1781,9 +2103,10 @@ def rootfun(z): 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 + # Find roots with (x, u) as free variables + z0 = np.concatenate((x0, u0), axis=0) + result = root(rootfun, z0, **root_kwargs) + x, u = np.split(result.x, [nstates]) z = (x, u, sys._out(t, x, u)) else: @@ -1823,10 +2146,10 @@ def rootfun(z): # 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. + # 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: # @@ -1844,8 +2167,8 @@ def rootfun(z): # * 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. + # `ix`, and `idx` lists that were passed as arguments to + # `find_operating_point` and were processed above. # Get the states and inputs that were not listed as fixed state_vars = (range(nstates) if not len(ix) @@ -1898,7 +2221,7 @@ def rootfun(z): z0 = np.concatenate((x[state_vars], u[input_vars]), axis=0) # Finally, call the root finding function - result = root(rootfun, z0) + result = root(rootfun, z0, **root_kwargs) # Extract out the results and insert into x and u x[state_vars] = result.x[:nstate_vars] @@ -1906,7 +2229,16 @@ def rootfun(z): 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: + if return_result or result.success: + return OperatingPoint( + z[0], z[1], z[2], result, return_outputs, return_result) + else: + # Something went wrong, don't return anything + return OperatingPoint( + None, None, None, result, return_outputs, return_result) + + # TODO: remove code when ready + if not return_outputs: z = z[0:2] # Strip y from result if not desired if return_result: # Return whatever we got, along with the result dictionary @@ -1916,27 +2248,28 @@ def rootfun(z): return z else: # Something went wrong, don't return anything - return (None, None, None) if return_y else (None, None) + return (None, None, None) if return_outputs 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. + Compute the linearization of an I/O system at an operating point (state + and input) and returns a `StateSpace` object. The + operating 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 + sys : `InputOutputSystem` + The system to be linearized. + xeq : array or `OperatingPoint` + The state or operating point at which the linearization will be + evaluated (does not need to be an equilibrium state). + ueq : array, optional The input at which the linearization will be evaluated (does not need - to correspond to an equlibrium state). + to correspond to an equilibrium state). Can be omitted if `xeq` is + an `OperatingPoint`. Defaults to 0. t : float, optional The time at which the linearization will be computed (for time-varying systems). @@ -1945,11 +2278,11 @@ def linearize(sys, xeq, ueq=None, t=0, params=None, **kw): 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 + if `copy_names` is False, a generic name 'sys[id]' 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['iosys.linearized_system_name_prefix'] and - config.defaults['iosys.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 @@ -1957,35 +2290,37 @@ def linearize(sys, xeq, ueq=None, t=0, params=None, **kw): Returns ------- - ss_sys : StateSpace - The linearization of the system, as a :class:`~control.StateSpace` + ss_sys : `StateSpace` + The linearization of the system, as a `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 + Description of the system inputs. If not specified, the original + system inputs are used. See `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): +def _find_size(sysval, vecval, name="system component"): """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") + raise ValueError( + f"inconsistent information to determine size of {name}; " + f"expected {sysval} values, received {len(vecval)}") return len(vecval) # None or 0, which is a valid value for "a (sysval, ) vector of zeros". if not vecval: @@ -1993,7 +2328,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(f"can't determine size of {name}") # Function to create an interconnected system @@ -2005,29 +2340,29 @@ 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.StateSpace`) then the resulting system will be - a linear interconnected I/O system (type :class:`~control.LinearICSystem`) + (type `StateSpace`) then the resulting system will be + a linear interconnected I/O system (type `LinearICSystem`) with the appropriate inputs, outputs, and states. Otherwise, an - interconnected I/O system (type :class:`~control.InterconnectedSystem`) + interconnected I/O system (type `InterconnectedSystem`) will be created. Parameters ---------- - syslist : list of InputOutputSystems - The list of input/output systems to be connected + syslist : list of `NonlinearIOSystem` + The list of (state-based) input/output systems to be connected. connections : list of connections, optional - Description of the internal connections between the subsystems: + 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: + 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)` + 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 @@ -2035,40 +2370,38 @@ def interconnect( 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 a slice, for example, 'sys.sig[i:j]'; or as a base - name `sys.sig` (which matches `sys.sig[i]`). + 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 + 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 + 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 + 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. + matches 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 + 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` + low-level `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: + mapped to the subsystem inputs. The entries for a connection are + of the form:: [input-spec1, input-spec2, ...] @@ -2081,26 +2414,25 @@ def interconnect( 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. + mapped to overall system outputs. The entries for a connection are + of the form:: + + [output-spec1, output-spec2, ...] 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. + `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 + 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 @@ -2108,27 +2440,40 @@ def interconnect( 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. + 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, where is the + value of `config.defaults['iosys.state_name_delim']`. params : dict, optional Parameter values for the systems. Passed to the evaluation functions - for the system as default values, overriding internal defaults. + for the system as default values, overriding internal defaults. If + not specified, defaults to parameters from subsystems. 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 + 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 + * `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. + name 'sys[id]' is generated with a unique integer id. + + Returns + ------- + sys : `InterconnectedSystem` + `NonlinearIOSystem` consisting of the interconnected subsystems. + + Other Parameters + ---------------- + input_prefix, output_prefix, state_prefix : string, optional + Set the prefix for input, output, and state signals. Defaults = + 'u', 'y', 'x'. check_unused : bool, optional If True, check for unused sub-system signals. This check is @@ -2161,15 +2506,14 @@ def interconnect( 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. + 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') @@ -2198,7 +2542,7 @@ def interconnect( ... inplist=['C'], outlist=['P']) A feedback system can also be constructed using the - :func:`~control.summing_block` function and the ability to + `summing_junction` function and the ability to automatically interconnect signals with the same names: >>> P = ct.tf(1, [1, 0], inputs='u', outputs='y') @@ -2211,38 +2555,37 @@ 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.duplicate_system_name_prefix'] - and config.defaults['iosys.duplicate_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 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 + (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 + ``(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 + `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`. + legacy `connect` function, which uses signal indices) and to be + treated as both a `StateSpace` system as well as an + `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, LinearICSystem, _convert_to_statespace - from .xferfcn import TransferFunction + from .statesp import LinearICSystem, StateSpace dt = kwargs.pop('dt', None) # bypass normal 'dt' processing name, inputs, outputs, states, _ = _process_iosys_keywords(kwargs) @@ -2304,7 +2647,7 @@ 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:") + dprint("Pre-processing connections:") new_connections = [] for connection in connections: dprint(f" parsing {connection=}") @@ -2343,7 +2686,7 @@ def interconnect( # dprint(f"Pre-processing input connections: {inplist}") if not isinstance(inplist, list): - dprint(f" converting inplist to list") + dprint(" converting inplist to list") inplist = [inplist] new_inplist, new_inputs = [], [] if inplist_none else inputs @@ -2379,7 +2722,7 @@ def interconnect( new_connection.append((isys, isig, gain)) if len(new_connections) == 0: - # First time we have seen this signal => initalize + # First time we have seen this signal => initialize for cnx in new_connection: new_connections.append([cnx]) if inplist_none: @@ -2404,15 +2747,22 @@ def interconnect( 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') + if isinstance(connection, list): + # Passed a list => create input map + dprint(" detected input list") + signal_list = [] + for spec in connection: + isys, indices, gain = _parse_spec(syslist, spec, 'input') + for isig in indices: + signal_list.append((isys, isig, gain)) + dprint(f" adding input {(isys, isig, gain)} to list") + new_inplist.append(signal_list) + else: + # Passed a single signal name => add individual input(s) + isys, indices, gain = _parse_spec(syslist, connection, 'input') for isig in indices: - dprint(f" adding input {(isys, isig, gain)}") new_inplist.append((isys, isig, gain)) + dprint(f" adding input {(isys, isig, gain)}") inplist, inputs = new_inplist, new_inputs dprint(f" {inplist=}\n {inputs=}") @@ -2425,7 +2775,7 @@ def interconnect( # dprint(f"Pre-processing output connections: {outlist}") if not isinstance(outlist, list): - dprint(f" converting outlist to list") + dprint(" converting outlist to list") outlist = [outlist] new_outlist, new_outputs = [], [] if outlist_none else outputs for iout, connection in enumerate(outlist): @@ -2478,17 +2828,15 @@ def interconnect( 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: + # Utility function to find named output or input signal + def _find_output_or_input_signal(spec): + signal_list = [] 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)) + signal_list.append((osys, osig, gain)) except ValueError: # If not, see if we can find it in inputs isys, indices, gain = _parse_spec( @@ -2497,9 +2845,21 @@ def interconnect( for isig in indices: # Use string form to allow searching input list dprint(f" adding input {(isys, isig, gain)}") - new_outlist.append( + signal_list.append( (syslist[isys].name, syslist[isys].input_labels[isig], gain)) + return signal_list + + if isinstance(connection, list): + # Passed a list => create input map + dprint(" detected output list") + signal_list = [] + for spec in connection: + signal_list += _find_output_or_input_signal(spec) + new_outlist.append(signal_list) + else: + new_outlist += _find_output_or_input_signal(connection) + outlist, outputs = new_outlist, new_outputs dprint(f" {outlist=}\n {outputs=}") @@ -2523,7 +2883,7 @@ def interconnect( if add_unused: # Get all unused signals dropped_inputs, dropped_outputs = newsys.check_unused_signals( - ignore_inputs, ignore_outputs, warning=False) + ignore_inputs, ignore_outputs, print_warning=False) # Add on any unused signals that we aren't ignoring for isys, isig in dropped_inputs: @@ -2551,22 +2911,63 @@ def interconnect( 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) +def _process_vector_argument(arg, name, size): + """Utility function to process vector elements (states, inputs) + + Process state and input arguments to turn them into lists of the + appropriate length. + + Parameters + ---------- + arg : array_like + Value of the parameter passed to the function. Can be a list, + tuple, ndarray, scalar, or None. + name : string + Name of the argument being processed. Used in errors/warnings. + size : int or None + Size of the element. If None, size is determined by arg. + + Returns + ------- + val : array or None + Value of the element, zero-padded to proper length. + nelem : int or None + Number of elements in the returned value. + + Warns + ----- + UserWarning : "{name} too short; padding with zeros" + If argument is too short and last value in arg is not 0. + + """ + # Allow and expand list + if isinstance(arg, (tuple, list)): + val_list = [] + for i, v in enumerate(arg): + v = np.array(v).reshape(-1) # convert to 1D array + val_list += v.tolist() # add elements to list + val = np.array(val_list) + elif np.isscalar(arg) and size is not None: # extend scalars + val = np.ones((size, )) * arg + elif np.isscalar(arg) and size is None: # single scalar + val = np.array([arg]) + elif isinstance(arg, np.ndarray): + val = arg.reshape(-1) # convert to 1D array + else: + val = arg # return what we were given - # Otherwise, do nothing - return X + if size is not None and isinstance(val, np.ndarray) and val.size < size: + # If needed, extend the size of the vector to match desired size + if val[-1] != 0: + warn(f"{name} too short; padding with zeros") + val = np.hstack([val, np.zeros(size - val.size)]) + nelem = _find_size(size, val, name) # determine size + return val, nelem -# Utility function to create an I/O system from a static gain -def _convert_static_iosystem(sys): + +# Utility function to create an I/O system (from number or array) +def _convert_to_iosystem(sys): # If we were given an I/O system, do nothing if isinstance(sys, InputOutputSystem): return sys @@ -2574,33 +2975,33 @@ def _convert_static_iosystem(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) + None, lambda t, x, u, params: sys * u, + outputs=1, inputs=1, dt=None) 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]) + outputs=sys.shape[0], inputs=sys.shape[1], dt=None) def connection_table(sys, show_names=False, column_width=32): - """Print table of connections inside an interconnected system model. + """Print table of connections inside interconnected system. - Intended primarily for :class:`InterconnectedSystems` that have been + Intended primarily for `InterconnectedSystem`'s that have been connected implicitly using signal names. Parameters ---------- - sys : :class:`InterconnectedSystem` - Interconnected system object + sys : `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`. + `interconnect`. column_width : int, optional Character width of printed columns. - Examples -------- >>> P = ct.ss(1,1,1,0, inputs='u', outputs='y', name='P') @@ -2612,8 +3013,13 @@ def connection_table(sys, show_names=False, column_width=32): e | input | C u | C | P y | P | output + """ assert isinstance(sys, InterconnectedSystem), "system must be"\ "an InterconnectedSystem." sys.connection_table(show_names=show_names, column_width=column_width) + + +# Short versions of function call +find_eqpt = find_operating_point diff --git a/control/optimal.py b/control/optimal.py index ce80eccfc..3242ac3fb 100644 --- a/control/optimal.py +++ b/control/optimal.py @@ -3,30 +3,41 @@ # RMM, 11 Feb 2021 # -"""The :mod:`control.optimal` module provides support for optimization-based -controllers for nonlinear systems with state and input constraints. +"""Optimization-based control module. -The docstring examples assume that the following import commands:: +This module provides support for optimization-based controllers for +nonlinear systems with state and input constraints. An optimal +control problem can be solved using the `solve_optimal_trajectory` +function or set up using the `OptimalControlProblem` class and then +solved using the `~OptimalControlProblem.compute_trajectory` method. +Utility functions are available to define common cost functions and +input/state constraints. Optimal estimation problems can be solved +using the `solve_optimal_estimate` function or by using the +`OptimalEstimationProblem` class and the +`~OptimalEstimationProblem.compute_estimate` method.. + +The docstring examples assume the following import commands:: >>> import numpy as np >>> import control as ct - >>> import control.optimal as obc + >>> import control.optimal as opt """ +import logging +import time +import warnings + import numpy as np import scipy as sp import scipy.optimize as opt + import control as ct -import warnings -import logging -import time from . import config -from .exception import ControlNotImplemented -from .iosys import _process_indices, _process_labels, \ - _process_control_disturbance_indices - +from .config import _process_param, _process_kwargs +from .iosys import _process_control_disturbance_indices, _process_labels +from .timeresp import _timeresp_aliases # Define module default parameter values _optimal_trajectory_methods = {'shooting', 'collocation'} @@ -38,20 +49,33 @@ 'optimal.solve_ivp_options': {}, } +# Parameter and keyword aliases +_optimal_aliases = { + # param: ([alias, ...], [legacy, ...]) + 'integral_cost': (['trajectory_cost', 'cost'], []), + 'initial_state': (['x0', 'X0'], []), + 'initial_input': (['u0', 'U0'], []), + 'final_state': (['xf'], []), + 'final_input': (['uf'], []), + 'initial_time': (['T0'], []), + 'trajectory_constraints': (['constraints'], []), + 'return_states': (['return_x'], []), +} + class OptimalControlProblem(): """Description of a finite horizon, optimal control problem. - The `OptimalControlProblem` class holds all of the information required to - specify an optimal control problem: the system dynamics, cost function, - and constraints. As much as possible, the information used to specify an - optimal control problem matches the notation and terminology of the SciPy - `optimize.minimize` module, with the hope that this makes it easier to - remember how to describe a problem. + The `OptimalControlProblem` class holds all of the information required + to specify an optimal control problem: the system dynamics, cost + function, and constraints. As much as possible, the information used + to specify an optimal control problem matches the notation and + terminology of `scipy.optimize` module, with the hope that + this makes it easier to remember how to describe a problem. Parameters ---------- - sys : InputOutputSystem + 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. @@ -61,9 +85,9 @@ class OptimalControlProblem(): 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 + `scipy.optimize.LinearConstraint` with arguments ``(A, lb, + ub)`` or `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 final state @@ -71,8 +95,8 @@ class OptimalControlProblem(): 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 + 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 @@ -82,34 +106,36 @@ class OptimalControlProblem(): 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 :py:func:`logging.basicConfig` to enable logging output + If True, turn on logging messages (using Python logging module). + Use `logging.basicConfig` to enable logging output (e.g., to a file). - Returns - ------- - ocp : OptimalControlProblem - Optimal control problem object, to be used in computing optimal - controllers. + Attributes + ---------- + constraint: list of SciPy constraint objects + List of `scipy.optimize.LinearConstraint` or + `scipy.optimize.NonlinearConstraint` objects. + constraint_lb, constrain_ub, eqconst_value : list of float + List of constraint bounds. Other Parameters ---------------- - basis : BasisFamily, optional + 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`. + Set the method used by `scipy.integrate.solve_ivp`. solve_ivp_kwargs : str, optional - Pass additional keywords to :func:`scipy.integrate.solve_ivp`. + Pass additional keywords to `scipy.integrate.solve_ivp`. minimize_method : str, optional - Set the method used by :func:`scipy.optimize.minimize`. + Set the method used by `scipy.optimize.minimize`. minimize_options : str, optional - Set the options keyword used by :func:`scipy.optimize.minimize`. + Set the options keyword used by `scipy.optimize.minimize`. minimize_kwargs : str, optional - Pass additional keywords to :func:`scipy.optimize.minimize`. + Pass additional keywords to `scipy.optimize.minimize`. Notes ----- @@ -120,35 +146,36 @@ class OptimalControlProblem(): 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 - user-defined function for the integral_cost given the current states and - inputs at each point along the trajectory and then adding the value of a - user-defined terminal cost at the final point in the trajectory. - - The `_constraint_function` method evaluates the constraint functions along - the trajectory generated by the proposed input. As in the case of the - cost function, the constraints are evaluated at the state and input 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. + can be solved using `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 user-defined function for the integral_cost given the current states + and inputs at each point along the trajectory and then adding the value + of a user-defined terminal cost at the final point in the trajectory. + + The `_constraint_function` method evaluates the constraint functions + along the trajectory generated by the proposed input. As in the case + of the cost function, the constraints are evaluated at the state and + input along each time 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. If `basis` is specified, then the optimization is done over coefficients of the basis elements. Otherwise, the optimization is performed over the - values of the input at the specified times (using linear interpolation for - continuous systems). + values of the input at the specified times (using linear interpolation + for continuous systems). - The default values for ``minimize_method``, ``minimize_options``, - ``minimize_kwargs``, ``solve_ivp_method``, and ``solve_ivp_options`` can - be set using config.defaults['optimal.']. + 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, trajectory_constraints=None, terminal_cost=None, terminal_constraints=None, initial_guess=None, - trajectory_method=None, basis=None, log=False, kwargs_check=True, + trajectory_method=None, basis=None, log=False, _kwargs_check=True, **kwargs): """Set up an optimal control problem.""" # Save the basic information for use later @@ -163,7 +190,7 @@ def __init__( if trajectory_method is None: trajectory_method = 'collocation' if sys.isctime() else 'shooting' elif trajectory_method not in _optimal_trajectory_methods: - raise NotImplementedError(f"Unkown method {method}") + raise NotImplementedError(f"Unknown method {trajectory_method}") self.shooting = trajectory_method in {'shooting'} self.collocation = trajectory_method in {'collocation'} @@ -189,10 +216,10 @@ def __init__( len(self.solve_ivp_kwargs) > 1: raise TypeError( "solve_ivp method, kwargs not allowed for" - " discrete time systems") + " discrete-time systems") # Make sure there were no extraneous keywords - if kwargs_check and kwargs: + if _kwargs_check and kwargs: raise TypeError("unrecognized keyword(s): ", str(kwargs)) self.trajectory_constraints = _process_constraints( @@ -278,7 +305,7 @@ def __init__( # Log information if log: - logging.info("New optimal control problem initailized") + logging.info("New optimal control problem initialized") # # Cost function @@ -287,15 +314,15 @@ 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[t_0], ... u[t_N]] we need to - # compute the cost of the trajectory generated by that input. This + # 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[t_0], ..., x[t_N]] and then compute the cost at each point: # # 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 + # 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 @@ -320,7 +347,8 @@ def _cost_function(self, coeffs): # Integrate the cost costs = np.array(costs) - # Approximate the integral using trapezoidal rule + + # Approximate the integral using trapezoidal rule cost = np.sum(0.5 * (costs[:-1] + costs[1:]) * dt) else: @@ -521,7 +549,7 @@ def _collocation_constraint(self, coeffs): fk = fkp1 else: raise NotImplementedError( - "collocation not yet implemented for discrete time systems") + "collocation not yet implemented for discrete-time systems") # Return the value of the constraint function return self.colloc_vals.reshape(-1) @@ -535,7 +563,7 @@ def _collocation_constraint(self, coeffs): # # 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). + # and/or state trajectory (for collocation 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 @@ -689,7 +717,7 @@ def _print_statistics(self, reset=True): # 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. + # collocation points given the coefficient (optimizer state) vector. # They keep track of whether a shooting method is being used or not and # simulate the dynamics if needed. # @@ -724,7 +752,7 @@ def _compute_states_inputs(self, coeffs): return states, inputs - # Simulate the system dynamis to retrieve the state + # Simulate the system dynamics to retrieve the state def _simulate_states(self, x0, inputs): if self.log: logging.debug( @@ -732,6 +760,7 @@ def _simulate_states(self, x0, inputs): logging.debug("input =\n" + str(inputs)) # Simulate the system to get the state + # TODO: update to use response object; remove return_x _, _, 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) @@ -751,39 +780,50 @@ def _simulate_states(self, x0, inputs): def compute_trajectory( self, x, squeeze=None, transpose=None, return_states=True, initial_guess=None, print_summary=True, **kwargs): - """Compute the optimal input at state x + """Compute the optimal trajectory starting at state x. Parameters ---------- - x : array-like or number, optional + x : array_like or number, optional Initial state for the system. + 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. return_states : bool, optional 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 - system output as a 2D array even if the system is SISO. Default - value set by config.defaults['control.squeeze_time_response']. + 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']`. transpose : bool, optional If True, assume that 2D input arrays are transposed from the standard format. Used to convert MATLAB-style inputs to our format. + print_summary : bool, optional + If True (default), print a short summary of the computation. Returns ------- - res : OptimalControlResult + res : `OptimalControlResult` Bundle object with the results of the optimal control problem. - res.success: bool + res.success : bool Boolean flag indicating whether the optimization was successful. res.time : array Time values of the input. res.inputs : array - Optimal inputs for 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 the - output number and time). + Optimal inputs for 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 the output number and time). res.states : array - Time evolution of the state vector (if return_states=True). + Time evolution of the state vector. """ # Allow 'return_x` as a synonym for 'return_states' @@ -793,13 +833,13 @@ def compute_trajectory( # Store the initial state (for use in _constraint_function) self.x = x - # Allow the initial guess to be overriden + # Allow the initial guess to be overridden if initial_guess is None: initial_guess = self.initial_guess else: initial_guess = self._process_initial_guess(initial_guess) - # Call ScipPy optimizer + # Call SciPy optimizer res = sp.optimize.minimize( self._cost_function, initial_guess, constraints=self.constraints, **self.minimize_kwargs) @@ -811,29 +851,27 @@ def compute_trajectory( # Compute the current input to apply from the current state (MPC style) def compute_mpc(self, x, squeeze=None): - """Compute the optimal input at state x + """Compute the optimal input at state x. This function calls the :meth:`compute_trajectory` method and returns the input at the first time point. Parameters ---------- - x: array-like or number, optional + x : array_like or number, optional Initial state for the system. 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']. + 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 ------- input : array - Optimal input for the system at the current time. 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). Set to `None` - if the optimization failed. + Optimal input for the system at the current time, as a 1D array + (even in the SISO case). Set to None if the optimization failed. """ res = self.compute_trajectory(x, squeeze=squeeze) @@ -841,16 +879,47 @@ def compute_mpc(self, x, squeeze=None): # Create an input/output system implementing an MPC controller def create_mpc_iosystem(self, **kwargs): - """Create an I/O system implementing an MPC controller""" + """Create an I/O system implementing an MPC controller. + + For a discrete-time system, creates an input/output system taking + the current state x and returning the control u to apply at the + current time step. + + Parameters + ---------- + name : str, optional + Name for the system controller. Defaults to a generic system + name of the form 'sys[i]'. + inputs : list of str, optional + Labels for the controller inputs. Defaults to the system state + labels. + outputs : list of str, optional + Labels for the controller outputs. Defaults to the system input + labels. + states : list of str, optional + Labels for the internal controller states, which consist either + of the input values over the horizon of the controller or the + coefficients of the basis functions. Defaults to strings of + the form 'x[i]'. + + Returns + ------- + `NonlinearIOSystem` + + Notes + ----- + Only works for discrete-time systems. + + """ # Check to make sure we are in discrete time if self.system.dt == 0: raise ct.ControlNotImplemented( - "MPC for continuous time systems not implemented") + "MPC for continuous-time systems not implemented") def _update(t, x, u, params={}): coeffs = x.reshape((self.system.ninputs, -1)) if self.basis: - # Keep the coeffecients unchanged + # Keep the coefficients unchanged # TODO: could compute input vector, shift, and re-project (?) self.initial_guess = coeffs else: @@ -885,8 +954,23 @@ def _output(t, x, u, params={}): class OptimalControlResult(sp.optimize.OptimizeResult): """Result from solving an optimal control problem. - This class is a subclass of :class:`scipy.optimize.OptimizeResult` with + This class is a subclass of `scipy.optimize.OptimizeResult` with additional attributes associated with solving optimal control problems. + It is used as the return type for optimal control problems. + + Parameters + ---------- + ocp : OptimalControlProblem + Optimal control problem that generated this solution. + res : scipy.minimize.OptimizeResult + Result of optimization. + 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']`. Attributes ---------- @@ -897,15 +981,14 @@ class OptimalControlResult(sp.optimize.OptimizeResult): associated with the optimal input. 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 + system_simulations, cost_evaluations, constraint_evaluations, \ + 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 + performed during the optimization. + cost_process_time, constraint_process_time, eqconst_process_time : float If logging was enabled, the amount of time spent evaluating the cost and constraint functions. @@ -950,17 +1033,18 @@ 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=None, initial_guess=None, basis=None, squeeze=None, - transpose=None, return_states=True, print_summary=True, log=False, - **kwargs): +def solve_optimal_trajectory( + sys, timepts, initial_state=None, integral_cost=None, + trajectory_constraints=None, terminal_cost=None, + terminal_constraints=None, initial_guess=None, + basis=None, squeeze=None, transpose=None, return_states=True, + print_summary=True, log=False, **kwargs): r"""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): + approximately minimize 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)), @@ -975,134 +1059,135 @@ def solve_ocp( Parameters ---------- - sys : InputOutputSystem + 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. - - X0: array-like or number, optional + initial_state (or X0) : array_like or number, optional Initial condition (default = 0). - - cost : callable + integral_cost (or cost) : callable Function that returns the integral cost (L) given the current 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 :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 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. + and input. Called as ``integral_cost(x, u)``. + trajectory_constraints (or 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 `scipy.optimize.LinearConstraint` or + `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 + 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. - terminal_cost : callable, optional 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. Same format as `constraints`. - 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, 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). - - 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). - - 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']. - - transpose : bool, optional - If True, assume that 2D input arrays are transposed from the standard - format. Used to convert MATLAB-style inputs to our format. + 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. Returns ------- - res : OptimalControlResult + res : `OptimalControlResult` Bundle object with the results of the optimal control problem. - res.success : bool Boolean flag indicating whether the optimization was successful. - res.time : array Time values of the input. - res.inputs : array Optimal inputs for 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 the output number and time). - res.states : array - Time evolution of the state vector (if return_states=True). + Time evolution of the state vector. + + Other Parameters + ---------------- + log : bool, optional + If True, turn on logging messages (using Python logging module). + minimize_method : str, optional + Set the method used by `scipy.optimize.minimize`. + print_summary : bool, optional + If True (default), print a short summary of the computation. + return_states : bool, optional + 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 + system output as a 2D array even if the system is SISO. Default + value set by `config.defaults['control.squeeze_time_response']`. + 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. + transpose : bool, optional + If True, assume that 2D input arrays are transposed from the standard + format. Used to convert MATLAB-style inputs to our format. Notes ----- - 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 - if trajectory_constraints is None: - # Backwards compatibility - trajectory_constraints = kwargs.pop('constraints', []) + 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`. - # Allow 'return_x` as a synonym for 'return_states' - return_states = ct.config._get_param( - 'optimal', 'return_x', kwargs, return_states, pop=True) + Additional keyword parameters can be used to fine-tune the behavior of + the underlying optimization and integration functions. See + `OptimalControlProblem` for more information. - # Process (legacy) method keyword + """ + # Process parameter and keyword arguments + _process_kwargs(kwargs, _optimal_aliases) + X0 = _process_param( + 'initial_state', initial_state, kwargs, _optimal_aliases, sigval=None) + cost = _process_param( + 'integral_cost', integral_cost, kwargs, _optimal_aliases) + trajectory_constraints = _process_param( + 'trajectory_constraints', trajectory_constraints, kwargs, + _optimal_aliases) + return_states = _process_param( + 'return_states', return_states, kwargs, _optimal_aliases, sigval=True) + + # Process (legacy) method keyword (could be minimize or trajectory) if kwargs.get('method'): method = kwargs.pop('method') - if method not in optimal_methods: + if method not in _optimal_trajectory_methods: if kwargs.get('minimize_method'): raise ValueError("'minimize_method' specified more than once") warnings.warn( "'method' parameter is deprecated; assuming minimize_method", - DeprecationWarning) + FutureWarning) kwargs['minimize_method'] = method else: if kwargs.get('trajectory_method'): - raise ValueError("'trajectory_method' specified more than once") + raise ValueError( + "'trajectory_method' specified more than once") warnings.warn( "'method' parameter is deprecated; assuming trajectory_method", - DeprecationWarning) + FutureWarning) kwargs['trajectory_method'] = method # Set up the optimal control problem @@ -1119,9 +1204,9 @@ def solve_ocp( # Create a model predictive controller for an optimal control problem def create_mpc_iosystem( - sys, timepts, cost, constraints=None, terminal_cost=None, - terminal_constraints=None, log=False, **kwargs): - """Create a model predictive I/O control system + sys, timepts, integral_cost=None, trajectory_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 predictive control for a system given the time points, cost function and @@ -1130,35 +1215,29 @@ def create_mpc_iosystem( Parameters ---------- - sys : InputOutputSystem + 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. - - cost : callable + integral_cost (or cost) : callable Function that returns the integral cost given the current state - and input. Called as cost(x, u). - - constraints : list of tuples, optional - List of constraints that should hold at each point in the time vector. - See :func:`~control.optimal.solve_ocp` for more details. - + and input. Called as ``integral_cost(x, u)``. + trajectory_constraints (or constraints) : list of tuples, optional + List of constraints that should hold at each point in the time + vector. See `solve_optimal_trajectory` for more details. terminal_cost : callable, optional Function that returns the terminal cost given the final state and input. Called as terminal_cost(x, u). - terminal_constraints : list of tuples, optional List of constraints that should hold at the end of the trajectory. Same format as `constraints`. - **kwargs - Additional parameters, passed to :func:`scipy.optimal.minimize` and - :class:`NonlinearIOSystem`. + Additional parameters, passed to `scipy.optimize.minimize` and + `~control.NonlinearIOSystem`. Returns ------- - ctrl : InputOutputSystem + ctrl : `InputOutputSystem` An I/O system taking the current state of the model system and returning the current input to be applied that minimizes the cost function while satisfying the constraints. @@ -1167,23 +1246,35 @@ def create_mpc_iosystem( ---------------- inputs, outputs, states : int or list of str, optional Set the names of the inputs, outputs, and states, as described in - :func:`~control.InputOutputSystem`. + `InputOutputSystem`. + 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). name : string, optional System name (used for specifying signals). If unspecified, a generic - name is generated with a unique integer id. + name 'sys[id]' is generated with a unique integer id. Notes ----- Additional keyword parameters can be used to fine-tune the behavior of - the underlying optimization and integrations functions. See - :func:`OptimalControlProblem` for more information. + the underlying optimization and integration functions. See + `OptimalControlProblem` for more information. """ from .iosys import InputOutputSystem + # Process parameter and keyword arguments + _process_kwargs(kwargs, _optimal_aliases) + cost = _process_param( + 'integral_cost', integral_cost, kwargs, _optimal_aliases) + constraints = _process_param( + 'trajectory_constraints', trajectory_constraints, kwargs, + _optimal_aliases) + # Grab the keyword arguments known by this function iosys_kwargs = {} - for kw in InputOutputSystem.kwargs_list: + for kw in InputOutputSystem._kwargs_list: if kw in kwargs: iosys_kwargs[kw] = kwargs.pop(kw) @@ -1210,22 +1301,22 @@ class OptimalEstimationProblem(): Parameters ---------- - sys : InputOutputSystem + sys : `InputOutputSystem` I/O system for which the optimal input will be computed. - timepts: 1D array + 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 + v, w) where xhat is the estimated state, u is the applied 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 + `scipy.optimize.LinearConstraint` with arguments ``(A, lb, + ub)`` or `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 @@ -1243,15 +1334,17 @@ class OptimalEstimationProblem(): Specify the indices in the system input vector that correspond to 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 + a list of indices, as described for `control_indices`. If not + specified, defaults to the complement of the control indices (see also notes below). - Returns - ------- - oep : OptimalEstimationProblem - Optimal estimation problem object, to be used in computing optimal - estimates. + Attributes + ---------- + constraint: list of SciPy constraint objects + List of `scipy.optimize.LinearConstraint` or + `scipy.optimize.NonlinearConstraint` objects. + constraint_lb, constrain_ub, eqconst_value : list of float + List of constraint bounds. Other Parameters ---------------- @@ -1259,27 +1352,26 @@ class OptimalEstimationProblem(): 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`. + Set the method used by `scipy.integrate.solve_ivp`. solve_ivp_kwargs : str, optional - Pass additional keywords to :func:`scipy.integrate.solve_ivp`. + Pass additional keywords to `scipy.integrate.solve_ivp`. minimize_method : str, optional - Set the method used by :func:`scipy.optimize.minimize`. + Set the method used by `scipy.optimize.minimize`. minimize_options : str, optional - Set the options keyword used by :func:`scipy.optimize.minimize`. + Set the options keyword used by `scipy.optimize.minimize`. minimize_kwargs : str, optional - Pass additional keywords to :func:`scipy.optimize.minimize`. + Pass additional keywords to `scipy.optimize.minimize`. Notes ----- - 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`. + 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 `compute_estimate` method solves + the underling optimization problem using `scipy.optimize.minimize`. The control input and disturbance indices can be specified using the `control_indices` and `disturbance_indices` keywords. If only one is @@ -1302,9 +1394,9 @@ class OptimalEstimationProblem(): 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.']. + 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__( @@ -1639,17 +1731,17 @@ def _print_statistics(self, reset=True): # Optimal estimate computations # def compute_estimate( - self, Y, U, X0=None, initial_guess=None, - squeeze=None, print_summary=True): - """Compute the optimal input at state x + self, outputs=None, inputs=None, initial_state=None, + initial_guess=None, squeeze=None, print_summary=True, **kwargs): + """Compute the optimal input at state x. Parameters ---------- - Y : 2D array + outputs (or Y) : 2D array Measured outputs at each time point. - U : 2D array + inputs (or U) : 2D array Applied inputs at each time point. - X0 : 1D array + initial_state (or 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 @@ -1659,13 +1751,13 @@ def compute_estimate( 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']. + set by `config.defaults['control.squeeze_time_response']`. print_summary : bool, optional - If `True` (default), print a short summary of the computation. + If True (default), print a short summary of the computation. Returns ------- - res : OptimalEstimationResult + res : `OptimalEstimationResult` Bundle object with the results of the optimal estimation problem. res.success : bool Boolean flag indicating whether the optimization was successful. @@ -1675,10 +1767,20 @@ def compute_estimate( Estimated disturbance inputs for the system trajectory. res.states : array Time evolution of the estimated state vector. - res.outputs: array + res.outputs : array Estimated measurement noise for the system trajectory. """ + # Argument and keyword processing + aliases = _timeresp_aliases | _optimal_aliases + _process_kwargs(kwargs, aliases) + Y = _process_param('outputs', outputs, kwargs, aliases) + U = _process_param('inputs', inputs, kwargs, aliases) + X0 = _process_param('initial_state', initial_state, kwargs, aliases) + + if kwargs: + raise TypeError("unrecognized keyword(s): ", str(kwargs)) + # 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) @@ -1709,7 +1811,7 @@ def compute_estimate( # Process the initial guess initial_guess = self._process_initial_guess(initial_guess) - # Call ScipPy optimizer + # Call SciPy optimizer res = sp.optimize.minimize( self._cost_function, initial_guess, constraints=self.constraints, **self.minimize_kwargs) @@ -1718,7 +1820,6 @@ def compute_estimate( return OptimalEstimationResult( self, res, squeeze=squeeze, print_summary=print_summary) - # # Create an input/output system implementing an moving horizon estimator # @@ -1726,10 +1827,11 @@ def compute_estimate( # xhat, u, v, y for all previous time points. When the system update # function is called, # + 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 + """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 @@ -1741,25 +1843,25 @@ def create_mhe_iosystem( 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. + 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. + can also be overridden using the `outputs` keyword. measurement_labels, control_labels : str or list of str, optional - Set the name of the measurement and control signal names + Set the names 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. + 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. + also be overridden using the `inputs` keyword. **kwargs, optional Additional keyword arguments to set system, input, and output - signal names; see :func:`~control.InputOutputSystem`. + signal names; see `InputOutputSystem`. Returns ------- - estim : InputOutputSystem + 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. @@ -1770,13 +1872,13 @@ def create_mhe_iosystem( 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`. + described in `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") + "MHE for continuous-time systems not implemented") # Figure out the location of the disturbances self.ctrl_idx, self.dist_idx = \ @@ -1829,7 +1931,7 @@ def _mhe_update(t, xvec, uvec, params={}): # Compute the new states and disturbances est = self.compute_estimate( - Y, U, X0=xhat[:, 0], initial_guess=(xhat, V), + Y, U, initial_state=xhat[:, 0], initial_guess=(xhat, V), print_summary=False) # Restack the new state @@ -1853,12 +1955,26 @@ def _mhe_output(t, xvec, uvec, params={}): # Optimal estimation result class OptimalEstimationResult(sp.optimize.OptimizeResult): - """Result from solving an optimal estimationproblem. + """Result from solving an optimal estimation problem. - This class is a subclass of :class:`scipy.optimize.OptimizeResult` with + This class is a subclass of `scipy.optimize.OptimizeResult` with additional attributes associated with solving optimal estimation problems. + Parameters + ---------- + oep : OptimalEstimationProblem + Optimal estimation problem that generated this solution. + res : scipy.minimize.OptimizeResult + Result of optimization. + 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']`. + Attributes ---------- states : ndarray @@ -1866,7 +1982,7 @@ class OptimalEstimationResult(sp.optimize.OptimizeResult): inputs : ndarray The disturbances associated with the estimated state trajectory. outputs : - The error between measured outputs and estiamted outputs. + The error between measured outputs and estimated outputs. success : bool Whether or not the optimizer exited successful. problem : OptimalControlProblem @@ -1876,8 +1992,8 @@ class OptimalEstimationResult(sp.optimize.OptimizeResult): 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 + performed during the optimization. + cost_process_time, constraint_process_time, eqconst_process_time : float If logging was enabled, the amount of time spent evaluating the cost and constraint functions. @@ -1922,51 +2038,58 @@ def __init__( 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, +# Compute the finite horizon estimate for a nonlinear system +def solve_optimal_estimate( + sys, timepts, outputs=None, inputs=None, integral_cost=None, + initial_state=None, trajectory_constraints=None, initial_guess=None, squeeze=None, print_summary=True, **kwargs): - """Compute the solution to a moving horizon estimation problem + """Compute the solution to a finite horizon estimation problem. + + This function computes the maximum likelihood estimate of a system + state given the input and output over a fixed horizon. The likelihood + is evaluated according to a cost function whose value is minimized + to compute the maximum likelihood estimate. Parameters ---------- - sys : InputOutputSystem + 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 + outputs (or Y) : 2D array_like + Values of the outputs at each time point. + inputs (or U) : 2D array_like + Values of the inputs at each time point. + integral_cost (or cost) : callable Function that returns the cost given the current state - and input. Called as `cost(y, u, x0)`. - X0: 1D array_like, optional + and input. Called as ``cost(y, u, x0)``. + initial_state (or 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. + List of constraints that should hold at each point in the time + vector. See `solve_optimal_trajectory` 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` + `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` + `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. + 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']. + 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 + res : `TimeResponseData` Bundle object with the estimated state and noise values. res.success : bool Boolean flag indicating whether the optimization was successful. @@ -1989,9 +2112,18 @@ def solve_oep( ----- 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. + `OptimalControlProblem` for more information. """ + aliases = _timeresp_aliases | _optimal_aliases + _process_kwargs(kwargs, aliases) + Y = _process_param('outputs', outputs, kwargs, aliases) + U = _process_param('inputs', inputs, kwargs, aliases) + X0 = _process_param( + 'initial_state', initial_state, kwargs, aliases) + trajectory_cost = _process_param( + 'integral_cost', integral_cost, kwargs, aliases) + # Set up the optimal control problem oep = OptimalEstimationProblem( sys, timepts, trajectory_cost, @@ -1999,7 +2131,7 @@ def solve_oep( # Solve for the optimal input from the current state return oep.compute_estimate( - Y, U, X0=X0, initial_guess=initial_guess, + Y, U, initial_state=X0, initial_guess=initial_guess, squeeze=squeeze, print_summary=print_summary) @@ -2008,11 +2140,11 @@ def solve_oep( # # Since a quadratic function is common as a cost function, we provide a # function that will take a Q and R matrix and return a callable that -# evaluates to associted quadratic cost. This is compatible with the way that +# evaluates to associated quadratic cost. This is compatible with the way that # the `_cost_function` evaluates the cost at each point in the trajectory. # def quadratic_cost(sys, Q, R, x0=0, u0=0): - """Create quadratic cost function + """Create quadratic cost function. Returns a quadratic cost function that can be used for an optimal control problem. The cost function is of the form @@ -2021,7 +2153,7 @@ def quadratic_cost(sys, Q, R, x0=0, u0=0): Parameters ---------- - sys : InputOutputSystem + sys : `InputOutputSystem` I/O system for which the cost function is being defined. Q : 2D array_like Weighting matrix for state cost. Dimensions must match system state. @@ -2065,7 +2197,7 @@ def quadratic_cost(sys, Q, R, x0=0, u0=0): def gaussian_likelihood_cost(sys, Rv, Rw=None): - """Create cost function for Gaussian likelihoods + """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 @@ -2074,7 +2206,7 @@ def gaussian_likelihood_cost(sys, Rv, Rw=None): Parameters ---------- - sys : InputOutputSystem + sys : `InputOutputSystem` I/O system for which the cost function is being defined. Rv : 2D array_like Covariance matrix for input (or state) disturbances. @@ -2115,11 +2247,11 @@ def gaussian_likelihood_cost(sys, Rv, Rw=None): # Functions to create constraints: either polytopes (A x <= b) or ranges # (lb # <= x <= ub). # -# As in the cost function evaluation, the main "trick" in creating a constrain -# on the state or input is to properly evaluate the constraint on the stacked -# state and input vector at the current time point. The constraint itself -# will be called at each point along the trajectory (or the endpoint) via the -# constrain_function() method. +# As in the cost function evaluation, the main "trick" in creating a +# constraint on the state or input is to properly evaluate the constraint on +# the stacked state and input vector at the current time point. The +# constraint itself will be called at each point along the trajectory (or the +# endpoint) via the constrain_function() method. # # Note that these functions to not actually evaluate the constraint, they # simply return the information required to do so. We use the SciPy @@ -2127,19 +2259,19 @@ def gaussian_likelihood_cost(sys, Rv, Rw=None): # keep things consistent with the terminology in scipy.optimize. # def state_poly_constraint(sys, A, b): - """Create state constraint from polytope + """Create state constraint from polytope. Creates a linear constraint on the system state of the form A x <= b that can be used as an optimal control constraint (trajectory or terminal). Parameters ---------- - sys : InputOutputSystem + sys : `InputOutputSystem` I/O system for which the constraint is being defined. A : 2D array - Constraint matrix + Constraint matrix. b : 1D array - Upper bound for the constraint + Upper bound for the constraint. Returns ------- @@ -2162,16 +2294,16 @@ def state_poly_constraint(sys, A, b): def state_range_constraint(sys, lb, ub): - """Create state constraint from range + """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 - bounds can be set of `inf` and `-inf` to indicate there is no constraint + bounds can be set of 'inf' and '-inf' to indicate there is no constraint or to the same value to describe an equality constraint. Parameters ---------- - sys : InputOutputSystem + sys : `InputOutputSystem` I/O system for which the constraint is being defined. lb : 1D array Lower bound for each of the states. @@ -2199,19 +2331,19 @@ def state_range_constraint(sys, lb, ub): # Create a constraint polytope on the system input def input_poly_constraint(sys, A, b): - """Create input constraint from polytope + """Create input constraint from polytope. Creates a linear constraint on the system input of the form A u <= b that can be used as an optimal control constraint (trajectory or terminal). Parameters ---------- - sys : InputOutputSystem + sys : `InputOutputSystem` I/O system for which the constraint is being defined. A : 2D array - Constraint matrix + Constraint matrix. b : 1D array - Upper bound for the constraint + Upper bound for the constraint. Returns ------- @@ -2235,16 +2367,16 @@ def input_poly_constraint(sys, A, b): def input_range_constraint(sys, lb, ub): - """Create input constraint from polytope + """Create input constraint from polytope. Creates a linear constraint on the system input that bounds the range of the individual states to be between `lb` and `ub`. The upper and lower - bounds can be set of `inf` and `-inf` to indicate there is no constraint + bounds can be set of 'inf' and '-inf' to indicate there is no constraint or to the same value to describe an equality constraint. Parameters ---------- - sys : InputOutputSystem + sys : `InputOutputSystem` I/O system for which the constraint is being defined. lb : 1D array Lower bound for each of the inputs. @@ -2273,30 +2405,30 @@ def input_range_constraint(sys, lb, ub): # # Create a constraint polytope/range constraint on the system output # -# Unlike the state and input constraints, for the output constraint we need to -# do a function evaluation before applying the constraints. +# Unlike the state and input constraints, for the output constraint we need +# to do a function evaluation before applying the constraints. # -# TODO: for the special case of an LTI system, we can avoid the extra function -# call by multiplying the state by the C matrix for the system and then -# imposing a linear constraint: +# TODO: for the special case of an LTI system, we can avoid the extra +# function call by multiplying the state by the C matrix for the system and +# then imposing a linear constraint: # # np.hstack( # [A @ sys.C, np.zeros((A.shape[0], sys.ninputs))]) # def output_poly_constraint(sys, A, b): - """Create output constraint from polytope + """Create output constraint from polytope. Creates a linear constraint on the system output of the form A y <= b that can be used as an optimal control constraint (trajectory or terminal). Parameters ---------- - sys : InputOutputSystem + sys : `InputOutputSystem` I/O system for which the constraint is being defined. A : 2D array - Constraint matrix + Constraint matrix. b : 1D array - Upper bound for the constraint + Upper bound for the constraint. Returns ------- @@ -2323,16 +2455,16 @@ def _evaluate_output_poly_constraint(x, u): def output_range_constraint(sys, lb, ub): - """Create output constraint from range + """Create output constraint from range. Creates a linear constraint on the system output that bounds the range of the individual states to be between `lb` and `ub`. The upper and lower - bounds can be set of `inf` and `-inf` to indicate there is no constraint + bounds can be set of 'inf' and '-inf' to indicate there is no constraint or to the same value to describe an equality constraint. Parameters ---------- - sys : InputOutputSystem + sys : `InputOutputSystem` I/O system for which the constraint is being defined. lb : 1D array Lower bound for each of the outputs. @@ -2359,12 +2491,13 @@ 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 + """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 @@ -2372,12 +2505,12 @@ def disturbance_range_constraint(sys, lb, ub): Parameters ---------- - sys : InputOutputSystem + sys : `InputOutputSystem` I/O system for which the constraint is being defined. lb : 1D array - Lower bound for each of the disturbancs. + Lower bound for each of the disturbance. ub : 1D array - Upper bound for each of the disturbances. + Upper bound for each of the disturbance. Returns ------- @@ -2403,6 +2536,7 @@ def disturbance_range_constraint(sys, lb, ub): # Utility functions # + # # Process trajectory constraints # @@ -2414,6 +2548,7 @@ def disturbance_range_constraint(sys, lb, ub): # internal representation (currently a tuple with the constraint type as the # first element. # + def _process_constraints(clist, name): if clist is None: clist = [] @@ -2429,7 +2564,7 @@ def _process_constraints(clist, name): if isinstance(constraint, tuple): # Original style of constraint ctype, fun, lb, ub = constraint - if not ctype in [opt.LinearConstraint, opt.NonlinearConstraint]: + if ctype not in [opt.LinearConstraint, opt.NonlinearConstraint]: raise TypeError(f"unknown {name} constraint type {ctype}") constraint_list.append(constraint) elif isinstance(constraint, opt.LinearConstraint): @@ -2442,3 +2577,8 @@ def _process_constraints(clist, name): constraint.lb, constraint.ub)) return constraint_list + + +# Convenience aliases +solve_ocp = solve_optimal_trajectory +solve_oep = solve_optimal_estimate diff --git a/control/passivity.py b/control/passivity.py index 0f4104186..605d8c726 100644 --- a/control/passivity.py +++ b/control/passivity.py @@ -1,11 +1,12 @@ -""" -Functions for passive control. +# passivity.py - functions for passive control +# +# Initial author: Mark Yeatman +# Creation date: July 17, 2022 -Author: Mark Yeatman -Date: July 17, 2022 -""" +"""Functions for passive control.""" import numpy as np + from control import statesp from control.exception import ControlArgument, ControlDimension @@ -20,39 +21,40 @@ def solve_passivity_LMI(sys, rho=None, nu=None): - """Compute passivity indices and/or solves feasiblity via a LMI. - - 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 the output `solution` is either the output or input - passivity index, for `rho` = None and `nu` = None respectively. - - The sources for the algorithm are: + """Compute passivity indices and/or solves feasibility via a LMI. - 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. + 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 the output `solution` + is either the output or input passivity index, for `rho` = None and + `nu` = None, respectively. Parameters ---------- sys : LTI - System to be checked + System to be checked. rho : float or None - Output feedback passivity index + Output feedback passivity index. nu : float or None - Input feedforward passivity index + Input feedforward passivity index. Returns ------- solution : ndarray - The LMI solution + The LMI solution. + + References + ---------- + .. [1] McCourt, Michael J., and Panos J. Antsaklis, "Demonstrating + passivity and dissipativity using computational methods." + + .. [2] Nicholas Kottenstette and Panos J. Antsaklis, + "Relationships Between Positive Real, Passive Dissipative, & + Positive Systems", equation 36. + """ if cvx is None: raise ModuleNotFoundError("cvxopt required for passivity module") @@ -98,8 +100,9 @@ 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 + symmetric matrix P of size n by n representing a parameterized + symbolic matrix. + """ matrix_list = [] for i in range(0, n): @@ -121,7 +124,7 @@ 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 + parameterized symbolic matrix of size n by n is positive definite """ matrix_list = [] for i in range(0, n): @@ -137,7 +140,7 @@ def P_pos_def_constraint(n): n = sys.nstates - # coefficents for passivity indices and feasibility matrix + # coefficients 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 @@ -175,12 +178,12 @@ def P_pos_def_constraint(n): return sol["x"] except ZeroDivisionError as e: - raise ValueError("The system is probably ill conditioned. " - "Consider perturbing the system matrices by a small amount." + raise ValueError( + "The system is probably ill conditioned. Consider perturbing " + "the system matrices by a small amount." ) from e - def get_output_fb_index(sys): """Return the output feedback passivity (OFP) index for the system. @@ -190,12 +193,13 @@ def get_output_fb_index(sys): Parameters ---------- sys : LTI - System to be checked + System to be checked. Returns ------- float - The OFP index + The OFP index. + """ sol = solve_passivity_LMI(sys, nu=0.0) if sol is None: @@ -205,11 +209,11 @@ def get_output_fb_index(sys): def get_input_ff_index(sys): - """Return the input feedforward passivity (IFP) index for the system. + """Input feedforward passivity (IFP) index for a system. - 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. + The input feedforward passivity (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 ---------- @@ -219,7 +223,8 @@ def get_input_ff_index(sys): Returns ------- float - The IFP index + The IFP index. + """ sol = solve_passivity_LMI(sys, rho=0.0) if sol is None: @@ -255,17 +260,17 @@ def get_directional_index(sys): 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. + Checks if system is passive with the given output feedback (OFP) + and input feedforward (IFP) passivity indices. Parameters ---------- sys : LTI - System to be checked + System to be checked. ofp_index : float - Output feedback passivity index + Output feedback passivity index. ifp_index : float - Input feedforward passivity index + Input feedforward passivity index. Returns ------- @@ -278,18 +283,21 @@ def ispassive(sys, ofp_index=0, ifp_index=0): .. 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). + 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." + + .. [1] McCourt, Michael J., and Panos J. Antsaklis "Demonstrating + passivity and dissipativity using computational methods." + Technical Report of the ISIS Group at the University of Notre + Dame. ISIS-2013-008, Aug. 2013. + """ return solve_passivity_LMI(sys, rho=ofp_index, nu=ifp_index) is not None diff --git a/control/phaseplot.py b/control/phaseplot.py index d785a2221..cf73d62a0 100644 --- a/control/phaseplot.py +++ b/control/phaseplot.py @@ -1,29 +1,22 @@ # phaseplot.py - generate 2D phase portraits # -# Author: Richard M. Murray -# Date: 23 Mar 2024 (legacy version information below) -# -# TODO -# * Allow multiple timepoints (and change timespec name to T?) -# * Update linestyles (color -> linestyle?) -# * Check for keyword compatibility with other plot routines -# * Set up configuration parameters (nyquist --> phaseplot) - -"""Module for generating 2D phase plane plots. - -The :mod:`control.phaseplot` module contains functions for generating 2D -phase plots. The base function for creating phase plane portraits is -:func:`~control.phase_plane_plot`, which generates a phase plane portrait -for a 2 state I/O system (with no inputs). In addition, several other -functions are available to create customized phase plane plots: - -* boxgrid: Generate a list of points along the edge of a box -* circlegrid: Generate list of points around a circle -* equilpoints: Plot equilibrium points in the phase plane -* meshgrid: Generate a list of points forming a mesh -* separatrices: Plot separatrices in the phase plane -* streamlines: Plot stream lines in the phase plane -* vectorfield: Plot a vector field in the phase plane +# Initial author: Richard M. Murray +# Creation date: 24 July 2011, converted from MATLAB version (2002); +# based on an original version by Kristi Morgansen + +"""Generate 2D phase portraits. + +This module contains functions for generating 2D phase plots. The base +function for creating phase plane portraits is `~control.phase_plane_plot`, +which generates a phase plane portrait for a 2 state I/O system (with no +inputs). Utility functions are available to customize the individual +elements of a phase plane portrait. + +The docstring examples assume the following import commands:: + + >>> import numpy as np + >>> import control as ct + >>> import control.phaseplot as pp """ @@ -36,9 +29,11 @@ from scipy.integrate import odeint from . import config -from .exception import ControlNotImplemented -from .freqplot import _add_arrows_to_line2D -from .nlsys import NonlinearIOSystem, find_eqpt, input_output_response +from .ctrlplot import ControlPlot, _add_arrows_to_line2D, _get_color, \ + _process_ax_keyword, _update_plot_title +from .exception import ControlArgument +from .nlsys import NonlinearIOSystem, find_operating_point, \ + input_output_response __all__ = ['phase_plane_plot', 'phase_plot', 'box_grid'] @@ -46,22 +41,27 @@ _phaseplot_defaults = { 'phaseplot.arrows': 2, # number of arrows around curve 'phaseplot.arrow_size': 8, # pixel size for arrows + 'phaseplot.arrow_style': None, # set arrow style 'phaseplot.separatrices_radius': 0.1 # initial radius for separatrices } + def phase_plane_plot( sys, pointdata=None, timedata=None, gridtype=None, gridspec=None, - plot_streamlines=True, plot_vectorfield=False, plot_equilpoints=True, - plot_separatrices=True, ax=None, **kwargs + plot_streamlines=None, plot_vectorfield=None, plot_streamplot=None, + plot_equilpoints=True, plot_separatrices=True, ax=None, + suppress_warnings=False, title=None, **kwargs ): """Plot phase plane diagram. This function plots phase plane data, including vector fields, stream lines, equilibrium points, and contour curves. + If none of plot_streamlines, plot_vectorfield, or plot_streamplot are + set, then plot_streamplot is used by default. Parameters ---------- - sys : NonlinearIOSystem or callable(t, x, ...) + sys : `NonlinearIOSystem` or callable(t, x, ...) I/O system or function used to generate phase plane data. If a function is given, the remaining arguments are drawn from the `params` keyword. @@ -88,46 +88,119 @@ def phase_plane_plot( Parameters to pass to system. For an I/O system, `params` should be a dict of parameters and values. For a callable, `params` should be dict with key 'args' and value given by a tuple (passed to callable). - plot_streamlines : bool or dict - If `True` (default) then plot streamlines based on the pointdata - and gridtype. If set to a dict, pass on the key-value pairs in - the dict as keywords to :func:`~control.phaseplot.streamlines`. - plot_vectorfield : bool or dict - If `True` (default) then plot the vector field based on the pointdata - and gridtype. If set to a dict, pass on the key-value pairs in - the dict as keywords to :func:`~control.phaseplot.vectorfield`. - plot_equilpoints : bool or dict - If `True` (default) then plot equilibrium points based in the phase - plot boundary. If set to a dict, pass on the key-value pairs in the - dict as keywords to :func:`~control.phaseplot.equilpoints`. - plot_separatrices : bool or dict - If `True` (default) then plot separatrices starting from each - equilibrium point. If set to a dict, pass on the key-value pairs - in the dict as keywords to :func:`~control.phaseplot.separatrices`. - color : str - Plot all elements in the given color (use `plot_={'color': c}` - to set the color in one element of the phase plot. - ax : Axes - Use the given axes for the plot instead of creating a new figure. + color : matplotlib color spec, optional + Plot all elements in the given color (use ``plot_`` = + {'color': c} to set the color in one element of the phase + plot (equilpoints, separatrices, streamlines, etc). + ax : `matplotlib.axes.Axes`, optional + The matplotlib axes to draw the figure on. If not specified and + the current figure has a single axes, that axes is used. + Otherwise, a new figure is created. Returns ------- - out : list of list of Artists - out[0] = list of Line2D objects (streamlines and separatrices) - out[1] = Quiver object (vector field arrows) - out[2] = list of Line2D objects (equilibrium points) + cplt : `ControlPlot` object + Object containing the data that were plotted. See `ControlPlot` + for more detailed information. + cplt.lines : array of list of `matplotlib.lines.Line2D` + Array of list of `matplotlib.artist.Artist` objects: + + - lines[0] = list of Line2D objects (streamlines, separatrices). + - lines[1] = Quiver object (vector field arrows). + - lines[2] = list of Line2D objects (equilibrium points). + - lines[3] = StreamplotSet object (lines with arrows). + + cplt.axes : 2D array of `matplotlib.axes.Axes` + Axes for each subplot. + cplt.figure : `matplotlib.figure.Figure` + Figure containing the plot. + + Other Parameters + ---------------- + arrows : int + Set the number of arrows to plot along the streamlines. The default + value can be set in `config.defaults['phaseplot.arrows']`. + arrow_size : float + Set the size of arrows to plot along the streamlines. The default + value can be set in `config.defaults['phaseplot.arrow_size']`. + arrow_style : matplotlib patch + Set the style of arrows to plot along the streamlines. The default + value can be set in `config.defaults['phaseplot.arrow_style']`. + dir : str, optional + Direction to draw streamlines: 'forward' to flow forward in time + from the reference points, 'reverse' to flow backward in time, or + 'both' to flow both forward and backward. The amount of time to + simulate in each direction is given by the `timedata` argument. + plot_streamlines : bool or dict, optional + If True then plot streamlines based on the pointdata and gridtype. + If set to a dict, pass on the key-value pairs in the dict as + keywords to `streamlines`. + plot_vectorfield : bool or dict, optional + If True then plot the vector field based on the pointdata and + gridtype. If set to a dict, pass on the key-value pairs in the + dict as keywords to `phaseplot.vectorfield`. + plot_streamplot : bool or dict, optional + If True then use `matplotlib.axes.Axes.streamplot` function + to plot the streamlines. If set to a dict, pass on the key-value + pairs in the dict as keywords to `phaseplot.streamplot`. + plot_equilpoints : bool or dict, optional + If True (default) then plot equilibrium points based in the phase + plot boundary. If set to a dict, pass on the key-value pairs in the + dict as keywords to `phaseplot.equilpoints`. + plot_separatrices : bool or dict, optional + If True (default) then plot separatrices starting from each + equilibrium point. If set to a dict, pass on the key-value pairs + in the dict as keywords to `phaseplot.separatrices`. + rcParams : dict + Override the default parameters used for generating plots. + Default is set by `config.defaults['ctrlplot.rcParams']`. + suppress_warnings : bool, optional + If set to True, suppress warning messages in generating trajectories. + title : str, optional + Set the title of the plot. Defaults to plot type and system name(s). + + Notes + ----- + The default method for producing streamlines is determined based on which + keywords are specified, with `plot_streamplot` serving as the generic + default. If any of the `arrows`, `arrow_size`, `arrow_style`, or `dir` + keywords are used and neither `plot_streamlines` nor `plot_streamplot` is + set, then `plot_streamlines` will be set to True. If neither + `plot_streamlines` nor `plot_vectorfield` set set to True, then + `plot_streamplot` will be set to True. """ + # Check for legacy usage of plot_streamlines + streamline_keywords = [ + 'arrows', 'arrow_size', 'arrow_style', 'dir'] + if plot_streamlines is None: + if any([kw in kwargs for kw in streamline_keywords]): + warnings.warn( + "detected streamline keywords; use plot_streamlines to set", + FutureWarning) + plot_streamlines = True + if gridtype not in [None, 'meshgrid']: + warnings.warn( + "streamplots only support gridtype='meshgrid'; " + "falling back to streamlines") + plot_streamlines = True + + if plot_streamlines is None and plot_vectorfield is None \ + and plot_streamplot is None: + plot_streamplot = True + + if plot_streamplot and not plot_streamlines and not plot_vectorfield: + gridspec = gridspec or [25, 25] + # Process arguments params = kwargs.get('params', None) sys = _create_system(sys, params) pointdata = [-1, 1, -1, 1] if pointdata is None else pointdata + rcParams = config._get_param('ctrlplot', 'rcParams', kwargs, pop=True) # Create axis if needed - if ax is None: - fig, ax = plt.gcf(), plt.gca() - else: - fig = None # don't modify figure + user_ax = ax + fig, ax = _process_ax_keyword(user_ax, squeeze=True, rcParams=rcParams) # Create copy of kwargs for later checking to find unused arguments initial_kwargs = dict(kwargs) @@ -141,7 +214,10 @@ def _create_kwargs(global_kwargs, local_kwargs, **other_kwargs): return new_kwargs # Create list for storing outputs - out = [[], None, None] + out = np.array([[], None, None, None], dtype=object) + + # the maximum zorder of stramlines, vectorfield or streamplot + flow_zorder = None # Plot out the main elements if plot_streamlines: @@ -149,7 +225,12 @@ def _create_kwargs(global_kwargs, local_kwargs, **other_kwargs): kwargs, plot_streamlines, gridspec=gridspec, gridtype=gridtype, ax=ax) out[0] += streamlines( - sys, pointdata, timedata, check_kwargs=False, **kwargs_local) + sys, pointdata, timedata, _check_kwargs=False, + suppress_warnings=suppress_warnings, **kwargs_local) + + new_zorder = max(elem.get_zorder() for elem in out[0]) + flow_zorder = max(flow_zorder, new_zorder) if flow_zorder \ + else new_zorder # Get rid of keyword arguments handled by streamlines for kw in ['arrows', 'arrow_size', 'arrow_style', 'color', @@ -160,31 +241,62 @@ def _create_kwargs(global_kwargs, local_kwargs, **other_kwargs): if gridtype not in [None, 'boxgrid', 'meshgrid']: gridspec = None + if plot_vectorfield: + kwargs_local = _create_kwargs( + kwargs, plot_vectorfield, gridspec=gridspec, ax=ax) + out[1] = vectorfield( + sys, pointdata, _check_kwargs=False, **kwargs_local) + + new_zorder = out[1].get_zorder() + flow_zorder = max(flow_zorder, new_zorder) if flow_zorder \ + else new_zorder + + # Get rid of keyword arguments handled by vectorfield + for kw in ['color', 'params']: + initial_kwargs.pop(kw, None) + + if plot_streamplot: + if gridtype not in [None, 'meshgrid']: + raise ValueError( + "gridtype must be 'meshgrid' when using streamplot") + + kwargs_local = _create_kwargs( + kwargs, plot_streamplot, gridspec=gridspec, ax=ax) + out[3] = streamplot( + sys, pointdata, _check_kwargs=False, **kwargs_local) + + new_zorder = max(out[3].lines.get_zorder(), out[3].arrows.get_zorder()) + flow_zorder = max(flow_zorder, new_zorder) if flow_zorder \ + else new_zorder + + # Get rid of keyword arguments handled by streamplot + for kw in ['color', 'params']: + initial_kwargs.pop(kw, None) + + sep_zorder = flow_zorder + 1 if flow_zorder else None + if plot_separatrices: kwargs_local = _create_kwargs( kwargs, plot_separatrices, gridspec=gridspec, ax=ax) + kwargs_local['zorder'] = kwargs_local.get('zorder', sep_zorder) out[0] += separatrices( - sys, pointdata, check_kwargs=False, **kwargs_local) + sys, pointdata, _check_kwargs=False, **kwargs_local) + + sep_zorder = max(elem.get_zorder() for elem in out[0]) if out[0] \ + else None # Get rid of keyword arguments handled by separatrices for kw in ['arrows', 'arrow_size', 'arrow_style', 'params']: initial_kwargs.pop(kw, None) - if plot_vectorfield: - kwargs_local = _create_kwargs( - kwargs, plot_vectorfield, gridspec=gridspec, ax=ax) - out[1] = vectorfield( - sys, pointdata, check_kwargs=False, **kwargs_local) - - # Get rid of keyword arguments handled by vectorfield - for kw in ['color', 'params']: - initial_kwargs.pop(kw, None) + equil_zorder = sep_zorder + 1 if sep_zorder else None if plot_equilpoints: kwargs_local = _create_kwargs( kwargs, plot_equilpoints, gridspec=gridspec, ax=ax) + kwargs_local['zorder'] = kwargs_local.get('zorder', equil_zorder) out[2] = equilpoints( - sys, pointdata, check_kwargs=False, **kwargs_local) + sys, pointdata, _check_kwargs=False, **kwargs_local) # Get rid of keyword arguments handled by equilpoints for kw in ['params']: @@ -194,16 +306,20 @@ def _create_kwargs(global_kwargs, local_kwargs, **other_kwargs): if initial_kwargs: raise TypeError("unrecognized keywords: ", str(initial_kwargs)) - if fig is not None: - fig.suptitle(f"Phase portrait for {sys.name}") + if user_ax is None: + if title is None: + title = f"Phase portrait for {sys.name}" + _update_plot_title(title, use_existing=False, rcParams=rcParams) ax.set_xlabel(sys.state_labels[0]) ax.set_ylabel(sys.state_labels[1]) + plt.tight_layout() - return out + return ControlPlot(out, ax, fig) def vectorfield( - sys, pointdata, gridspec=None, ax=None, check_kwargs=True, **kwargs): + sys, pointdata, gridspec=None, zorder=None, ax=None, + suppress_warnings=False, _check_kwargs=True, **kwargs): """Plot a vector field in the phase plane. This function plots a vector field for a two-dimensional state @@ -211,7 +327,7 @@ def vectorfield( Parameters ---------- - sys : NonlinearIOSystem or callable(t, x, ...) + sys : `NonlinearIOSystem` or callable(t, x, ...) I/O system or function used to generate phase plane data. If a function is given, the remaining arguments are drawn from the `params` keyword. @@ -235,16 +351,30 @@ def vectorfield( Parameters to pass to system. For an I/O system, `params` should be a dict of parameters and values. For a callable, `params` should be dict with key 'args' and value given by a tuple (passed to callable). - color : str + color : matplotlib color spec, optional Plot the vector field in the given color. - ax : Axes + ax : `matplotlib.axes.Axes`, optional Use the given axes for the plot, otherwise use the current axes. Returns ------- out : Quiver + Other Parameters + ---------------- + rcParams : dict + Override the default parameters used for generating plots. + Default is set by `config.defaults['ctrlplot.rcParams']`. + suppress_warnings : bool, optional + If set to True, suppress warning messages in generating trajectories. + zorder : float, optional + Set the zorder for the vectorfield. In not specified, it will be + automatically chosen by `matplotlib.axes.Axes.quiver`. + """ + # Process keywords + rcParams = config._get_param('ctrlplot', 'rcParams', kwargs, pop=True) + # Get system parameters params = kwargs.pop('params', None) @@ -262,10 +392,10 @@ def vectorfield( xlim, ylim, maxlim = _set_axis_limits(ax, pointdata) # Figure out the color to use - color = _get_color(kwargs, ax) + color = _get_color(kwargs, ax=ax) # Make sure all keyword arguments were processed - if check_kwargs and kwargs: + if _check_kwargs and kwargs: raise TypeError("unrecognized keywords: ", str(kwargs)) # Generate phase plane (quiver) data @@ -273,18 +403,132 @@ def vectorfield( sys._update_params(params) for i, x in enumerate(points): vfdata[i, :2] = x - vfdata[i, 2:] = sys._rhs(0, x, 0) + vfdata[i, 2:] = sys._rhs(0, x, np.zeros(sys.ninputs)) + + with plt.rc_context(rcParams): + out = ax.quiver( + vfdata[:, 0], vfdata[:, 1], vfdata[:, 2], vfdata[:, 3], + angles='xy', color=color, zorder=zorder) + + return out + + +def streamplot( + sys, pointdata, gridspec=None, zorder=None, ax=None, vary_color=False, + vary_linewidth=False, cmap=None, norm=None, suppress_warnings=False, + _check_kwargs=True, **kwargs): + """Plot streamlines in the phase plane. + + This function plots the streamlines for a two-dimensional state + space system using the `matplotlib.axes.Axes.streamplot` function. + + Parameters + ---------- + sys : `NonlinearIOSystem` or callable(t, x, ...) + I/O system or function used to generate phase plane data. If a + function is given, the remaining arguments are drawn from the + `params` keyword. + pointdata : list or 2D array + List of the form [xmin, xmax, ymin, ymax] describing the + boundaries of the phase plot. + gridspec : list, optional + Specifies the size of the grid in the x and y axes on which to + generate points. + params : dict or list, optional + Parameters to pass to system. For an I/O system, `params` should be + a dict of parameters and values. For a callable, `params` should be + dict with key 'args' and value given by a tuple (passed to callable). + color : matplotlib color spec, optional + Plot the vector field in the given color. + ax : `matplotlib.axes.Axes`, optional + Use the given axes for the plot, otherwise use the current axes. + + Returns + ------- + out : StreamplotSet + Containter object with lines and arrows contained in the + streamplot. See `matplotlib.axes.Axes.streamplot` for details. + + Other Parameters + ---------------- + cmap : str or Colormap, optional + Colormap to use for varying the color of the streamlines. + norm : `matplotlib.colors.Normalize`, optional + Normalization map to use for scaling the colormap and linewidths. + rcParams : dict + Override the default parameters used for generating plots. + Default is set by `config.default['ctrlplot.rcParams']`. + suppress_warnings : bool, optional + If set to True, suppress warning messages in generating trajectories. + vary_color : bool, optional + If set to True, vary the color of the streamlines based on the + magnitude of the vector field. + vary_linewidth : bool, optional. + If set to True, vary the linewidth of the streamlines based on the + magnitude of the vector field. + zorder : float, optional + Set the zorder for the streamlines. In not specified, it will be + automatically chosen by `matplotlib.axes.Axes.streamplot`. + + """ + # Process keywords + rcParams = config._get_param('ctrlplot', 'rcParams', kwargs, pop=True) - out = ax.quiver( - vfdata[:, 0], vfdata[:, 1], vfdata[:, 2], vfdata[:, 3], - angles='xy', color=color) + # Get system parameters + params = kwargs.pop('params', None) + + # Create system from callable, if needed + sys = _create_system(sys, params) + + # Determine the points on which to generate the streamplot field + points, gridspec = _make_points(pointdata, gridspec, 'meshgrid') + grid_arr_shape = gridspec[::-1] + xs = points[:, 0].reshape(grid_arr_shape) + ys = points[:, 1].reshape(grid_arr_shape) + + # Create axis if needed + if ax is None: + ax = plt.gca() + + # Set the plotting limits + xlim, ylim, maxlim = _set_axis_limits(ax, pointdata) + + # Figure out the color to use + color = _get_color(kwargs, ax=ax) + + # Make sure all keyword arguments were processed + if _check_kwargs and kwargs: + raise TypeError("unrecognized keywords: ", str(kwargs)) + + # Generate phase plane (quiver) data + sys._update_params(params) + us_flat, vs_flat = np.transpose( + [sys._rhs(0, x, np.zeros(sys.ninputs)) for x in points]) + us, vs = us_flat.reshape(grid_arr_shape), vs_flat.reshape(grid_arr_shape) + + magnitudes = np.linalg.norm([us, vs], axis=0) + norm = norm or mpl.colors.Normalize() + normalized = norm(magnitudes) + cmap = plt.get_cmap(cmap) + + with plt.rc_context(rcParams): + default_lw = plt.rcParams['lines.linewidth'] + min_lw, max_lw = 0.25*default_lw, 2*default_lw + linewidths = normalized * (max_lw - min_lw) + min_lw \ + if vary_linewidth else None + color = magnitudes if vary_color else color + + out = ax.streamplot( + xs, ys, us, vs, color=color, linewidth=linewidths, cmap=cmap, + norm=norm, zorder=zorder) return out def streamlines( - sys, pointdata, timedata=1, gridspec=None, gridtype=None, - dir=None, ax=None, check_kwargs=True, **kwargs): + sys, pointdata, timedata=1, gridspec=None, gridtype=None, dir=None, + zorder=None, ax=None, _check_kwargs=True, suppress_warnings=False, + **kwargs): """Plot stream lines in the phase plane. This function plots stream lines for a two-dimensional state space @@ -292,7 +536,7 @@ def streamlines( Parameters ---------- - sys : NonlinearIOSystem or callable(t, x, ...) + sys : `NonlinearIOSystem` or callable(t, x, ...) I/O system or function used to generate phase plane data. If a function is given, the remaining arguments are drawn from the `params` keyword. @@ -315,20 +559,48 @@ def streamlines( If gridtype is 'circlegrid', then `gridspec` is a 2-tuple specifying the radius and number of points around each point in the `pointdata` array. + dir : str, optional + Direction to draw streamlines: 'forward' to flow forward in time + from the reference points, 'reverse' to flow backward in time, or + 'both' to flow both forward and backward. The amount of time to + simulate in each direction is given by the `timedata` argument. params : dict or list, optional Parameters to pass to system. For an I/O system, `params` should be a dict of parameters and values. For a callable, `params` should be dict with key 'args' and value given by a tuple (passed to callable). color : str Plot the streamlines in the given color. - ax : Axes + ax : `matplotlib.axes.Axes`, optional Use the given axes for the plot, otherwise use the current axes. Returns ------- out : list of Line2D objects + Other Parameters + ---------------- + arrows : int + Set the number of arrows to plot along the streamlines. The default + value can be set in `config.defaults['phaseplot.arrows']`. + arrow_size : float + Set the size of arrows to plot along the streamlines. The default + value can be set in `config.defaults['phaseplot.arrow_size']`. + arrow_style : matplotlib patch + Set the style of arrows to plot along the streamlines. The default + value can be set in `config.defaults['phaseplot.arrow_style']`. + rcParams : dict + Override the default parameters used for generating plots. + Default is set by `config.defaults['ctrlplot.rcParams']`. + suppress_warnings : bool, optional + If set to True, suppress warning messages in generating trajectories. + zorder : float, optional + Set the zorder for the streamlines. In not specified, it will be + automatically chosen by `matplotlib.axes.Axes.plot`. + """ + # Process keywords + rcParams = config._get_param('ctrlplot', 'rcParams', kwargs, pop=True) + # Get system parameters params = kwargs.pop('params', None) @@ -351,10 +623,10 @@ def streamlines( xlim, ylim, maxlim = _set_axis_limits(ax, pointdata) # Figure out the color to use - color = _get_color(kwargs, ax) + color = _get_color(kwargs, ax=ax) # Make sure all keyword arguments were processed - if check_kwargs and kwargs: + if _check_kwargs and kwargs: raise TypeError("unrecognized keywords: ", str(kwargs)) # Create reverse time system, if needed @@ -373,30 +645,30 @@ def streamlines( timepts = _make_timepts(timedata, i) traj = _create_trajectory( sys, revsys, timepts, X0, params, dir, - gridtype=gridtype, gridspec=gridspec, xlim=xlim, ylim=ylim) + gridtype=gridtype, gridspec=gridspec, xlim=xlim, ylim=ylim, + suppress_warnings=suppress_warnings) - # Plot the trajectory + # Plot the trajectory (if there is one) if traj.shape[1] > 1: - out.append( - ax.plot(traj[0], traj[1], color=color)) - - # Add arrows to the lines at specified intervals - _add_arrows_to_line2D( - ax, out[-1][0], arrow_pos, arrowstyle=arrow_style, dir=1) + with plt.rc_context(rcParams): + out += ax.plot(traj[0], traj[1], color=color, zorder=zorder) + # Add arrows to the lines at specified intervals + _add_arrows_to_line2D( + ax, out[-1], arrow_pos, arrowstyle=arrow_style, dir=1) return out def equilpoints( - sys, pointdata, gridspec=None, color='k', ax=None, check_kwargs=True, - **kwargs): + sys, pointdata, gridspec=None, color='k', zorder=None, ax=None, + _check_kwargs=True, **kwargs): """Plot equilibrium points in the phase plane. This function plots the equilibrium points for a planar dynamical system. Parameters ---------- - sys : NonlinearIOSystem or callable(t, x, ...) + sys : `NonlinearIOSystem` or callable(t, x, ...) I/O system or function used to generate phase plane data. If a function is given, the remaining arguments are drawn from the `params` keyword. @@ -422,14 +694,26 @@ def equilpoints( dict with key 'args' and value given by a tuple (passed to callable). color : str Plot the equilibrium points in the given color. - ax : Axes + ax : `matplotlib.axes.Axes`, optional Use the given axes for the plot, otherwise use the current axes. Returns ------- out : list of Line2D objects + Other Parameters + ---------------- + rcParams : dict + Override the default parameters used for generating plots. + Default is set by `config.defaults['ctrlplot.rcParams']`. + zorder : float, optional + Set the zorder for the equilibrium points. In not specified, it will + be automatically chosen by `matplotlib.axes.Axes.plot`. + """ + # Process keywords + rcParams = config._get_param('ctrlplot', 'rcParams', kwargs, pop=True) + # Get system parameters params = kwargs.pop('params', None) @@ -448,7 +732,7 @@ def equilpoints( points, _ = _make_points(pointdata, gridspec, 'meshgrid') # Make sure all keyword arguments were processed - if check_kwargs and kwargs: + if _check_kwargs and kwargs: raise TypeError("unrecognized keywords: ", str(kwargs)) # Search for equilibrium points @@ -457,15 +741,15 @@ def equilpoints( # Plot the equilibrium points out = [] for xeq in equilpts: - out.append( - ax.plot(xeq[0], xeq[1], marker='o', color=color)) - + with plt.rc_context(rcParams): + out += ax.plot( + xeq[0], xeq[1], marker='o', color=color, zorder=zorder) return out def separatrices( - sys, pointdata, timedata=None, gridspec=None, ax=None, - check_kwargs=True, **kwargs): + sys, pointdata, timedata=None, gridspec=None, zorder=None, ax=None, + _check_kwargs=True, suppress_warnings=False, **kwargs): """Plot separatrices in the phase plane. This function plots separatrices for a two-dimensional state space @@ -473,7 +757,7 @@ def separatrices( Parameters ---------- - sys : NonlinearIOSystem or callable(t, x, ...) + sys : `NonlinearIOSystem` or callable(t, x, ...) I/O system or function used to generate phase plane data. If a function is given, the remaining arguments are drawn from the `params` keyword. @@ -500,16 +784,41 @@ def separatrices( Parameters to pass to system. For an I/O system, `params` should be a dict of parameters and values. For a callable, `params` should be dict with key 'args' and value given by a tuple (passed to callable). - color : str - Plot the streamlines in the given color. - ax : Axes + color : matplotlib color spec, optional + Plot the separatrices in the given color. If a single color + specification is given, this is used for both stable and unstable + separatrices. If a tuple is given, the first element is used as + the color specification for stable separatrices and the second + element for unstable separatrices. + ax : `matplotlib.axes.Axes`, optional Use the given axes for the plot, otherwise use the current axes. Returns ------- out : list of Line2D objects + Other Parameters + ---------------- + rcParams : dict + Override the default parameters used for generating plots. + Default is set by `config.defaults['ctrlplot.rcParams']`. + suppress_warnings : bool, optional + If set to True, suppress warning messages in generating trajectories. + zorder : float, optional + Set the zorder for the separatrices. In not specified, it will be + automatically chosen by `matplotlib.axes.Axes.plot`. + + Notes + ----- + The value of `config.defaults['separatrices_radius']` is used to set the + offset from the equilibrium point to the starting point of the separatix + traces, in the direction of the eigenvectors evaluated at that + equilibrium point. + """ + # Process keywords + rcParams = config._get_param('ctrlplot', 'rcParams', kwargs, pop=True) + # Get system parameters params = kwargs.pop('params', None) @@ -543,10 +852,10 @@ def separatrices( case (stable_color, unstable_color) | [stable_color, unstable_color]: pass case single_color: - stable_color = unstable_color = color + stable_color = unstable_color = single_color # Make sure all keyword arguments were processed - if check_kwargs and kwargs: + if _check_kwargs and kwargs: raise TypeError("unrecognized keywords: ", str(kwargs)) # Create a "reverse time" system to use for simulation @@ -558,10 +867,6 @@ def separatrices( # Plot separatrices by flowing backwards in time along eigenspaces out = [] for i, xeq in enumerate(equilpts): - # Plot the equilibrium points - out.append( - ax.plot(xeq[0], xeq[1], marker='o', color='k')) - # Figure out the linearization and eigenvectors evals, evecs = np.linalg.eig(sys.linearize(xeq, 0, params=params).A) @@ -586,25 +891,30 @@ def separatrices( if evals[j].real < 0: traj = _create_trajectory( sys, revsys, timepts, x0, params, 'reverse', - gridtype='boxgrid', xlim=xlim, ylim=ylim) + gridtype='boxgrid', xlim=xlim, ylim=ylim, + suppress_warnings=suppress_warnings) color = stable_color linestyle = '--' elif evals[j].real > 0: traj = _create_trajectory( sys, revsys, timepts, x0, params, 'forward', - gridtype='boxgrid', xlim=xlim, ylim=ylim) + gridtype='boxgrid', xlim=xlim, ylim=ylim, + suppress_warnings=suppress_warnings) color = unstable_color linestyle = '-' + # Plot the trajectory (if there is one) if traj.shape[1] > 1: - out.append(ax.plot( - traj[0], traj[1], color=color, linestyle=linestyle)) + with plt.rc_context(rcParams): + out += ax.plot( + traj[0], traj[1], color=color, + linestyle=linestyle, zorder=zorder) # Add arrows to the lines at specified intervals - _add_arrows_to_line2D( - ax, out[-1][0], arrow_pos, arrowstyle=arrow_style, - dir=1) - + with plt.rc_context(rcParams): + _add_arrows_to_line2D( + ax, out[-1], arrow_pos, arrowstyle=arrow_style, + dir=1) return out @@ -621,13 +931,13 @@ def boxgrid(xvals, yvals): Parameters ---------- - xvals, yvals: 1D array-like + xvals, yvals : 1D array_like Array of points defining the points on the lower and left edges of the box. Returns ------- - grid: 2D array + grid : 2D array Array with shape (p, 2) defining the points along the edges of the box, where p is the number of points around the edge. @@ -650,14 +960,14 @@ def meshgrid(xvals, yvals): Parameters ---------- - xvals, yvals: 1D array-like + xvals, yvals : 1D array_like Array of points defining the points on the lower and left edges of the box. Returns ------- - grid: 2D array - Array of points with shape (n * m, 2) defining the mesh + grid : 2D array + Array of points with shape (n * m, 2) defining the mesh. """ xvals, yvals = np.meshgrid(xvals, yvals) @@ -677,7 +987,7 @@ def circlegrid(centers, radius, num): Parameters ---------- - centers : 2D array-like + centers : 2D array_like Array of points with shape (p, 2) defining centers of the circles. radius : float Radius of the points to be generated around each center. @@ -686,7 +996,7 @@ def circlegrid(centers, radius, num): Returns ------- - grid: 2D array + grid : 2D array Array of points with shape (p * num, 2) defining the circles. """ @@ -698,6 +1008,7 @@ def circlegrid(centers, radius, num): theta in np.linspace(0, 2 * math.pi, num, endpoint=False)]) return grid + # # Internal utility functions # @@ -718,6 +1029,7 @@ def _create_system(sys, params): return NonlinearIOSystem( _update, _output, states=2, inputs=0, outputs=0, name="_callable") + # Set axis limits for the plot def _set_axis_limits(ax, pointdata): # Get the current axis limits @@ -760,7 +1072,7 @@ def _find_equilpts(sys, points, params=None): equilpts = [] for i, x0 in enumerate(points): # Look for an equilibrium point near this point - xeq, ueq = find_eqpt(sys, x0, 0, params=params) + xeq, ueq = find_operating_point(sys, x0, 0, params=params) if xeq is None: continue # didn't find anything @@ -861,34 +1173,24 @@ def _parse_arrow_keywords(kwargs): return arrow_pos, arrow_style -def _get_color(kwargs, ax=None): - if 'color' in kwargs: - return kwargs.pop('color') - - # If we were passed an axis, try to increment color from previous - color_cycle = plt.rcParams['axes.prop_cycle'].by_key()['color'] - if ax is not None: - 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 - return color_cycle[color_offset % len(color_cycle)] - else: - return None - - +# TODO: move to ctrlplot? def _create_trajectory( - sys, revsys, timepts, X0, params, dir, + sys, revsys, timepts, X0, params, dir, suppress_warnings=False, gridtype=None, gridspec=None, xlim=None, ylim=None): - # Comput ethe forward trajectory + # Compute the forward trajectory if dir == 'forward' or dir == 'both': - fwdresp = input_output_response(sys, timepts, X0=X0, params=params) + fwdresp = input_output_response( + sys, timepts, initial_state=X0, params=params, ignore_errors=True) + if not fwdresp.success and not suppress_warnings: + warnings.warn(f"initial_state={X0}, {fwdresp.message}") # Compute the reverse trajectory if dir == 'reverse' or dir == 'both': revresp = input_output_response( - revsys, timepts, X0=X0, params=params) + revsys, timepts, initial_state=X0, params=params, + ignore_errors=True) + if not revresp.success and not suppress_warnings: + warnings.warn(f"initial_state={X0}, {revresp.message}") # Create the trace to plot if dir == 'forward': @@ -898,7 +1200,14 @@ def _create_trajectory( elif dir == 'both': traj = np.hstack([revresp.states[:, :1:-1], fwdresp.states]) - return traj + # Remove points outside the window (keep first point beyond boundary) + inrange = np.asarray( + (traj[0] >= xlim[0]) & (traj[0] <= xlim[1]) & + (traj[1] >= ylim[0]) & (traj[1] <= ylim[1])) + inrange[:-1] = inrange[:-1] | inrange[1:] # keep if next point in range + inrange[1:] = inrange[1:] | inrange[:-1] # keep if prev point in range + + return traj[:, inrange] def _make_timepts(timepts, i): @@ -924,9 +1233,12 @@ def phase_plot(odefun, X=None, Y=None, scale=1, X0=None, T=None, """(legacy) Phase plot for 2D dynamical systems. + .. deprecated:: 0.10.1 + This function is deprecated; use `phase_plane_plot` instead. + Produces a vector field or stream line plot for a planar system. This - function has been replaced by the :func:`~control.phase_plane_map` and - :func:`~control.phase_plane_plot` functions. + function has been replaced by the `phase_plane_map` and + `phase_plane_plot` functions. Call signatures: phase_plot(func, X, Y, ...) - display vector field on meshgrid @@ -940,8 +1252,8 @@ def phase_plot(odefun, X=None, Y=None, scale=1, X0=None, T=None, ---------- func : callable(x, t, ...) Computes the time derivative of y (compatible with odeint). The - function should be the same for as used for :mod:`scipy.integrate`. - Namely, it should be a function of the form dxdt = F(t, x) that + function should be the same for as used for `scipy.integrate`. + Namely, it should be a function of the form dx/dt = F(t, x) that accepts a state x of dimension 2 and returns a derivative dx/dt of dimension 2. X, Y: 3-element sequences, optional, as [start, stop, npts] @@ -954,36 +1266,36 @@ def phase_plot(odefun, X=None, Y=None, scale=1, X0=None, T=None, X0: ndarray of initial conditions, optional List of initial conditions from which streamlines are plotted. Each initial condition should be a pair of numbers. - T: array-like or number, optional + T: array_like or number, optional Length of time to run simulations that generate streamlines. If a single number, the same simulation time is used for all initial conditions. Otherwise, should be a list of length len(X0) that gives the simulation time for each initial condition. Default value = 50. lingrid : integer or 2-tuple of integers, optional - Argument is either N or (N, M). If X0 is given and X, Y are missing, - a grid of arrows is produced using the limits of the initial - conditions, with N grid points in each dimension or N grid points in x - and M grid points in y. + Argument is either N or (N, M). If X0 is given and X, Y are + missing, a grid of arrows is produced using the limits of the + initial conditions, with N grid points in each dimension or N grid + points in x and M grid points in y. lintime : integer or tuple (integer, float), optional - If a single integer N is given, draw N arrows using equally space time - points. If a tuple (N, lambda) is given, draw N arrows using + If a single integer N is given, draw N arrows using equally space + time points. If a tuple (N, lambda) is given, draw N arrows using exponential time constant lambda - timepts : array-like, optional + timepts : array_like, optional Draw arrows at the given list times [t1, t2, ...] tfirst : bool, optional - If True, call `func` with signature `func(t, x, ...)`. + If True, call `func` with signature ``func(t, x, ...)``. params: tuple, optional - List of parameters to pass to vector field: `func(x, t, *params)` + List of parameters to pass to vector field: ``func(x, t, *params)``. - See also + See Also -------- - box_grid : construct box-shaped grid of initial conditions + box_grid """ # Generate a deprecation warning warnings.warn( - "phase_plot is deprecated; use phase_plot_plot instead", + "phase_plot() is deprecated; use phase_plane_plot() instead", FutureWarning) # @@ -1000,9 +1312,9 @@ def phase_plot(odefun, X=None, Y=None, scale=1, X0=None, T=None, # Get parameters to pass to function if parms: warnings.warn( - f"keyword 'parms' is deprecated; use 'params'", FutureWarning) + "keyword 'parms' is deprecated; use 'params'", FutureWarning) if params: - raise ControlArgument(f"duplicate keywords 'parms' and 'params'") + raise ControlArgument("duplicate keywords 'parms' and 'params'") else: params = parms @@ -1053,10 +1365,11 @@ def phase_plot(odefun, X=None, Y=None, scale=1, X0=None, T=None, if scale is None: plt.quiver(x1, x2, dx[:,:,1], dx[:,:,2], angles='xy') elif (scale != 0): + plt.quiver(x1, x2, dx[:,:,0]*np.abs(scale), + dx[:,:,1]*np.abs(scale), angles='xy') #! TODO: optimize parameters for arrows #! TODO: figure out arguments to make arrows show up correctly - xy = plt.quiver(x1, x2, dx[:,:,0]*np.abs(scale), - dx[:,:,1]*np.abs(scale), angles='xy') + # xy = plt.quiver(...) # set(xy, 'LineWidth', PP_arrow_linewidth, 'Color', 'b') #! TODO: Tweak the shape of the plot @@ -1166,30 +1479,36 @@ def phase_plot(odefun, X=None, Y=None, scale=1, X0=None, T=None, #! TODO: figure out arguments to make arrows show up correctly plt.quiver(x1, x2, dx[:,:,0], dx[:,:,1], angles='xy') elif scale != 0 and Narrows > 0: + plt.quiver(x1, x2, dx[:,:,0]*abs(scale), dx[:,:,1]*abs(scale), + angles='xy') #! TODO: figure out arguments to make arrows show up correctly - xy = plt.quiver(x1, x2, dx[:,:,0]*abs(scale), dx[:,:,1]*abs(scale), - angles='xy') + # xy = plt.quiver(...) # set(xy, 'LineWidth', PP_arrow_linewidth) # set(xy, 'AutoScale', 'off') # set(xy, 'AutoScaleFactor', 0) if scale < 0: - bp = plt.plot(x1, x2, 'b.'); # add dots at base + plt.plot(x1, x2, 'b.'); # add dots at base + # bp = plt.plot(...) # set(bp, 'MarkerSize', PP_arrow_markersize) # Utility function for generating initial conditions around a box def box_grid(xlimp, ylimp): - """box_grid generate list of points on edge of box + """Generate list of points on edge of box. + + .. deprecated:: 0.10.0 + Use `phaseplot.boxgrid` instead. list = box_grid([xmin xmax xnum], [ymin ymax ynum]) generates a list of points that correspond to a uniform grid at the end of the box defined by the corners [xmin ymin] and [xmax ymax]. + """ # Generate a deprecation warning warnings.warn( - "box_grid is deprecated; use phaseplot.boxgrid instead", + "box_grid() is deprecated; use phaseplot.boxgrid() instead", FutureWarning) return boxgrid( @@ -1200,9 +1519,8 @@ def box_grid(xlimp, ylimp): # TODO: rename to something more useful (or remove??) def _find(condition): """Returns indices where ravel(a) is true. - Private implementation of deprecated matplotlib.mlab.find - """ - return np.nonzero(np.ravel(condition))[0] - + Private implementation of deprecated `matplotlib.mlab.find`. + """ + return np.nonzero(np.ravel(condition))[0] diff --git a/control/pzmap.py b/control/pzmap.py index d7662d1d9..42ba8e087 100644 --- a/control/pzmap.py +++ b/control/pzmap.py @@ -1,36 +1,41 @@ # pzmap.py - computations involving poles and zeros # -# Original author: Richard M. Murray -# Date: 7 Sep 2009 -# -# This file contains functions that compute poles, zeros and related -# 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.) -# +# Initial author: Richard M. Murray +# Creation date: 7 Sep 2009 + +"""Computations involving poles and zeros. + +This module contains functions that compute poles, zeros and related +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 itertools import warnings -from math import pi import matplotlib.pyplot as plt import numpy as np -from numpy import cos, exp, imag, linspace, real, sin, sqrt +from numpy import imag, real from . import config -from .freqplot import _freqplot_defaults, _get_line_labels +from .config import _process_legacy_keyword +from .ctrlplot import ControlPlot, _get_color, _get_color_offset, \ + _get_line_labels, _process_ax_keyword, _process_legend_keywords, \ + _process_line_labels, _update_plot_title from .grid import nogrid, sgrid, zgrid from .iosys import isctime, isdtime -from .lti import LTI from .statesp import StateSpace from .xferfcn import TransferFunction -__all__ = ['pole_zero_map', 'pole_zero_plot', 'pzmap', 'PoleZeroData'] +__all__ = ['pole_zero_map', 'pole_zero_plot', 'pzmap', 'PoleZeroData', + 'PoleZeroList'] # Define default parameter values for this module _pzmap_defaults = { - 'pzmap.grid': None, # Plot omega-damping grid + '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': 1.8, # Amount to scale plots beyond features @@ -61,7 +66,7 @@ class PoleZeroData: system poles and zeros, as well as the gains and loci for root locus diagrams. - Attributes + Parameters ---------- poles : ndarray 1D array of system poles. @@ -69,39 +74,29 @@ class PoleZeroData: 1D array of system zeros. gains : ndarray, optional 1D array of gains for root locus plots. - loci : ndarray, optiona + loci : ndarray, optional 2D array of poles, with each row corresponding to a gain. sysname : str, optional System name. - sys : StateSpace or TransferFunction + sys : `StateSpace` or `TransferFunction`, optional System corresponding to the data. + dt : None, True or float, optional + System timebase (used for showing stability boundary). + sort_loci : bool, optional + Set to False to turn off sorting of loci into unique branches. """ 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. - - """ + sys=None, sort_loci=True): + from .rlocus import _RLSortRoots self.poles = poles self.zeros = zeros self.gains = gains - self.loci = loci + if loci is not None and sort_loci: + self.loci = _RLSortRoots(loci) + else: + self.loci = loci self.dt = dt self.sysname = sysname self.sys = sys @@ -113,27 +108,18 @@ def __iter__(self): def plot(self, *args, **kwargs): """Plot the pole/zero data. - See :func:`~control.pole_zero_plot` for description of arguments - and keywords. + See `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.""" + """List of PoleZeroData objects with plotting capability.""" def plot(self, *args, **kwargs): """Plot pole/zero data. - See :func:`~control.pole_zero_plot` for description of arguments - and keywords. + See `pole_zero_plot` for description of arguments and keywords. """ return pole_zero_plot(self, *args, **kwargs) @@ -145,14 +131,14 @@ def pole_zero_map(sysdata): Parameters ---------- - sys : LTI system (StateSpace or TransferFunction) + sysdata : `StateSpace` or `TransferFunction` Linear system for which poles and zeros are computed. Returns ------- - pzmap_data : PoleZeroMap + 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 + ``pzmap_data.plot()`` or ``pole_zero_plot(pzmap_data)`` to plot the pole/zero map. """ @@ -172,13 +158,12 @@ def pole_zero_map(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 +# 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 pole_zero_plot( - data, plot=None, grid=None, title=None, marker_color=None, - marker_size=None, marker_width=None, legend_loc='upper right', - xlim=None, ylim=None, interactive=None, ax=None, scaling=None, - initial_gain=None, **kwargs): + data, plot=None, grid=None, title=None, color=None, marker_size=None, + marker_width=None, xlim=None, ylim=None, interactive=None, ax=None, + scaling=None, initial_gain=None, label=None, **kwargs): """Plot a pole/zero map for a linear system. If the system data include root loci, a root locus diagram for the @@ -189,60 +174,86 @@ def pole_zero_plot( Parameters ---------- - sysdata : List of PoleZeroData objects or LTI systems + data : 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 + or root_locus_map() that are to be plotted. If a list of systems is given, the poles and zeros of those systems will be plotted. 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']. + 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 additional lines. Default + value is set by `config.defaults['pzmap.grid']` or + `config.defaults['rlocus.grid']`. plot : bool, optional - (legacy) If ``True`` a graph is generated with Matplotlib, + (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 zeros is returned. Returns ------- - lines : array of list of Line2D - Array of Line2D objects for each set of markers in the plot. The - shape of the array is given by (nsys, 2) where nsys is the number + cplt : `ControlPlot` object + Object containing the data that were plotted. See `ControlPlot` + for more detailed information. + cplt.lines : array of list of `matplotlib.lines.Line2D` + The shape of the array is given by (nsys, 2) where nsys is the number of systems or responses passed to the function. The second index specifies the pzmap object type: - * lines[idx, 0]: poles - * lines[idx, 1]: zeros + - lines[idx, 0]: poles + - lines[idx, 1]: zeros - poles, zeros: list of arrays + cplt.axes : 2D array of `matplotlib.axes.Axes` + Axes for each subplot. + cplt.figure : `matplotlib.figure.Figure` + Figure containing the plot. + cplt.legend : 2D array of `matplotlib.legend.Legend` + Legend object(s) contained in the plot. + poles, zeros : list of arrays (legacy) If the `plot` keyword is given, the system poles and zeros are returned. 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). + ax : `matplotlib.axes.Axes`, optional + The matplotlib axes to draw the figure on. If not specified and + the current figure has a single axes, that axes is used. + Otherwise, a new figure is created. + color : matplotlib color spec, optional + Specify the color of the markers and lines. + initial_gain : float, optional + If given, the specified system gain will be marked on the plot. + interactive : bool, optional + Turn off interactive mode for root locus plots. + label : str or array_like of str, optional + If present, replace automatically generated label(s) with given + label(s). If data is a list, strings should be specified for each + system. + legend_loc : int or str, optional + Include a legend in the given location. Default is 'upper right', + with no legend for a single response. Use False to suppress legend. marker_color : str, optional Set the color of the markers used for poles and zeros. marker_size : int, optional Set the size of the markers used for poles and zeros. marker_width : int, optional Set the line width of the markers used for poles and zeros. - 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. + rcParams : dict + Override the default parameters used for generating plots. + Default is set by `config.defaults['ctrlplot.rcParams']`. + scaling : str or list, optional + Set the type of axis scaling. Can be 'equal' (default), 'auto', or + a list of the form [xmin, xmax, ymin, ymax]. + show_legend : bool, optional + Force legend to be shown if True or hidden if False. If + None, then show legend when there is more than one line on the + plot or `legend_loc` has been specified. + title : str, optional + Set the title of the plot. Defaults to plot type and system name(s). xlim : list, optional 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 ----- @@ -252,16 +263,31 @@ def pole_zero_plot( matplotlib.pyplot.gca().axis('auto') and then set the axis limits to the desired values. + Pole/zero plots that use the continuous-time omega-damping grid do not + work with the `ax` keyword argument, due to the way that axes grids + are implemented. The `grid` argument must be set to False or + 'empty' when using the `ax` keyword argument. + + The limits of the pole/zero plot are set based on the location features + in the plot, including the location of poles, zeros, and local maxima + of root locus curves. The locations of local maxima are expanded by a + buffer factor set by `config.defaults['phaseplot.buffer_factor']` that is + applied to the locations of the local maxima. The final axis limits + are set to by the largest features in the plot multiplied by an + expansion factor set by `config.defaults['phaseplot.expansion_factor']`. + The default value for the buffer factor is 1.05 (5% buffer around local + maxima) and the default value for the expansion factor is 1.8 (80% + increase in limits around the most distant features). + """ # Get parameter values - grid = config._get_param('pzmap', 'grid', grid, _pzmap_defaults) + label = _process_line_labels(label) marker_size = config._get_param('pzmap', 'marker_size', marker_size, 6) marker_width = config._get_param('pzmap', 'marker_width', marker_width, 1.5) - xlim_user, ylim_user = xlim, ylim - freqplot_rcParams = config._get_param( - 'freqplot', 'rcParams', kwargs, _freqplot_defaults, - pop=True, last=True) + user_color = _process_legacy_keyword(kwargs, 'marker_color', 'color', color) + rcParams = config._get_param('ctrlplot', 'rcParams', kwargs, pop=True) user_ax = ax + xlim_user, ylim_user = xlim, ylim # If argument was a singleton, turn it into a tuple if not isinstance(data, (list, tuple)): @@ -288,8 +314,8 @@ def pole_zero_plot( # Legacy return value processing if plot is not None: warnings.warn( - "`pole_zero_plot` return values of poles, zeros is deprecated; " - "use pole_zero_map()", DeprecationWarning) + "pole_zero_plot() return value of poles, zeros is deprecated; " + "use pole_zero_map()", FutureWarning) # Extract out the values that we will eventually return poles = [response.poles for response in pzmap_responses] @@ -302,58 +328,49 @@ def pole_zero_plot( return poles, zeros # Initialize the figure - # TODO: turn into standard utility function (from plotutil.py?) - 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(), [] - - with plt.rc_context(freqplot_rcParams): - if grid and grid != 'empty': - plt.clf() - if all([isctime(dt=response.dt) for response in data]): - ax, fig = sgrid(scaling=scaling) - elif all([isdtime(dt=response.dt) for response in data]): - ax, fig = zgrid(scaling=scaling) - else: - raise ValueError( - "incompatible time bases; don't know how to grid") - # Store the limits for later use - xlim, ylim = ax.get_xlim(), ax.get_ylim() - elif len(axs) == 0: - if grid == 'empty': - # Leave off grid entirely + fig, ax = _process_ax_keyword( + user_ax, rcParams=rcParams, squeeze=True, create_axes=False) + legend_loc, _, show_legend = _process_legend_keywords( + kwargs, None, 'upper right') + + # Make sure there are no remaining keyword arguments + if kwargs: + raise TypeError("unrecognized keywords: ", str(kwargs)) + + if ax is None: + # Determine what type of grid to use + if rlocus_plot: + from .rlocus import _rlocus_defaults + grid = config._get_param('rlocus', 'grid', grid, _rlocus_defaults) + else: + grid = config._get_param('pzmap', 'grid', grid, _pzmap_defaults) + + # Create the axes with the appropriate grid + with plt.rc_context(rcParams): + if grid and grid != 'empty': + if all([isctime(dt=response.dt) for response in data]): + ax, fig = sgrid(scaling=scaling) + elif all([isdtime(dt=response.dt) for response in data]): + ax, fig = zgrid(scaling=scaling) + else: + raise ValueError( + "incompatible time bases; don't know how to grid") + # Store the limits for later use + xlim, ylim = ax.get_xlim(), ax.get_ylim() + elif grid == 'empty': ax = plt.axes() xlim = ylim = [np.inf, -np.inf] # use data to set limits else: - # draw stability boundary; use first response timebase ax, fig = nogrid(data[0].dt, scaling=scaling) xlim, ylim = ax.get_xlim(), ax.get_ylim() - else: - # Use the existing axes and any grid that is there - ax = axs[0] - - # Store the limits for later use - xlim, ylim = ax.get_xlim(), ax.get_ylim() - - # Issue a warning if the user tried to set the grid type - if grid: - warnings.warn("axis already exists; grid keyword ignored") + else: + # Store the limits for later use + xlim, ylim = ax.get_xlim(), ax.get_ylim() + if grid is not None: + warnings.warn("axis already exists; grid keyword ignored") - # Handle color cycle manually as all root locus segments - # of the same system are expected to be of the same color - 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 + # Get color offset for the next line to be drawn + color_offset, color_cycle = _get_color_offset(ax) # Create a list of lines for the output out = np.empty( @@ -366,32 +383,33 @@ def pole_zero_plot( 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 = marker_color + # Get the color to use for this response + color = _get_color(user_color, offset=color_offset + idx) # Plot the locations of the poles and zeros if len(poles) > 0: - label = response.sysname if response.loci is None else None + if label is None: + label_ = response.sysname if response.loci is None else None + else: + label_ = label[idx] out[idx, 0] = ax.plot( real(poles), imag(poles), marker='x', linestyle='', markeredgecolor=color, markerfacecolor=color, markersize=marker_size, markeredgewidth=marker_width, - label=label) + color=color, label=label_) if len(zeros) > 0: out[idx, 1] = ax.plot( real(zeros), imag(zeros), marker='o', linestyle='', markeredgecolor=color, markerfacecolor='none', - markersize=marker_size, markeredgewidth=marker_width) + markersize=marker_size, markeredgewidth=marker_width, + color=color) # Plot the loci, if present if response.loci is not None: + label_ = response.sysname if label is None else label[idx] for locus in response.loci.transpose(): out[idx, 2] += ax.plot( - real(locus), imag(locus), color=color, - label=response.sysname) + real(locus), imag(locus), color=color, label=label_) # Compute the axis limits to use based on the response resp_xlim, resp_ylim = _compute_root_locus_limits(response) @@ -422,7 +440,7 @@ def pole_zero_plot( lines, labels = _get_line_labels(ax) # Add legend if there is more than one system plotted - if len(labels) > 1 and legend_loc is not False: + if show_legend or len(labels) > 1 and show_legend != False: if response.loci is None: # Use "x o" for the system label, via matplotlib tuple handler from matplotlib.legend_handler import HandlerTuple @@ -435,26 +453,30 @@ def pole_zero_plot( markeredgecolor=pole_line.get_markerfacecolor(), markerfacecolor='none', markersize=marker_size, markeredgewidth=marker_width) - handle = (pole_line, zero_line) - line_tuples.append(handle) + handle = (pole_line, zero_line) + line_tuples.append(handle) - with plt.rc_context(freqplot_rcParams): - ax.legend( + with plt.rc_context(rcParams): + legend = ax.legend( line_tuples, labels, loc=legend_loc, handler_map={tuple: HandlerTuple(ndivide=None)}) else: # Regular legend, with lines - with plt.rc_context(freqplot_rcParams): - ax.legend(lines, labels, loc=legend_loc) + with plt.rc_context(rcParams): + legend = ax.legend(lines, labels, loc=legend_loc) + else: + legend = None # Add the title if title is None: - title = "Pole/zero plot for " + ", ".join(labels) + title = ("Root locus plot for " if rlocus_plot + else "Pole/zero plot for ") + ", ".join(labels) if user_ax is None: - with plt.rc_context(freqplot_rcParams): - fig.suptitle(title) + _update_plot_title( + title, fig, rcParams=rcParams, frame='figure', + use_existing=False) - # Add dispather to handle choosing a point on the diagram + # Add dispatcher to handle choosing a point on the diagram if interactive: if len(pzmap_responses) > 1: raise NotImplementedError( @@ -474,7 +496,7 @@ def _click_dispatcher(event): _mark_root_locus_gain(ax, sys, K) # Display the parameters in the axes title - with plt.rc_context(freqplot_rcParams): + with plt.rc_context(rcParams): ax.set_title(_create_root_locus_label(sys, K, s)) ax.figure.canvas.draw() @@ -488,7 +510,7 @@ def _click_dispatcher(event): else: TypeError("system lists not supported with legacy return values") - return out + return ControlPlot(out, ax, fig, legend=legend) # Utility function to find gain corresponding to a click event @@ -496,7 +518,7 @@ 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 + # Catch type error when event click is in the figure but not on curve try: s = complex(event.xdata, event.ydata) K = -1. / sys(s) @@ -504,11 +526,9 @@ def _find_root_locus_gain(event, sys, ax): 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') + K, s = float('inf'), None + K_xlim = K_ylim = float('inf') # # Compute tolerances for deciding if we clicked on the root locus @@ -526,9 +546,8 @@ def _find_root_locus_gain(event, sys, ax): 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 + return None, None # Mark points corresponding to a given gain on root locus plot @@ -541,7 +560,7 @@ def _mark_root_locus_gain(ax, sys, K): line.remove() del line - # Visualise clicked point, displaying all roots + # Visualize clicked point, displaying all roots # TODO: allow marker parameters to be set nump, denp = _systopoly1d(sys) root_array = _RLFindRoots(nump, denp, K.real) @@ -586,14 +605,16 @@ def _compute_root_locus_limits(response): # 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) * rho), - max(xlim[1], np.max(xpeaks) * rho) - ] + if xpeaks.size > 0: + 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) * rho) + if ypeaks.size > 0: + ylim = max(ylim, np.max(ypeaks) * rho) if isctime(dt=response.dt): # Adjust the limits to include some space around features diff --git a/control/rlocus.py b/control/rlocus.py index ea17ae942..c4ef8b40e 100644 --- a/control/rlocus.py +++ b/control/rlocus.py @@ -1,31 +1,26 @@ # rlocus.py - code for computing a root locus plot -# Code contributed by Ryan Krauss, 2010 # -# 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. -# This allows Ryan's code to run on a standard signal.ltisys object -# or a control.TransferFunction object. -# * Added some comments to make sure I understand the code +# Initial author: Ryan Krauss +# Creation date: 2010 # -# RMM, 2 April 2011: modified to work with new LTI structure (see ChangeLog) -# * Not tested: should still work on signal.ltisys objects +# RMM, 17 June 2010: modified to be a standalone piece of code # -# Sawyer B. Fuller (minster@uw.edu) 21 May 2020: -# * added compatibility with discrete-time systems. +# RMM, 2 April 2011: modified to work with new LTI structure # +# Sawyer B. Fuller (minster@uw.edu) 21 May 2020: added compatibility +# with discrete-time systems. + +"""Code for computing a root locus plot.""" import warnings -from functools import partial -import matplotlib.pyplot as plt import numpy as np import scipy.signal # signal processing toolbox -from numpy import array, imag, poly1d, real, row_stack, zeros_like +from numpy import poly1d, vstack, zeros_like from . import config +from .ctrlplot import ControlPlot from .exception import ControlMIMONotImplemented -from .iosys import isdtime from .lti import LTI from .xferfcn import _convert_to_transfer_function @@ -42,28 +37,27 @@ 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. + is a linear system and k varies over a range of gains. Parameters ---------- - sys : LTI system or list of LTI systems + sysdata : 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. + gains : array_like, optional + Gains to use in computing plot of closed-loop poles. If not given, + gains are chosen to include the main features of the root locus map. 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`. + rldata : `PoleZeroData` or list of `PoleZeroData` + Root locus data object(s). 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`. + assigned to the tuple ``(roots, gains)``. """ from .pzmap import PoleZeroData, PoleZeroList @@ -88,7 +82,7 @@ def root_locus_map(sysdata, gains=None): root_array = _RLSortRoots(root_array) responses.append(PoleZeroData( - sys.poles(), sys.zeros(), kvect, root_array, + sys.poles(), sys.zeros(), kvect, root_array, sort_loci=False, dt=sys.dt, sysname=sys.name, sys=sys)) if isinstance(sysdata, (list, tuple)): @@ -98,57 +92,82 @@ def root_locus_map(sysdata, gains=None): def root_locus_plot( - sysdata, kvect=None, grid=None, plot=None, **kwargs): + sysdata, gains=None, grid=None, plot=None, **kwargs): """Root locus plot. 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. + is a linear system and k varies over a range of gains. Parameters ---------- 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. + gains : array_like, optional + Gains to use in computing plot of closed-loop poles. If not given, + gains are chosen to include the main features of the root locus map. xlim : tuple or list, optional - Set limits of x axis, normally with tuple - (see :doc:`matplotlib:api/axes_api`). + Set limits of x axis (see `matplotlib.axes.Axes.set_xlim`). ylim : tuple or list, optional - Set limits of y axis, normally with tuple - (see :doc:`matplotlib:api/axes_api`). + Set limits of y axis (see `matplotlib.axes.Axes.set_ylim`). 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. - 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 + 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 additional lines. Default value is set + by `config.defaults['rlocus.grid']`. initial_gain : float, optional Mark the point on the root locus diagram corresponding to the given gain. + color : matplotlib color spec, optional + Specify the color of the markers and lines. Returns ------- - lines : array of list of Line2D - Array of Line2D objects for each set of markers in the plot. The - shape of the array is given by (nsys, 3) where nsys is the number + cplt : `ControlPlot` object + Object containing the data that were plotted. See `ControlPlot` + for more detailed information. + cplt.lines : array of list of `matplotlib.lines.Line2D` + The shape of the array is given by (nsys, 3) where nsys is the number of systems or responses passed to the function. The second index specifies the object type: - * lines[idx, 0]: poles - * lines[idx, 1]: zeros - * lines[idx, 2]: loci + - lines[idx, 0]: poles + - lines[idx, 1]: zeros + - lines[idx, 2]: loci + cplt.axes : 2D array of `matplotlib.axes.Axes` + Axes for each subplot. + cplt.figure : `matplotlib.figure.Figure` + Figure containing the plot. + cplt.legend : 2D array of `matplotlib.legend.Legend` + Legend object(s) contained in the plot. 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). + (legacy) If the `plot` keyword is given, returns the closed-loop + root locations, arranged such that each row corresponds to a gain, + and the array of gains (same as `gains` keyword argument if provided). + + Other Parameters + ---------------- + ax : `matplotlib.axes.Axes`, optional + The matplotlib axes to draw the figure on. If not specified and + the current figure has a single axes, that axes is used. + Otherwise, a new figure is created. + label : str or array_like of str, optional + If present, replace automatically generated label(s) with the given + label(s). If sysdata is a list, strings should be specified for each + system. + legend_loc : int or str, optional + Include a legend in the given location. Default is 'center right', + with no legend for a single response. Use False to suppress legend. + show_legend : bool, optional + Force legend to be shown if True or hidden if False. If + None, then show legend when there is more than one line on the + plot or `legend_loc` has been specified. + title : str, optional + Set the title of the plot. Defaults to plot type and system name(s). Notes ----- @@ -158,15 +177,14 @@ def root_locus_plot( then set the axis limits to the desired values. """ - from .pzmap import pole_zero_plot - - # Set default parameters - grid = config._get_param('rlocus', 'grid', grid, _rlocus_defaults) + # Legacy parameters + for oldkey in ['kvect', 'k']: + gains = config._process_legacy_keyword(kwargs, oldkey, 'gains', gains) if isinstance(sysdata, list) and all( [isinstance(sys, LTI) for sys in sysdata]) or \ isinstance(sysdata, LTI): - responses = root_locus_map(sysdata, gains=kvect) + responses = root_locus_map(sysdata, gains=gains) else: responses = sysdata @@ -174,24 +192,24 @@ def root_locus_plot( # Process `plot` keyword # # See bode_plot for a description of how this keyword is handled to - # support legacy implementatoins of root_locus. + # support legacy implementations of root_locus. # if plot is not None: warnings.warn( - "`root_locus` return values of roots, gains is deprecated; " - "use root_locus_map()", DeprecationWarning) + "root_locus() return value of roots, gains is deprecated; " + "use root_locus_map()", FutureWarning) if plot is False: return responses.loci, responses.gains # Plot the root loci - out = responses.plot(grid=grid, **kwargs) + cplt = responses.plot(grid=grid, **kwargs) # Legacy processing: return locations of poles and zeros as a tuple if plot is True: return responses.loci, responses.gains - return out + return ControlPlot(cplt.lines, cplt.axes, cplt.figure) def _default_gains(num, den, xlim, ylim): @@ -199,8 +217,8 @@ def _default_gains(num, den, xlim, ylim): References ---------- - Ogata, K. (2002). Modern control engineering (4th ed.). Upper - Saddle River, NJ : New Delhi: Prentice Hall.. + .. [1] Ogata, K. (2002). Modern control engineering (4th + ed.). Upper Saddle River, NJ : New Delhi: Prentice Hall.. """ # Compute the break points on the real axis for the root locus plot @@ -376,7 +394,7 @@ def _k_max(num, den, real_break_points, k_break_points): def _systopoly1d(sys): - """Extract numerator and denominator polynomails for a system""" + """Extract numerator and denominator polynomials for a system""" # Allow inputs from the signal processing toolbox if (isinstance(sys, scipy.signal.lti)): nump = sys.num @@ -419,7 +437,7 @@ def _RLFindRoots(nump, denp, kvect): curroots.sort() roots.append(curroots) - return row_stack(roots) + return vstack(roots) def _RLSortRoots(roots): @@ -428,20 +446,18 @@ def _RLSortRoots(roots): one branch to another.""" sorted = zeros_like(roots) - for n, row in enumerate(roots): - if n == 0: - sorted[n, :] = row - else: - # sort the current row by finding the element with the - # smallest absolute distance to each root in the - # previous row - available = list(range(len(prevrow))) - for elem in row: - evect = elem - prevrow[available] - ind1 = abs(evect).argmin() - ind = available.pop(ind1) - sorted[n, ind] = elem - prevrow = sorted[n, :] + sorted[0] = roots[0] + for n, row in enumerate(roots[1:], start=1): + # sort the current row by finding the element with the + # smallest absolute distance to each root in the + # previous row + prevrow = sorted[n-1] + available = list(range(len(prevrow))) + for elem in row: + evect = elem - prevrow[available] + ind1 = abs(evect).argmin() + ind = available.pop(ind1) + sorted[n, ind] = elem return sorted diff --git a/control/robust.py b/control/robust.py index 75930e59e..197222390 100644 --- a/control/robust.py +++ b/control/robust.py @@ -1,69 +1,40 @@ # robust.py - tools for robust control # -# Author: Steve Brunton, Kevin Chen, Lauren Padilla -# Date: 24 Dec 2010 -# -# This file contains routines for obtaining reduced order models -# -# 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$ +# Initial authors: Steve Brunton, Kevin Chen, Lauren Padilla +# Creation date: 24 Dec 2010 + +"""Robust control synthesis algorithms.""" + +import warnings # External packages and modules import numpy as np -import warnings -from .exception import * + +from .exception import ControlSlycot from .statesp import StateSpace -from .statefbk import * def h2syn(P, nmeas, ncon): - """H_2 control synthesis for plant P. + """H2 control synthesis for plant P. Parameters ---------- - P: partitioned lti plant (State-space sys) - nmeas: number of measurements (input to controller) - ncon: number of control inputs (output from controller) + P : `StateSpace` + Partitioned LTI plant (state-space system). + nmeas : int + Number of measurements (input to controller). + ncon : int + Number of control inputs (output from controller). Returns ------- - K: controller to stabilize P (State-space sys) + K : `StateSpace` + Controller to stabilize `P`. Raises ------ ImportError - if slycot routine sb10hd is not loaded + If slycot routine sb10hd is not loaded. See Also -------- @@ -71,9 +42,9 @@ def h2syn(P, nmeas, ncon): Examples -------- - >>> # Unstable first order SISI system + >>> # Unstable first order SISO system >>> G = ct.tf([1], [1, -1], inputs=['u'], outputs=['y']) - >>> max(G.poles()) < 0 # Is G stable? + >>> all(G.poles() < 0) # Is G stable? False >>> # Create partitioned system with trivial unity systems @@ -87,19 +58,13 @@ def h2syn(P, nmeas, ncon): >>> # Synthesize H2 optimal stabilizing controller >>> K = ct.h2syn(P, nmeas=1, ncon=1) >>> T = ct.feedback(G, K, sign=1) - >>> max(T.poles()) < 0 # Is T stable? + >>> all(T.poles() < 0) # Is T stable? True """ # Check for ss system object, need a utility for this? # TODO: Check for continous or discrete, only continuous supported right now - # if isCont(): - # dico = 'C' - # elif isDisc(): - # dico = 'D' - # else: - dico = 'C' try: from slycot import sb10hd @@ -121,30 +86,37 @@ def h2syn(P, nmeas, ncon): def hinfsyn(P, nmeas, ncon): - """H_{inf} control synthesis for plant P. + # TODO: document significance of rcond + """H-infinity control synthesis for plant P. Parameters ---------- - P: partitioned lti plant - nmeas: number of measurements (input to controller) - ncon: number of control inputs (output from controller) + P : `StateSpace` + Partitioned LTI plant (state-space system). + nmeas : int + Number of measurements (input to controller). + ncon : int + Number of control inputs (output from controller). Returns ------- - K: controller to stabilize P (State-space sys) - CL: closed loop system (State-space sys) - gam: infinity norm of closed loop system - rcond: 4-vector, reciprocal condition estimates of: - 1: control transformation matrix - 2: measurement transformation matrix - 3: X-Riccati equation - 4: Y-Riccati equation - TODO: document significance of rcond + K : `StateSpace` + Controller to stabilize `P`. + CL : `StateSpace` + Closed loop system. + gam : float + Infinity norm of closed loop system. + rcond : list + 4-vector, reciprocal condition estimates of: + 1: control transformation matrix + 2: measurement transformation matrix + 3: X-Riccati equation + 4: Y-Riccati equation Raises ------ ImportError - if slycot routine sb10ad is not loaded + If slycot routine sb10ad is not loaded. See Also -------- @@ -152,9 +124,9 @@ def hinfsyn(P, nmeas, ncon): Examples -------- - >>> # Unstable first order SISI system + >>> # Unstable first order SISO system >>> G = ct.tf([1], [1,-1], inputs=['u'], outputs=['y']) - >>> max(G.poles()) < 0 + >>> all(G.poles() < 0) False >>> # Create partitioned system with trivial unity systems @@ -167,7 +139,7 @@ def hinfsyn(P, nmeas, ncon): >>> # Synthesize Hinf optimal stabilizing controller >>> K, CL, gam, rcond = ct.hinfsyn(P, nmeas=1, ncon=1) >>> T = ct.feedback(G, K, sign=1) - >>> max(T.poles()) < 0 + >>> all(T.poles() < 0) True """ @@ -175,12 +147,6 @@ def hinfsyn(P, nmeas, ncon): # Check for ss system object, need a utility for this? # TODO: Check for continous or discrete, only continuous supported right now - # if isCont(): - # dico = 'C' - # elif isDisc(): - # dico = 'D' - # else: - dico = 'C' try: from slycot import sb10ad @@ -222,19 +188,20 @@ def _size_as_needed(w, wname, n): Returns ------- - w_: processed weighting function, a StateSpace object: - - if w is None, empty StateSpace object + w_: processed weighting function, a `StateSpace` object: + - if w is None, empty `StateSpace` object - if w is scalar, w_ will be w * eye(n) - - otherwise, w as StateSpace object + - otherwise, w as `StateSpace` object Raises ------ ValueError - - if w is not None or scalar, and doesn't have n inputs + If w is not None or scalar, and does not have n inputs. See Also -------- augw + """ from . import append, ss if w is not None: @@ -259,36 +226,37 @@ def augw(g, w1=None, w2=None, w3=None): 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. + 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 + 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: StateSpace - 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 -------- h2syn, hinfsyn, mixsyn + """ - from . import append, ss, connect + from . import append, connect, ss if w1 is None and w2 is None and w3 is None: raise ValueError("At least one weighting must not be None") @@ -337,12 +305,12 @@ def augw(g, w1=None, w2=None, w3=None): 1 + now1 + now2 + now3 + 2 * ny + niw2) # y -> w3 - q[niw1 + niw2:niw1 + niw2 + niw3, 1] = np.arange(1 + now1 + now2 + now3 + ny, - 1 + now1 + now2 + now3 + ny + niw3) + q[niw1 + niw2:niw1 + niw2 + niw3, 1] = np.arange( + 1 + now1 + now2 + now3 + ny, 1 + now1 + now2 + now3 + ny + niw3) # -y -> Iy; note the leading - - q[niw1 + niw2 + niw3:niw1 + niw2 + niw3 + ny, 1] = -np.arange(1 + now1 + now2 + now3 + ny, - 1 + now1 + now2 + now3 + 2 * ny) + q[niw1 + niw2 + niw3:niw1 + niw2 + niw3 + ny, 1] = -np.arange( + 1 + now1 + now2 + now3 + ny, 1 + now1 + now2 + now3 + 2 * ny) # Iu -> G q[niw1 + niw2 + niw3 + ny:niw1 + niw2 + niw3 + ny + nu, 1] = np.arange( @@ -375,20 +343,20 @@ def mixsyn(g, w1=None, w2=None, w3=None): Parameters ---------- - 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; + 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: StateSpace - Synthesized controller; - cl: StateSpace + k : `StateSpace` + Synthesized controller. + cl : `StateSpace` Closed system mapping evaluation inputs to evaluation outputs. Let p be the augmented plant, with:: @@ -396,21 +364,22 @@ def mixsyn(g, w1=None, w2=None, w3=None): [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. + then cl is the system from w -> z with u = -k*y. + info : tuple + Two-tuple (`gamma`, `rcond`) containing additional information: + - `gamma` (scalar): H-infinity norm of cl. + - `rcond` (array): Estimates of reciprocal condition numbers + computed during synthesis. See hinfsyn for details. See Also -------- hinfsyn, augw + + Notes + ----- + 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`. + """ nmeas = g.noutputs ncon = g.ninputs diff --git a/control/sisotool.py b/control/sisotool.py index aca36e2d1..78be86b16 100644 --- a/control/sisotool.py +++ b/control/sisotool.py @@ -1,3 +1,7 @@ +# sisotool.py - interactive tool for SISO control design + +"""Interactive tool for SISO control design.""" + __all__ = ['sisotool', 'rootlocus_pid_designer'] import warnings @@ -27,7 +31,7 @@ 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. + """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 @@ -37,32 +41,31 @@ 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 + 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. 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 accommodate 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']). + (`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`). + Control of x-axis range (see `matplotlib.axes.Axes.set_xlim`). ylim_rlocus : tuple or list, optional - control of y-axis range - plotstr_rlocus : :func:`matplotlib.pyplot.plot` format string, optional + Control of y-axis range (see `matplotlib.axes.Axes.set_ylim`). + plotstr_rlocus : `matplotlib.pyplot.plot` format string, optional Plotting style for the root locus plot(color, linestyle, etc). rlocus_grid : boolean (default = False) - If True plot s- or z-plane grid. + If True, plot s- or z-plane grid. omega : array_like List of frequencies in rad/sec to be used for bode plot. dB : boolean @@ -78,11 +81,11 @@ def sisotool(sys, initial_gain=None, xlim_rlocus=None, ylim_rlocus=None, auto-generated if omitted. omega_num : int Number of samples to plot. Defaults to - config.defaults['freqplot.number_of_samples']. + `config.defaults['freqplot.number_of_samples']`. margins_bode : boolean 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 time steps to use for closed loop step response. Examples -------- @@ -136,7 +139,7 @@ def sisotool(sys, initial_gain=None, xlim_rlocus=None, ylim_rlocus=None, # ax=fig.axes[1]) ax_rlocus = fig.axes[1] root_locus_map(sys[0, 0]).plot( - xlim=xlim_rlocus, ylim=ylim_rlocus, grid=rlocus_grid, + xlim=xlim_rlocus, ylim=ylim_rlocus, initial_gain=initial_gain, ax=ax_rlocus) if rlocus_grid is False: # Need to generate grid manually, since root_locus_plot() won't @@ -189,7 +192,7 @@ def _SisotoolUpdate(sys, fig, K, bode_plot_params, tvect=None): sys_loop = sys if sys.issiso() else sys[0,0] - # Update the bodeplot + # Update the Bode plot bode_plot_params['data'] = frequency_response(sys_loop*K.real) bode_plot(**bode_plot_params, title=False) @@ -256,32 +259,32 @@ def rootlocus_pid_designer(plant, gain='P', sign=+1, input_signal='r', """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 - a controller. One of the PID gains, `Kp`, `Ki`, or `Kd`, respectively, can - be modified at a time. `Sisotool` plots the step response, frequency + 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 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` and try varying values + 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 initial + 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 + 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 + 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 @@ -289,11 +292,11 @@ def rootlocus_pid_designer(plant, gain='P', sign=+1, input_signal='r', 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. + root locus plot. When you are done, ``%matplotlib inline`` returns to + inline, non-interactive plotting. - By default, all three PID terms are in the forward path C_f in the diagram - shown below, that is, + By default, all three PID terms are in the forward path C_f in the + diagram shown below, that is, C_f = Kp + Ki/s + Kd*s/(tau*s + 1). @@ -308,12 +311,12 @@ 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 + 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 + `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 `r` is a step input. `C_b` is otherwise set to zero. @@ -322,42 +325,42 @@ def rootlocus_pid_designer(plant, gain='P', sign=+1, input_signal='r', Parameters ---------- - plant : :class:`LTI` (:class:`TransferFunction` or :class:`StateSpace` system) + plant : `LTI` (`TransferFunction` or `StateSpace` system) 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). - sign : int (optional) + gain : string, optional + Which gain to vary by `deltaK`. Must be one of 'P', 'I', or 'D' + (proportional, integral, or derivative). + sign : int, optional 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). - Kp0, Ki0, Kd0 : float (optional) + input_signal : string, optional + The input used for the step response; must be 'r' (reference) or + 'd' (disturbance) (see figure above). + 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) + deltaK : float, optional + Perturbation value for gain specified by the `gain` keyword. + tau : float, optional The time constant associated with the pole in the continuous-time derivative term. This is required to make the derivative transfer function proper. - C_ff : float or :class:`LTI` system (optional) - Feedforward controller. If :class:`LTI`, must have timebase that is + C_ff : float or `LTI` system, optional + Feedforward controller. If `LTI`, must have timebase that is compatible with plant. - derivative_in_feedback_path : bool (optional) + derivative_in_feedback_path : bool, optional Whether to place the derivative term in feedback transfer function `C_b` instead of the forward transfer function `C_f`. - plot : bool (optional) + plot : bool, optional Whether to create Sisotool interactive plot. Returns ------- - closedloop : class:`StateSpace` system + closedloop : `StateSpace` system The closed-loop system using initial gains. Notes ----- - When running using iPython or Jupyter, use `%matplotlib` to configure + When running using iPython or Jupyter, use ``%matplotlib`` to configure the session for interactive support. """ @@ -382,7 +385,7 @@ def rootlocus_pid_designer(plant, gain='P', sign=+1, input_signal='r', 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 + else: # discrete time 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') diff --git a/control/statefbk.py b/control/statefbk.py index 15bba5454..b6e9c9655 100644 --- a/control/statefbk.py +++ b/control/statefbk.py @@ -1,62 +1,28 @@ # statefbk.py - tools for state feedback control # -# Author: Richard M. Murray, Roberto Bucher -# Date: 31 May 2010 -# -# This file contains routines for designing state space controllers -# -# 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$ +# Initial authors: Richard M. Murray, Roberto Bucher +# Creation date: 31 May 2010 + +"""Routines for designing state space controllers.""" + +import warnings -# External packages and modules import numpy as np import scipy as sp -import warnings from . import statesp -from .mateqn import care, dare, _check_shape -from .statesp import StateSpace, _ssmatrix, _convert_to_statespace, ss +from .config import _process_legacy_keyword +from .exception import ControlArgument, ControlSlycot +from .iosys import _process_indices, _process_labels, isctime, isdtime from .lti import LTI -from .iosys import isdtime, isctime, _process_indices, _process_labels +from .mateqn import care, dare from .nlsys import NonlinearIOSystem, interconnect -from .exception import ControlSlycot, ControlArgument, ControlDimension, \ - ControlNotImplemented -from .config import _process_legacy_keyword +from .statesp import StateSpace, _ssmatrix, ss -# Make sure we have access to the right slycot routines +# Make sure we have access to the right Slycot routines try: from slycot import sb03md57 + # wrap without the deprecation warning def sb03md(n, C, A, U, dico, job='X',fact='N',trana='N',ldwork=None): ret = sb03md57(A, U, C, dico, job, fact, trana, ldwork) @@ -74,7 +40,7 @@ def sb03md(n, C, A, U, dico, job='X',fact='N',trana='N',ldwork=None): __all__ = ['ctrb', 'obsv', 'gram', 'place', 'place_varga', 'lqr', - 'dlqr', 'acker', 'create_statefbk_iosystem'] + 'dlqr', 'acker', 'place_acker', 'create_statefbk_iosystem'] # Pole placement @@ -86,28 +52,26 @@ def place(A, B, p): Parameters ---------- A : 2D array_like - Dynamics matrix + Dynamics matrix. B : 2D array_like - Input matrix + Input matrix. p : 1D array_like - Desired eigenvalue locations + Desired eigenvalue locations. Returns ------- - K : 2D array (or matrix) - Gain such that A - B K has eigenvalues given in p + K : 2D array + Gain such that A - B K has eigenvalues given in p. Notes ----- - Algorithm - This is a wrapper function for :func:`scipy.signal.place_poles`, which - implements the Tits and Yang algorithm [1]_. It will handle SISO, - MISO, and MIMO systems. If you want more control over the algorithm, - use :func:`scipy.signal.place_poles` directly. + This is a wrapper function for `scipy.signal.place_poles`, which + implements the Tits and Yang algorithm [1]_. It will handle SISO, MISO, + and MIMO systems. If you want more control over the algorithm, use + `scipy.signal.place_poles` directly. - Limitations - The algorithm will not place poles at the same location more - than rank(B) times. + Limitations: The algorithm will not place poles at the same location + more than rank(B) times. References ---------- @@ -123,49 +87,40 @@ def place(A, B, p): See Also -------- - place_varga, acker + place_acker, place_varga """ from scipy.signal import place_poles # Convert the system inputs to NumPy arrays - A_mat = np.array(A) - B_mat = np.array(B) - if (A_mat.shape[0] != A_mat.shape[1]): - raise ControlDimension("A must be a square matrix") - - if (A_mat.shape[0] != B_mat.shape[0]): - err_str = "The number of rows of A must equal the number of rows in B" - raise ControlDimension(err_str) + A_mat = _ssmatrix(A, square=True, name="A") + B_mat = _ssmatrix(B, axis=0, rows=A_mat.shape[0]) # Convert desired poles to numpy array placed_eigs = np.atleast_1d(np.squeeze(np.asarray(p))) result = place_poles(A_mat, B_mat, placed_eigs, method='YT') K = result.gain_matrix - return _ssmatrix(K) + return K def place_varga(A, B, p, dtime=False, alpha=None): - """Place closed loop eigenvalues. + """Place closed loop eigenvalues using Varga method. + K = place_varga(A, B, p, dtime=False, alpha=None) - Required Parameters + Parameters ---------- A : 2D array_like - Dynamics matrix + Dynamics matrix. B : 2D array_like - Input matrix + Input matrix. p : 1D array_like - Desired eigenvalue locations - - Optional Parameters - --------------- - dtime : bool - False for continuous time pole placement or True for discrete time. - The default is dtime=False. - - alpha : double scalar + Desired eigenvalue locations. + dtime : bool, optional + False (default) for continuous-time pole placement or True + for discrete time. + alpha : float, optional If `dtime` is false then place_varga will leave the eigenvalues with real part less than alpha untouched. If `dtime` is true then place_varga will leave eigenvalues with modulus less than alpha @@ -176,42 +131,43 @@ def place_varga(A, B, p, dtime=False, alpha=None): Returns ------- - K : 2D array (or matrix) + K : 2D array Gain such that A - B K has eigenvalues given in p. - Algorithm - --------- - This function is a wrapper for the slycot function sb01bd, which - implements the pole placement algorithm of Varga [1]. In contrast to the - algorithm used by place(), the Varga algorithm can place multiple poles at - the same location. The placement, however, may not be as robust. + See Also + -------- + place, place_acker + + Notes + ----- + This function is a wrapper for the Slycot function sb01bd, which + implements the pole placement algorithm of Varga [1]_. In contrast + to the algorithm used by `place`, the Varga algorithm can place + multiple poles at the same location. The placement, however, may + not be as robust. - [1] Varga A. "A Schur method for pole assignment." IEEE Trans. Automatic - Control, Vol. AC-26, pp. 517-519, 1981. + References + ---------- + .. [1] Varga A. "A Schur method for pole assignment." IEEE Trans. + Automatic Control, Vol. AC-26, pp. 517-519, 1981. Examples -------- >>> A = [[-1, -1], [0, 1]] >>> B = [[0], [1]] - >>> K = place_varga(A, B, [-2, -5]) - - See Also: - -------- - place, acker + >>> K = ct.place_varga(A, B, [-2, -5]) """ - # Make sure that SLICOT is installed + # Make sure that Slycot is installed try: from slycot import sb01bd except ImportError: - raise ControlSlycot("can't find slycot module 'sb01bd'") + raise ControlSlycot("can't find slycot module sb01bd") # Convert the system inputs to NumPy arrays - A_mat = np.array(A) - B_mat = np.array(B) - if (A_mat.shape[0] != A_mat.shape[1] or A_mat.shape[0] != B_mat.shape[0]): - raise ControlDimension("matrix dimensions are incorrect") + A_mat = _ssmatrix(A, square=True, name="A") + B_mat = _ssmatrix(B, axis=0, rows=A_mat.shape[0]) # Compute the system eigenvalues and convert poles to numpy array system_eigs = np.linalg.eig(A_mat)[0] @@ -228,56 +184,60 @@ def place_varga(A, B, p, dtime=False, alpha=None): # (if DICO='C') or with modulus less than alpha # (if DICO = 'D'). if dtime: - # For discrete time, slycot only cares about modulus, so just make + # For discrete time, Slycot only cares about modulus, so just make # alpha the smallest it can be. alpha = 0.0 else: # Choosing alpha=min_eig is insufficient and can lead to an # error or not having all the eigenvalues placed that we wanted. # Evidently, what python thinks are the eigs is not precisely - # the same as what slicot thinks are the eigs. So we need some + # the same as what Slycot thinks are the eigs. So we need some # numerical breathing room. The following is pretty heuristic, # but does the trick alpha = -2*abs(min(system_eigs.real)) elif dtime and alpha < 0.0: raise ValueError("Discrete time systems require alpha > 0") - # Call SLICOT routine to place the eigenvalues + # Call Slycot routine to place the eigenvalues A_z, w, nfp, nap, nup, F, Z = \ sb01bd(B_mat.shape[0], B_mat.shape[1], len(placed_eigs), alpha, A_mat, B_mat, placed_eigs, DICO) # Return the gain matrix, with MATLAB gain convention - return _ssmatrix(-F) + return -F # Contributed by Roberto Bucher -def acker(A, B, poles): +def place_acker(A, B, poles): """Pole placement using Ackermann method. Call: - K = acker(A, B, poles) + K = place_acker(A, B, poles) Parameters ---------- A, B : 2D array_like - State and input matrix of the system + State and input matrix of the system. poles : 1D array_like - Desired eigenvalue locations + Desired eigenvalue locations. Returns ------- - K : 2D array (or matrix) - Gains such that A - B K has given eigenvalues + K : 2D array + Gains such that A - B K has given eigenvalues. + + See Also + -------- + place, place_varga """ # Convert the inputs to matrices - a = _ssmatrix(A) - b = _ssmatrix(B) + A = _ssmatrix(A, square=True, name="A") + B = _ssmatrix(B, axis=0, rows=A.shape[0], name="B") # Make sure the system is controllable ct = ctrb(A, B) - if np.linalg.matrix_rank(ct) != a.shape[0]: + if np.linalg.matrix_rank(ct) != A.shape[0]: raise ValueError("System not reachable; pole placement invalid") # Compute the desired characteristic polynomial @@ -286,13 +246,13 @@ def acker(A, B, poles): # Place the poles using Ackermann's method # TODO: compute pmat using Horner's method (O(n) instead of O(n^2)) n = np.size(p) - pmat = p[n-1] * np.linalg.matrix_power(a, 0) + pmat = p[n-1] * np.linalg.matrix_power(A, 0) for i in np.arange(1, n): - pmat = pmat + p[n-i-1] * np.linalg.matrix_power(a, i) + pmat = pmat + p[n-i-1] * np.linalg.matrix_power(A, i) K = np.linalg.solve(ct, pmat) - K = K[-1][:] # Extract the last row - return _ssmatrix(K) + K = K[-1, :] # Extract the last row + return K def lqr(*args, **kwargs): @@ -318,13 +278,13 @@ def lqr(*args, **kwargs): Parameters ---------- A, B : 2D array_like - Dynamics and input matrices - sys : LTI StateSpace system - Linear system + Dynamics and input matrices. + sys : LTI `StateSpace` system + Linear system. Q, R : 2D array - State and input weight matrices + State and input weight matrices. N : 2D array, optional - Cross weight matrix + 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 @@ -335,17 +295,17 @@ def lqr(*args, **kwargs): 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 - and then 'scipy'. + 'slycot' and 'scipy'. If set to None (default), try 'slycot' + first and then 'scipy'. Returns ------- - K : 2D array (or matrix) - State feedback gains - S : 2D array (or matrix) - Solution to Riccati equation + K : 2D array + State feedback gains. + S : 2D array + Solution to Riccati equation. E : 1D array - Eigenvalues of the closed loop system + Eigenvalues of the closed loop system. See Also -------- @@ -355,7 +315,7 @@ def lqr(*args, **kwargs): ----- 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 + object corresponds to a discrete-time system, the `dlqr` function will be called. Examples @@ -368,7 +328,7 @@ def lqr(*args, **kwargs): # Process the arguments and figure out what inputs we received # - # If we were passed a discrete time system as the first arg, use dlqr() + # If we were passed a discrete-time system as the first arg, use dlqr() if isinstance(args[0], LTI) and isdtime(args[0], strict=True): # Call dlqr return dlqr(*args, **kwargs) @@ -437,7 +397,7 @@ def lqr(*args, **kwargs): raise TypeError("unrecognized keywords: ", str(kwargs)) # Compute the result (dimension and symmetry checking done in care()) - X, L, G = care(A, B, Q, R, N, None, method=method, S_s="N") + X, L, G = care(A, B, Q, R, N, None, method=method, _Ss="N") return G, X, L @@ -458,20 +418,20 @@ def dlqr(*args, **kwargs): * ``dlqr(A, B, Q, R)`` * ``dlqr(A, B, Q, R, N)`` - where `dsys` is a discrete-time :class:`StateSpace` system, and `A`, `B`, + where `dsys` is a discrete-time `StateSpace` system, and `A`, `B`, `Q`, `R`, and `N` are 2d arrays of appropriate dimension (`dsys.dt` must not be 0.) Parameters ---------- A, B : 2D array - Dynamics and input matrices - dsys : LTI :class:`StateSpace` - Discrete-time linear system + Dynamics and input matrices. + dsys : LTI `StateSpace` + Discrete-time linear system. Q, R : 2D array - State and input weight matrices + State and input weight matrices. N : 2D array, optional - Cross weight matrix + 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 @@ -482,17 +442,17 @@ def dlqr(*args, **kwargs): 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 - and then 'scipy'. + 'slycot' and 'scipy'. If set to None (default), try 'slycot' + first and then 'scipy'. Returns ------- - K : 2D array (or matrix) - State feedback gains - S : 2D array (or matrix) - Solution to Riccati equation + K : 2D array + State feedback gains. + S : 2D array + Solution to Riccati equation. E : 1D array - Eigenvalues of the closed loop system + Eigenvalues of the closed loop system. See Also -------- @@ -512,7 +472,7 @@ def dlqr(*args, **kwargs): if (len(args) < 3): raise ControlArgument("not enough input arguments") - # If we were passed a continus time system as the first arg, raise error + # If we were passed a continues time system as the first arg, raise error if isinstance(args[0], LTI) and isctime(args[0], strict=True): raise ControlArgument("dsys must be discrete time (dt != 0)") @@ -574,16 +534,18 @@ def dlqr(*args, **kwargs): raise TypeError("unrecognized keywords: ", str(kwargs)) # Compute the result (dimension and symmetry checking done in dare()) - S, E, K = dare(A, B, Q, R, N, method=method, S_s="N") - return _ssmatrix(K), _ssmatrix(S), E + S, E, K = dare(A, B, Q, R, N, method=method, _Ss="N") + return K, S, E -# Function to create an I/O sytems representing a state feedback controller +# Function to create an I/O systems representing a state feedback controller def create_statefbk_iosystem( - sys, gain, integral_action=None, estimator=None, controller_type=None, - xd_labels=None, ud_labels=None, gainsched_indices=None, + sys, gain, feedfwd_gain=None, integral_action=None, estimator=None, + controller_type=None, xd_labels=None, ud_labels=None, ref_labels=None, + feedfwd_pattern='trajgen', gainsched_indices=None, gainsched_method='linear', control_indices=None, state_indices=None, - name=None, inputs=None, outputs=None, states=None, **kwargs): + name=None, inputs=None, outputs=None, states=None, params=None, + **kwargs): r"""Create an I/O system using a (full) state feedback controller. This function creates an input/output system that implements a @@ -591,12 +553,12 @@ 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:: + by calling ctrl, clsys = ct.create_statefbk_iosystem(sys, K) where `sys` is the process dynamics and `K` is the state (+ integral) - feedback gain (eg, from LQR). The function returns the controller + feedback gain (e.g., 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 @@ -607,9 +569,21 @@ def create_statefbk_iosystem( where :math:`\mu` represents the scheduling variable. + Alternatively, a controller of the form + + .. math:: u = k_f r - K_p x - K_i \int(C x - r) + + can be created by calling + + ctrl, clsys = ct.create_statefbk_iosystem( + sys, K, kf, feedfwd_pattern='refgain') + + In either form, an estimator can also be used to compute the estimated + state from the input and output measurements. + Parameters ---------- - sys : NonlinearIOSystem + 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. @@ -622,7 +596,7 @@ def create_statefbk_iosystem( 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 `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. @@ -630,14 +604,15 @@ def create_statefbk_iosystem( 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 - 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. + feedfwd_gain : array_like, optional + Specify the feedforward gain, `k_f`. Used only for the reference + gain design pattern. If not given and if `sys` is a `StateSpace` + (linear) system, will be computed as -1/(C (A-BK)^{-1}) B. + + feedfwd_pattern : str, optional + If set to 'refgain', the reference gain design pattern is used to + create the controller instead of the trajectory generation + ('trajgen') pattern. integral_action : ndarray, optional If this keyword is specified, the controller can include integral @@ -646,7 +621,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 : NonlinearIOSystem, optional + estimator : `NonlinearIOSystem`, optional If an estimator is provided, use the states of the estimator as the system inputs for the controller. @@ -656,7 +631,7 @@ def create_statefbk_iosystem( 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 + 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`. @@ -664,36 +639,38 @@ def create_statefbk_iosystem( gainsched_method : str, optional 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 + `scipy.interpolate.griddata`. For points outside of the convex hull of the scheduling points, the gain at the nearest point is used. 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 + is 'nonlinear', a `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, then a nonlinear, gain-scheduled controller is created. Returns ------- - ctrl : NonlinearIOSystem - Input/output system representing the controller. This system - 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 - gains). If a gain scheduled controller is specified, the gain - (proportional and integral) are evaluated using the scheduling - variables specified by `gainsched_indices`. - - clsys : NonlinearIOSystem + ctrl : `NonlinearIOSystem` + Input/output system representing the controller. For the 'trajgen' + design pattern (default), this system 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). For + the 'refgain' design pattern, the system takes as inputs the + reference input `r` and the system or estimated state. 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 : `NonlinearIOSystem` Input/output system representing the closed loop system. This - system takes as inputs the desired trajectory `(x_d, u_d)` and + system takes as inputs the desired trajectory (x_d, u_d) and outputs the system state `x` and the applied input `u` (vertically stacked). @@ -715,15 +692,28 @@ def create_statefbk_iosystem( 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 + xd_labels, ud_labels, ref_labels : str or list of str, optional + Set the name of the signals to use for the desired state and inputs + or the reference inputs (for the 'refgain' design pattern). 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. + + inputs, outputs, states : 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. + system. If not given, the inputs, outputs, and states are the same + as the original system. name : string, optional - System name. If unspecified, a generic name is generated + System name. If unspecified, a generic name 'sys[id]' is generated with a unique integer id. + params : dict, optional + System parameter values. By default, these will be copied from + `sys` and `ctrl`, but can be overridden with this keyword. + Examples -------- >>> import control as ct @@ -746,12 +736,18 @@ def create_statefbk_iosystem( if not isinstance(sys, NonlinearIOSystem): raise ControlArgument("Input system must be I/O system") - # Process (legacy) keywords + # Process keywords + params = sys.params if params is None else params controller_type = _process_legacy_keyword( kwargs, 'type', 'controller_type', controller_type) if kwargs: raise TypeError("unrecognized keywords: ", str(kwargs)) + # Check for consistency of positional parameters + if feedfwd_gain is not None and feedfwd_pattern != 'refgain': + raise ControlArgument( + "feedfwd_gain specified but feedfwd_pattern != 'refgain'") + # Figure out what inputs to the system to use control_indices = _process_indices( control_indices, 'control', sys.input_labels, sys.ninputs) @@ -787,12 +783,12 @@ def create_statefbk_iosystem( 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: + + C = np.atleast_2d(integral_action) + if C.shape[1] != sys_nstates: raise ControlArgument( "Integral gain size must match system state size") - else: - nintegrators = integral_action.shape[0] - C = integral_action + nintegrators = C.shape[0] else: # Create a C matrix with no outputs, just in case update gets called C = np.zeros((0, sys_nstates)) @@ -811,6 +807,10 @@ def create_statefbk_iosystem( # Check for gain scheduled controller if len(gain) != 2: raise ControlArgument("gain must be a 2-tuple for gain scheduling") + elif feedfwd_pattern != 'trajgen': + raise NotImplementedError( + "Gain scheduling is not implemented for pattern " + f"'{feedfwd_pattern}'") gains, points = gain[0:2] # Stack gains and points if past as a list @@ -818,7 +818,7 @@ def create_statefbk_iosystem( points = np.stack(points) gainsched = True - elif isinstance(gain, NonlinearIOSystem): + elif isinstance(gain, NonlinearIOSystem) and feedfwd_pattern != 'refgain': if controller_type not in ['iosystem', None]: raise ControlArgument( f"incompatible controller type '{controller_type}'") @@ -840,20 +840,29 @@ def create_statefbk_iosystem( raise ControlArgument(f"unknown controller_type '{controller_type}'") # Figure out the labels to use - 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: - inputs = xd_labels + ud_labels + estimator.output_labels + if feedfwd_pattern == 'trajgen': + 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: + inputs = xd_labels + ud_labels + estimator.output_labels + elif feedfwd_pattern == 'refgain': + ref_labels = _process_labels(ref_labels, 'r', [ + f'r[{i}]' for i in range(sys_ninputs)]) + if inputs is None: + inputs = ref_labels + estimator.output_labels + else: + raise NotImplementedError(f"unknown pattern '{feedfwd_pattern}'") + if outputs is None: outputs = [sys.input_labels[i] for i in control_indices] if states is None: states = nintegrators - # Process gainscheduling variables, if present + # Process gain scheduling variables, if present if gainsched: # Create a copy of the scheduling variable indices (default = xd) gainsched_indices = _process_indices( @@ -896,7 +905,7 @@ def _compute_gain(mu): return K # Define the controller system - if controller_type == 'nonlinear': + if controller_type == 'nonlinear' and feedfwd_pattern == 'trajgen': # 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 @@ -925,12 +934,12 @@ def _control_output(t, states, inputs, params): return u - params = {} if gainsched else {'K': K} + ctrl_params = {} if gainsched else {'K': K} ctrl = NonlinearIOSystem( _control_update, _control_output, name=name, inputs=inputs, - outputs=outputs, states=states, params=params) + outputs=outputs, states=states, params=ctrl_params) - elif controller_type == 'iosystem': + elif controller_type == 'iosystem' and feedfwd_pattern == 'trajgen': # 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 @@ -954,7 +963,7 @@ def _control_output(t, states, inputs, params): _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: + elif controller_type in 'linear' and feedfwd_pattern == 'trajgen': # Create the matrices implementing the controller if isctime(sys): # Continuous time: integrator @@ -972,6 +981,37 @@ def _control_output(t, states, inputs, params): A_lqr, B_lqr, C_lqr, D_lqr, dt=sys.dt, name=name, inputs=inputs, outputs=outputs, states=states) + elif feedfwd_pattern == 'refgain': + if controller_type not in ['linear', 'iosystem']: + raise ControlArgument( + "refgain design pattern only supports linear controllers") + + if feedfwd_gain is None: + raise ControlArgument( + "'feedfwd_gain' required for reference gain pattern") + + # Check to make sure the reference gain is valid + Kf = np.atleast_2d(feedfwd_gain) + if Kf.ndim != 2 or Kf.shape[0] != sys.ninputs or \ + Kf.shape[1] != sys.ninputs: + raise ControlArgument("feedfwd_gain is not the right shape") + + # Create the matrices implementing the controller + # [r, x]->[u]: u = k_f r - K_p x - K_i \int(C x - r) + if isctime(sys): + # Continuous time: integrator + A_lqr = np.zeros((C.shape[0], C.shape[0])) + else: + # Discrete time: summer + A_lqr = np.eye(C.shape[0]) + B_lqr = np.hstack([-np.eye(C.shape[0], sys_ninputs), C]) + C_lqr = -K[:, sys_nstates:] # integral gain (opt) + D_lqr = np.hstack([Kf, -K]) + + ctrl = ss( + A_lqr, B_lqr, C_lqr, D_lqr, dt=sys.dt, name=name, + inputs=inputs, outputs=outputs, states=states) + else: raise ControlArgument(f"unknown controller_type '{controller_type}'") @@ -985,51 +1025,53 @@ def _control_output(t, states, inputs, params): [sys, ctrl] if estimator == sys else [sys, ctrl, estimator], name=sys.name + "_" + ctrl.name, add_unused=True, inplist=inplist, inputs=input_labels, - outlist=outlist, outputs=output_labels + outlist=outlist, outputs=output_labels, + params= ctrl.params | params ) return ctrl, closed def ctrb(A, B, t=None): - """Controllabilty matrix. + """Controllability matrix. Parameters ---------- A, B : array_like or string - Dynamics and input matrix of the system + Dynamics and input matrix of the system. t : None or integer - maximum time horizon of the controllability matrix, max = A.shape[0] + Maximum time horizon of the controllability matrix, max = A.shape[0]. Returns ------- - C : 2D array (or matrix) - Controllability matrix + C : 2D array + Controllability matrix. Examples -------- >>> G = ct.tf2ss([1], [1, 2, 3]) >>> C = ct.ctrb(G.A, G.B) >>> np.linalg.matrix_rank(C) - 2 + np.int64(2) """ # Convert input parameters to matrices (if they aren't already) - amat = _ssmatrix(A) - bmat = _ssmatrix(B) - n = np.shape(amat)[0] - m = np.shape(bmat)[1] - + A = _ssmatrix(A, square=True, name="A") + n = A.shape[0] + + B = _ssmatrix(B, axis=0, rows=n, name="B") + m = B.shape[1] + if t is None or t > n: t = n # Construct the controllability matrix ctrb = np.zeros((n, t * m)) - ctrb[:, :m] = bmat + ctrb[:, :m] = B 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] = np.dot(A, ctrb[:, (k - 1) * m:k * m]) - return _ssmatrix(ctrb) + return ctrb def obsv(A, C, t=None): @@ -1038,41 +1080,41 @@ def obsv(A, C, t=None): Parameters ---------- A, C : array_like or string - Dynamics and output matrix of the system + Dynamics and output matrix of the system. t : None or integer - maximum time horizon of the controllability matrix, max = A.shape[0] - + Maximum time horizon of the controllability matrix, max = A.shape[0]. + Returns ------- - O : 2D array (or matrix) - Observability matrix + O : 2D array + Observability matrix. Examples -------- >>> G = ct.tf2ss([1], [1, 2, 3]) >>> C = ct.obsv(G.A, G.C) >>> np.linalg.matrix_rank(C) - 2 + np.int64(2) """ - # Convert input parameters to matrices (if they aren't already) - amat = _ssmatrix(A) - cmat = _ssmatrix(C) - n = np.shape(amat)[0] - p = np.shape(cmat)[0] - + A = _ssmatrix(A, square=True, name="A") + n = A.shape[0] + + C = _ssmatrix(C, cols=n, name="C") + p = C.shape[0] + if t is None or t > n: t = n # Construct the observability matrix obsv = np.zeros((t * p, n)) - obsv[:p, :] = cmat - + obsv[:p, :] = C + 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, :] = np.dot(obsv[(k - 1) * p:k * p, :], A) - return _ssmatrix(obsv) + return obsv def gram(sys, type): @@ -1080,28 +1122,28 @@ def gram(sys, type): Parameters ---------- - sys : StateSpace - System description + sys : `StateSpace` + System description. type : String Type of desired computation. `type` is either 'c' (controllability) or 'o' (observability). To compute the Cholesky factors of Gramians - use 'cf' (controllability) or 'of' (observability) + use 'cf' (controllability) or 'of' (observability). Returns ------- - gram : 2D array (or matrix) - Gramian of system + gram : 2D array + Gramian of system. Raises ------ ValueError - * if system is not instance of StateSpace class - * if `type` is not 'c', 'o', 'cf' or 'of' - * if system is unstable (sys.A has eigenvalues not in left half plane) + * If system is not instance of `StateSpace` class, or + * if `type` is not 'c', 'o', 'cf' or 'of', or + * if system is unstable (sys.A has eigenvalues not in left half plane). ControlSlycot - if slycot routine sb03md cannot be found - if slycot routine sb03od cannot be found + If slycot routine sb03md cannot be found or + if slycot routine sb03od cannot be found. Examples -------- @@ -1139,7 +1181,7 @@ def gram(sys, type): # Compute Gramian by the Slycot routine sb03md # make sure Slycot is installed if sb03md is None: - raise ControlSlycot("can't find slycot module 'sb03md'") + raise ControlSlycot("can't find slycot module sb03md") if type == 'c': tra = 'T' C = -sys.B @ sys.B.T @@ -1152,12 +1194,12 @@ def gram(sys, type): X, scale, sep, ferr, w = sb03md( n, C, A, U, dico, job='X', fact='N', trana=tra) gram = X - return _ssmatrix(gram) + return gram elif type == 'cf' or type == 'of': - # Compute cholesky factored gramian from slycot routine sb03od + # Compute Cholesky factored Gramian from Slycot routine sb03od if sb03od is None: - raise ControlSlycot("can't find slycot module 'sb03od'") + raise ControlSlycot("can't find slycot module sb03od") tra = 'N' n = sys.nstates Q = np.zeros((n, n)) @@ -1175,4 +1217,8 @@ def gram(sys, type): X, scale, w = sb03od( n, m, A, Q, C.transpose(), dico, fact='N', trans=tra) gram = X - return _ssmatrix(gram) + return gram + + +# Short versions of functions +acker = place_acker diff --git a/control/statesp.py b/control/statesp.py index e14a8358a..65529b99d 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -1,81 +1,52 @@ -"""statesp.py - -State space representation and functions. +# statesp.py - state space class and related functions +# +# Initial author: Richard M. Murray +# Creation date: 24 May 2009 +# Pre-2014 revisions: Kevin K. Chen, Dec 2010 +# Use `git shortlog -n -s statesp.py` for full list of contributors -This file contains the StateSpace class, which is used to represent linear -systems in state space. This is the primary representation for the -python-control library. +"""State space class and related functions. -""" +This module contains the `StateSpace class`, which is used to +represent linear systems in state space. -"""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. - -Author: Richard M. Murray -Date: 24 May 09 -Revised: Kevin K. Chen, Dec 10 - -$Id$ """ import math +import sys +from collections.abc import Iterable +from warnings import warn + import numpy as np -from numpy import any, asarray, concatenate, cos, delete, \ - empty, exp, eye, isinf, ones, pad, sin, zeros, squeeze -from numpy.random import rand, randn -from numpy.linalg import solve, eigvals, matrix_rank -from numpy.linalg.linalg import LinAlgError import scipy as sp import scipy.linalg -from scipy.signal import cont2discrete +from numpy import array # noqa: F401 +from numpy import any, asarray, concatenate, cos, delete, empty, exp, eye, \ + isinf, pad, sin, squeeze, zeros +from numpy.linalg import LinAlgError, eigvals, matrix_rank, solve +from numpy.random import rand, randn from scipy.signal import StateSpace as signalStateSpace -from warnings import warn +from scipy.signal import cont2discrete -from .exception import ControlSlycot, slycot_check, ControlMIMONotImplemented +import control + +from . import bdalg, config +from .exception import ControlDimension, ControlMIMONotImplemented, \ + ControlSlycot, slycot_check from .frdata import FrequencyResponseData +from .iosys import InputOutputSystem, NamedSignal, _process_iosys_keywords, \ + _process_signal_list, _process_subsys_index, common_timebase, issiso from .lti import LTI, _process_frequency_response -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 -from copy import deepcopy +from .mateqn import _check_shape +from .nlsys import InterconnectedSystem, NonlinearIOSystem try: from slycot import ab13dd except ImportError: ab13dd = None -__all__ = ['StateSpace', 'LinearICSystem', 'ss2io', 'tf2io', 'tf2ss', 'ssdata', - 'linfnorm', 'ss', 'rss', 'drss', 'summing_junction'] +__all__ = ['StateSpace', 'LinearICSystem', 'ss2io', 'tf2io', 'tf2ss', + 'ssdata', 'linfnorm', 'ss', 'rss', 'drss', 'summing_junction'] # Define module default parameter values _statesp_defaults = { @@ -89,7 +60,7 @@ class StateSpace(NonlinearIOSystem, LTI): r"""StateSpace(A, B, C, D[, dt]) - A class for representing state-space models. + State space representation for LTI input/output systems. The StateSpace class is used to represent state-space realizations of linear time-invariant (LTI) systems: @@ -99,75 +70,89 @@ class StateSpace(NonlinearIOSystem, LTI): 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 :math:`u` is the input, :math:`y` is the output, and + :math:`x` is the state. State space systems are usually created + with the `ss` factory function. Parameters ---------- - A, B, C, D: array_like + A, B, C, D : array_like System matrices of the appropriate dimensions. 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). + 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). Attributes ---------- ninputs, noutputs, nstates : int Number of input, output and state variables. - A, B, C, D : 2D arrays - System matrices defining the input/output dynamics. - 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). + shape : tuple + 2-tuple of I/O system dimension, (noutputs, ninputs). + input_labels, output_labels, state_labels : list of str + Names for the input, output, and state variables. + name : string, optional + System name. + + See Also + -------- + ss, InputOutputSystem, NonlinearIOSystem Notes ----- - The main data members in the ``StateSpace`` class are the A, B, C, and D + 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). - A discrete time system is created by specifying a nonzero 'timebase', dt + A discrete-time system is created by specifying a nonzero 'timebase', dt when the 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 - Systems must have compatible timebases in order to be combined. A discrete - time system with unspecified sampling time (`dt = True`) can be combined - with a system having a specified sampling time; the result will be a - discrete time system with the sample time of the latter system. Similarly, - a system with timebase `None` can be combined with a system having any - timebase; the result will have the timebase of the latter system. - The default value of dt can be changed by changing the value of - ``control.config.defaults['control.default_dt']``. + Systems must have compatible timebases in order to be combined. A + discrete-time system with unspecified sampling time (`dt` = True) can + be combined with a system having a specified sampling time; the result + will be a discrete-time system with the sample time of the other + system. Similarly, a system with timebase None can be combined with a + system having any timebase; the result will have the timebase of the + other system. The default value of dt can be changed by changing the + value of `config.defaults['control.default_dt']`. 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. - - StateSpace instances have support for IPython LaTeX output, - intended for pretty-printing in Jupyter notebooks. The LaTeX - output can be configured using - `control.config.defaults['statesp.latex_num_format']` and - `control.config.defaults['statesp.latex_repr_type']`. The LaTeX output is - tailored for MathJax, as used in Jupyter, and may look odd when - typeset by non-MathJax LaTeX systems. - - `control.config.defaults['statesp.latex_num_format']` is a format string - fragment, specifically the part of the format string after `'{:'` + `StateSpace.__call__` for a more detailed description. + + Subsystems corresponding to selected input/output pairs can be + created by indexing the state space system:: + + subsys = sys[output_spec, input_spec] + + The input and output specifications can be single integers, lists of + integers, or slices. In addition, the strings representing the names + of the signals can be used and will be replaced with the equivalent + signal offsets. The subsystem is created by truncating the inputs and + outputs, but leaving the full set of system states. + + StateSpace instances have support for IPython HTML/LaTeX output, intended + for pretty-printing in Jupyter notebooks. The HTML/LaTeX output can be + configured using `config.defaults['statesp.latex_num_format']` + and `config.defaults['statesp.latex_repr_type']`. The + HTML/LaTeX output is tailored for MathJax, as used in Jupyter, and + may look odd when typeset by non-MathJax LaTeX systems. + + `config.defaults['statesp.latex_num_format']` is a format string + fragment, specifically the part of the format string after '{:' used to convert floating-point numbers to strings. By default it - is `'.3g'`. + is '.3g'. - `control.config.defaults['statesp.latex_repr_type']` must either be - `'partitioned'` or `'separate'`. If `'partitioned'`, the A, B, C, D + `config.defaults['statesp.latex_repr_type']` must either be + 'partitioned' or 'separate'. If 'partitioned', the A, B, C, D matrices are shown as a single, partitioned matrix; if - `'separate'`, the matrices are shown separately. + 'separate', the matrices are shown separately. """ def __init__(self, *args, **kwargs): @@ -176,17 +161,13 @@ def __init__(self, *args, **kwargs): Construct a state space object. The default constructor is StateSpace(A, B, C, D), where A, B, C, D - are matrices or equivalent objects. To create a discrete time system, - use StateSpace(A, B, C, D, dt) where `dt` is the sampling time (or - True for unspecified sampling time). To call the copy constructor, - call StateSpace(sys), where sys is a StateSpace object. - - The `remove_useless_states` keyword can be used to scan the A, B, and - C matrices for rows or columns of zeros. If the zeros are such that a - particular state has no effect on the input-output dynamics, then that - state is removed from the A, B, and C matrices. If not specified, the - value is read from `config.defaults['statesp.remove_useless_states']` - (default = False). + are matrices or equivalent objects. To create a discrete-time + system, use StateSpace(A, B, C, D, dt) where `dt` is the sampling + time (or True for unspecified sampling time). To call the copy + constructor, call ``StateSpace(sys)``, where `sys` is a `StateSpace` + object. + + See `StateSpace` and `ss` for more information. """ # @@ -223,21 +204,24 @@ def __init__(self, *args, **kwargs): raise TypeError( "Expected 1, 4, or 5 arguments; received %i." % len(args)) - # Convert all matrices to standard form - A = _ssmatrix(A) - # if B is a 1D array, turn it into a column vector if it fits - if np.asarray(B).ndim == 1 and len(B) == A.shape[0]: - B = _ssmatrix(B, axis=0) - else: - B = _ssmatrix(B) - if np.asarray(C).ndim == 1 and len(C) == A.shape[0]: - C = _ssmatrix(C, axis=1) - else: - C = _ssmatrix(C, axis=0) # if this doesn't work, error below + # Convert all matrices to standard form (sizes checked later) + A = _ssmatrix(A, square=True, name="A") + B = _ssmatrix( + B, axis=0 if np.asarray(B).ndim == 1 and len(B) == A.shape[0] + else 1, name="B") + C = _ssmatrix( + C, axis=1 if np.asarray(C).ndim == 1 and len(C) == A.shape[0] + else 0, name="C") if np.isscalar(D) and D == 0 and B.shape[1] > 0 and C.shape[0] > 0: # If D is a scalar zero, broadcast it to the proper size D = np.zeros((C.shape[0], B.shape[1])) - D = _ssmatrix(D) + D = _ssmatrix(D, name="D") + + # If only direct term is present, adjust sizes of C and D if needed + if D.size > 0 and B.size == 0: + B = np.zeros((0, D.shape[1])) + if D.size > 0 and C.size == 0: + C = np.zeros((D.shape[0], 0)) # Matrices defining the linear system self.A = A @@ -245,6 +229,9 @@ def __init__(self, *args, **kwargs): self.C = C self.D = D + # Determine if the system is static (memoryless) + static = (A.size == 0) + # # Process keyword arguments # @@ -255,10 +242,10 @@ def __init__(self, *args, **kwargs): # Process iosys keywords defaults = args[0] if len(args) == 1 else \ - {'inputs': D.shape[1], 'outputs': D.shape[0], + {'inputs': B.shape[1], 'outputs': C.shape[0], 'states': A.shape[0]} name, inputs, outputs, states, dt = _process_iosys_keywords( - kwargs, defaults, static=(A.size == 0)) + kwargs, defaults, static=static) # Create updfcn and outfcn updfcn = lambda t, x, u, params: \ @@ -273,25 +260,16 @@ def __init__(self, *args, **kwargs): states=states, dt=dt, **kwargs) # Reset shapes if the system is static - if self._isstatic(): + if static: A.shape = (0, 0) B.shape = (0, self.ninputs) C.shape = (self.noutputs, 0) - # # Check to make sure everything is consistent - # - # Check that the matrix sizes are consistent - if A.shape[0] != A.shape[1] or self.nstates != A.shape[0]: - raise ValueError("A must be square.") - if self.nstates != B.shape[0]: - raise ValueError("A and B must have the same number of rows.") - if self.nstates != C.shape[1]: - raise ValueError("A and C must have the same number of columns.") - if self.ninputs != B.shape[1]: - raise ValueError("B and D must have the same number of columns.") - if self.noutputs != C.shape[0]: - raise ValueError("C and D must have the same number of rows.") + _check_shape(A, self.nstates, self.nstates, name="A") + _check_shape(B, self.nstates, self.ninputs, name="B") + _check_shape(C, self.noutputs, self.nstates, name="C") + _check_shape(D, self.noutputs, self.ninputs, name="D") # # Final processing @@ -353,20 +331,20 @@ def __init__(self, *args, **kwargs): def _get_states(self): warn("The StateSpace `states` attribute will be deprecated in a " "future release. Use `nstates` instead.", - DeprecationWarning, stacklevel=2) + FutureWarning, stacklevel=2) return self.nstates def _set_states(self, value): warn("The StateSpace `states` attribute will be deprecated in a " "future release. Use `nstates` instead.", - DeprecationWarning, stacklevel=2) + FutureWarning, stacklevel=2) self.nstates = value - #: Deprecated attribute; use :attr:`nstates` instead. + #: Deprecated attribute; use `nstates` instead. #: - #: The ``state`` attribute was used to store the number of states for : a + #: 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`. + #: number of states, use `nstates`. states = property(_get_states, _set_states) def _remove_useless_states(self): @@ -401,23 +379,56 @@ def _remove_useless_states(self): def __str__(self): """Return string representation of the state space system.""" string = f"{InputOutputSystem.__str__(self)}\n\n" - string += "\n".join([ - "{} = {}\n".format(Mvar, + string += "\n\n".join([ + "{} = {}".format(Mvar, "\n ".join(str(M).splitlines())) for Mvar, M in zip(["A", "B", "C", "D"], [self.A, self.B, self.C, self.D])]) - if self.isdtime(strict=True): - string += f"\ndt = {self.dt}\n" return string - # 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( + def _repr_eval_(self): + # Loadable format + out = "StateSpace(\n{A},\n{B},\n{C},\n{D}".format( 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 '') + C=self.C.__repr__(), D=self.D.__repr__()) + + out += super()._dt_repr(separator=",\n", space="") + if len(labels := super()._label_repr()) > 0: + out += ",\n" + labels + + out += ")" + return out + + def _repr_html_(self): + """HTML representation of state-space model. + + Output is controlled by config options statesp.latex_repr_type, + statesp.latex_num_format, and statesp.latex_maxsize. + + The output is primarily intended for Jupyter notebooks, which + use MathJax to render the LaTeX, and the results may look odd + when processed by a 'conventional' LaTeX system. + + Returns + ------- + s : str + HTML/LaTeX representation of model, or None if either matrix + dimension is greater than statesp.latex_maxsize. + + """ + syssize = self.nstates + max(self.noutputs, self.ninputs) + if syssize > config.defaults['statesp.latex_maxsize']: + return None + elif config.defaults['statesp.latex_repr_type'] == 'partitioned': + return super()._repr_info_(html=True) + \ + "\n" + self._latex_partitioned() + elif config.defaults['statesp.latex_repr_type'] == 'separate': + return super()._repr_info_(html=True) + \ + "\n" + self._latex_separate() + else: + raise ValueError( + "Unknown statesp.latex_repr_type '{cfg}'".format( + cfg=config.defaults['statesp.latex_repr_type'])) def _latex_partitioned_stateless(self): """`Partitioned` matrix LaTeX representation for stateless systems @@ -426,23 +437,28 @@ def _latex_partitioned_stateless(self): Returns ------- - s : string with LaTeX representation of model + s : str + LaTeX representation of model. + """ + # Apply NumPy formatting + with np.printoptions(threshold=sys.maxsize): + D = eval(repr(self.D)) + lines = [ r'$$', - (r'\left(' + (r'\left[' + r'\begin{array}' + r'{' + 'rll' * self.ninputs + '}') ] - for Di in asarray(self.D): + for Di in asarray(D): lines.append('&'.join(_f2s(Dij) for Dij in Di) + '\\\\') lines.extend([ r'\end{array}' - r'\right)' - + self._latex_dt(), + r'\right]', r'$$']) return '\n'.join(lines) @@ -455,32 +471,38 @@ def _latex_partitioned(self): Returns ------- - s : string with LaTeX representation of model + s : str + LaTeX representation of model. + """ if self.nstates == 0: return self._latex_partitioned_stateless() + # Apply NumPy formatting + with np.printoptions(threshold=sys.maxsize): + A, B, C, D = ( + eval(repr(getattr(self, M))) for M in ['A', 'B', 'C', 'D']) + lines = [ r'$$', - (r'\left(' + (r'\left[' + r'\begin{array}' + r'{' + 'rll' * self.nstates + '|' + 'rll' * self.ninputs + '}') ] - for Ai, Bi in zip(asarray(self.A), asarray(self.B)): + for Ai, Bi in zip(asarray(A), asarray(B)): lines.append('&'.join([_f2s(Aij) for Aij in Ai] + [_f2s(Bij) for Bij in Bi]) + '\\\\') lines.append(r'\hline') - for Ci, Di in zip(asarray(self.C), asarray(self.D)): + for Ci, Di in zip(asarray(C), asarray(D)): lines.append('&'.join([_f2s(Cij) for Cij in Ci] + [_f2s(Dij) for Dij in Di]) + '\\\\') lines.extend([ r'\end{array}' - + r'\right)' - + self._latex_dt(), + + r'\right]', r'$$']) return '\n'.join(lines) @@ -492,7 +514,9 @@ def _latex_separate(self): Returns ------- - s : string with LaTeX representation of model + s : str + LaTeX representation of model. + """ lines = [ r'$$', @@ -501,7 +525,7 @@ def _latex_separate(self): def fmt_matrix(matrix, name): matlines = [name - + r' = \left(\begin{array}{' + + r' = \left[\begin{array}{' + 'rll' * matrix.shape[1] + '}'] for row in asarray(matrix): @@ -509,7 +533,7 @@ def fmt_matrix(matrix, name): + '\\\\') matlines.extend([ r'\end{array}' - r'\right)']) + r'\right]']) return matlines if self.nstates > 0: @@ -523,52 +547,11 @@ def fmt_matrix(matrix, name): lines.extend(fmt_matrix(self.D, 'D')) lines.extend([ - r'\end{array}' - + self._latex_dt(), + r'\end{array}', r'$$']) return '\n'.join(lines) - def _latex_dt(self): - if self.isdtime(strict=True): - if self.dt is True: - return r"~,~dt=~\mathrm{True}" - else: - fmt = config.defaults['statesp.latex_num_format'] - return f"~,~dt={self.dt:{fmt}}" - return "" - - def _repr_latex_(self): - """LaTeX representation of state-space model - - Output is controlled by config options statesp.latex_repr_type, - statesp.latex_num_format, and statesp.latex_maxsize. - - The output is primarily intended for Jupyter notebooks, which - use MathJax to render the LaTeX, and the results may look odd - when processed by a 'conventional' LaTeX system. - - - Returns - ------- - - s : string with LaTeX representation of model, or None if - either matrix dimension is greater than - statesp.latex_maxsize - - """ - syssize = self.nstates + max(self.noutputs, self.ninputs) - if syssize > config.defaults['statesp.latex_maxsize']: - return None - elif config.defaults['statesp.latex_repr_type'] == 'partitioned': - return self._latex_partitioned() - elif config.defaults['statesp.latex_repr_type'] == 'separate': - return self._latex_separate() - else: - raise ValueError( - "Unknown statesp.latex_repr_type '{cfg}'".format( - cfg=config.defaults['statesp.latex_repr_type'])) - # Negation of a system def __neg__(self): """Negate a state space system.""" @@ -593,6 +576,9 @@ def __add__(self, other): elif isinstance(other, np.ndarray): other = np.atleast_2d(other) + # Special case for SISO + if self.issiso(): + self = np.ones_like(other) * self if self.ninputs != other.shape[0]: raise ValueError("array has incompatible shape") A, B, C = self.A, self.B, self.C @@ -603,6 +589,12 @@ def __add__(self, other): return NotImplemented # let other.__rmul__ handle it else: + # Promote SISO object to compatible dimension + if self.issiso() and not other.issiso(): + self = np.ones((other.noutputs, other.ninputs)) * self + elif not self.issiso() and other.issiso(): + other = np.ones((self.noutputs, self.ninputs)) * other + # Check to make sure the dimensions are OK if ((self.ninputs != other.ninputs) or (self.noutputs != other.noutputs)): @@ -657,6 +649,10 @@ def __mul__(self, other): elif isinstance(other, np.ndarray): other = np.atleast_2d(other) + # Special case for SISO + if self.issiso(): + self = bdalg.append(*([self] * other.shape[0])) + # Dimension check after broadcasting if self.ninputs != other.shape[0]: raise ValueError("array has incompatible shape") A, C = self.A, self.C @@ -668,6 +664,12 @@ def __mul__(self, other): return NotImplemented # let other.__rmul__ handle it else: + # Promote SISO object to compatible dimension + if self.issiso() and not other.issiso(): + self = bdalg.append(*([self] * other.noutputs)) + elif not self.issiso() and other.issiso(): + other = bdalg.append(*([other] * self.ninputs)) + # Check to make sure the dimensions are OK if self.ninputs != other.noutputs: raise ValueError( @@ -707,56 +709,80 @@ def __rmul__(self, other): return StateSpace(self.A, B, self.C, D, self.dt) elif isinstance(other, np.ndarray): - C = np.atleast_2d(other) @ self.C - D = np.atleast_2d(other) @ self.D + other = np.atleast_2d(other) + # Special case for SISO transfer function + if self.issiso(): + self = bdalg.append(*([self] * other.shape[1])) + # Dimension check after broadcasting + if self.noutputs != other.shape[1]: + raise ValueError("array has incompatible shape") + C = other @ self.C + D = other @ self.D return StateSpace(self.A, self.B, C, D, self.dt) if not isinstance(other, StateSpace): return NotImplemented + # Promote SISO object to compatible dimension + if self.issiso() and not other.issiso(): + self = bdalg.append(*([self] * other.ninputs)) + elif not self.issiso() and other.issiso(): + other = bdalg.append(*([other] * self.noutputs)) + return other * self # TODO: general __truediv__ requires descriptor system support def __truediv__(self, other): """Division of state space systems by TFs, FRDs, scalars, and arrays""" - if not isinstance(other, (LTI, InputOutputSystem)): - return self * (1/other) - else: + # Let ``other.__rtruediv__`` handle it + try: + return self * (1 / other) + except ValueError: return NotImplemented - def __call__(self, x, squeeze=None, warn_infinite=True): - """Evaluate system's frequency response at complex frequencies. + def __rtruediv__(self, other): + """Division by state space system""" + return other * self**-1 - Returns the complex frequency response `sys(x)` where `x` is `s` for - continuous-time systems and `z` for discrete-time systems. + def __pow__(self, other): + """Power of a state space system""" + if not type(other) == int: + raise ValueError("Exponent must be an integer") + if self.ninputs != self.noutputs: + # System must have same number of inputs and outputs + return NotImplemented + if other < -1: + return (self**-1)**(-other) + elif other == -1: + try: + Di = scipy.linalg.inv(self.D) + except scipy.linalg.LinAlgError: + # D matrix must be nonsingular + return NotImplemented + Ai = self.A - self.B @ Di @ self.C + Bi = self.B @ Di + Ci = -Di @ self.C + return StateSpace(Ai, Bi, Ci, Di, self.dt) + elif other == 0: + return StateSpace([], [], [], np.eye(self.ninputs), self.dt) + elif other == 1: + return self + elif other > 1: + return self * (self**(other - 1)) - To evaluate at a frequency omega in radians per second, enter - ``x = omega * 1j``, for continuous-time systems, or - ``x = exp(1j * omega * dt)`` for discrete-time systems. Or use - :meth:`StateSpace.frequency_response`. + def __call__(self, x, squeeze=None, warn_infinite=True): + """Evaluate system transfer function at point in complex plane. - Parameters - ---------- - x : complex or complex 1D array_like - Complex frequencies - 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']. - warn_infinite : bool, optional - If set to `False`, don't warn if frequency response is infinite. + Returns the value of the system's transfer function at a point `x` + in the complex plane, where `x` is `s` for continuous-time systems + and `z` for discrete-time systems. - Returns - ------- - fresp : complex ndarray - The frequency response of the system. If the system is SISO and - squeeze is not True, the shape of the array matches the shape of - omega. If the system is not SISO or squeeze is False, the first - two dimensions of the array are indices for the output and input - and the remaining dimensions match omega. If ``squeeze`` is True - then single-dimensional axes are removed. + See `LTI.__call__` for details. + + Examples + -------- + >>> G = ct.ss([[-1, -2], [3, -4]], [[5], [7]], [[6, 8]], [[9]]) + >>> fresp = G(1j) # evaluate at s = 1j """ # Use Slycot if available @@ -764,21 +790,23 @@ def __call__(self, x, squeeze=None, warn_infinite=True): return _process_frequency_response(self, x, out, squeeze=squeeze) def slycot_laub(self, x): - """Evaluate system's transfer function at complex frequency - using Laub's method from Slycot. + """Laub's method to evaluate response at complex frequency. - Expects inputs and outputs to be formatted correctly. Use ``sys(x)`` - for a more user-friendly interface. + Evaluate transfer function at complex frequency using Laub's + method from Slycot. Expects inputs and outputs to be + formatted correctly. Use ``sys(x)`` for a more user-friendly + interface. Parameters ---------- x : complex array_like or complex - Complex frequency + Complex frequency. Returns ------- output : (number_outputs, number_inputs, len(x)) complex ndarray - Frequency response + Frequency response. + """ from slycot import tb05ad @@ -819,29 +847,30 @@ def slycot_laub(self, x): return out def horner(self, x, warn_infinite=True): - """Evaluate system's transfer function at complex frequency - using Laub's or Horner's method. - - Evaluates `sys(x)` where `x` is `s` for continuous-time systems and `z` - for discrete-time systems. + """Evaluate value of transfer function using Horner's method. - Expects inputs and outputs to be formatted correctly. Use ``sys(x)`` - for a more user-friendly interface. + Evaluates ``sys(x)`` where `x` is a complex number `s` for + continuous-time systems and `z` for discrete-time systems. Expects + inputs and outputs to be formatted correctly. Use ``sys(x)`` for a + more user-friendly interface. Parameters ---------- - x : complex array_like or complex - Complex frequencies + x : complex + Complex frequency at which the transfer function is evaluated. + + warn_infinite : bool, optional + If True (default), generate a warning if `x` is a pole. Returns ------- - output : (self.noutputs, self.ninputs, len(x)) complex ndarray - Frequency response + complex Notes ----- - Attempts to use Laub's method from Slycot library, with a - fall-back to python code. + Attempts to use Laub's method from Slycot library, with a fall-back + to Python code. + """ # Make sure the argument is a 1D array of complex numbers x_arr = np.atleast_1d(x).astype(complex, copy=False) @@ -879,7 +908,7 @@ def horner(self, x, warn_infinite=True): xr = solve(x_idx * eye(self.nstates) - self.A, self.B) out[:, :, idx] = self.C @ xr + self.D except LinAlgError: - # Issue a warning messsage, for consistency with xferfcn + # Issue a warning message, for consistency with xferfcn if warn_infinite: warn("singular matrix in frequency response", RuntimeWarning) @@ -897,14 +926,14 @@ def freqresp(self, omega): """(deprecated) Evaluate transfer function at complex frequencies. .. deprecated::0.9.0 - Method has been given the more pythonic name - :meth:`StateSpace.frequency_response`. Or use - :func:`freqresp` in the MATLAB compatibility module. + Method has been given the more Pythonic name + `StateSpace.frequency_response`. Or use + `freqresp` in the MATLAB compatibility module. """ warn("StateSpace.freqresp(omega) will be removed in a " "future release of python-control; use " "sys.frequency_response(omega), or freqresp(sys, omega) in the " - "MATLAB compatibility module instead", DeprecationWarning) + "MATLAB compatibility module instead", FutureWarning) return self.frequency_response(omega) # Compute poles and zeros @@ -931,11 +960,11 @@ def zeros(self): if nu == 0: return np.array([]) else: - # Use SciPy generalized eigenvalue fucntion + # Use SciPy generalized eigenvalue function return sp.linalg.eigvals(out[8][0:nu, 0:nu], out[9][0:nu, 0:nu]).astype(complex) - except ImportError: # Slycot unavailable. Fall back to scipy. + except ImportError: # Slycot unavailable. Fall back to SciPy. if self.C.shape[0] != self.D.shape[1]: raise NotImplementedError( "StateSpace.zero only supports systems with the same " @@ -961,7 +990,17 @@ def zeros(self): # Feedback around a state space system def feedback(self, other=1, sign=-1): - """Feedback interconnection between two LTI systems.""" + """Feedback interconnection between two LTI objects. + + Parameters + ---------- + other : `InputOutputSystem` + System in the feedback path. + + sign : float, optional + Gain to use in feedback path. Defaults to -1. + + """ # Convert the system to state space, if possible try: other = _convert_to_statespace(other) @@ -1018,24 +1057,30 @@ def feedback(self, other=1, sign=-1): return StateSpace(A, B, C, D, dt) def lft(self, other, nu=-1, ny=-1): - """Return the Linear Fractional Transformation. + """Return the linear fractional transformation. A definition of the LFT operator can be found in Appendix A.7, - page 512 in the 2nd Edition, Multivariable Feedback Control by - Sigurd Skogestad. - - An alternative definition can be found here: + page 512 in [1]_. An alternative definition can be found here: https://www.mathworks.com/help/control/ref/lft.html Parameters ---------- - other : LTI - The lower LTI system + other : `StateSpace` + The lower LTI system. ny : int, optional Dimension of (plant) measurement output. nu : int, optional Dimension of (plant) control input. + Returns + ------- + `StateSpace` + + References + ---------- + .. [1] S. Skogestad, Multivariable Feedback Control. Second + edition, 2005. + """ other = _convert_to_statespace(other) # maximal values for nu, ny @@ -1073,7 +1118,7 @@ def lft(self, other, nu=-1, ny=-1): # well-posed check F = np.block([[np.eye(ny), -D22], [-Dbar11, np.eye(nu)]]) if matrix_rank(F) != ny + nu: - raise ValueError("lft not well-posed to working precision.") + raise ValueError("LFT not well-posed to working precision.") # solve for the resulting ss by solving for [y, u] using [x, # xbar] and [w1, w2]. @@ -1116,8 +1161,18 @@ def lft(self, other, nu=-1, ny=-1): return StateSpace(Ares, Bres, Cres, Dres, dt) def minreal(self, tol=0.0): - """Calculate a minimal realization, removes unobservable and - uncontrollable states""" + """Remove unobservable and uncontrollable states. + + Calculate a minimal realization for a state space system, + removing all unobservable and/or uncontrollable states. + + Parameters + ---------- + tol : float + Tolerance for determining whether states are unobservable + or uncontrollable. + + """ if self.nstates: try: from slycot import tb01pd @@ -1128,21 +1183,21 @@ def minreal(self, tol=0.0): A, B, C, nr = tb01pd(self.nstates, self.ninputs, self.noutputs, self.A, B, C, tol=tol) return StateSpace(A[:nr, :nr], B[:nr, :self.ninputs], - C[:self.noutputs, :nr], self.D) + C[:self.noutputs, :nr], self.D, self.dt) except ImportError: raise TypeError("minreal requires slycot tb01pd") else: return StateSpace(self) def returnScipySignalLTI(self, strict=True): - """Return a list of a list of :class:`scipy.signal.lti` objects. + """Return a list of a list of `scipy.signal.lti` objects. For instance, >>> out = ssobject.returnScipySignalLTI() # doctest: +SKIP >>> out[3][5] # doctest: +SKIP - is a :class:`scipy.signal.lti` object corresponding to the transfer + is a `scipy.signal.lti` object corresponding to the transfer function from the 6th input to the 4th output. Parameters @@ -1152,15 +1207,16 @@ def returnScipySignalLTI(self, strict=True): The timebase `ssobject.dt` cannot be None; it must be continuous (0) or discrete (True or > 0). False: - If `ssobject.dt` is None, continuous time - :class:`scipy.signal.lti` objects are returned. + If `ssobject.dt` is None, continuous-time + `scipy.signal.lti` objects are returned. Returns ------- - out : list of list of :class:`scipy.signal.StateSpace` - continuous time (inheriting from :class:`scipy.signal.lti`) - or discrete time (inheriting from :class:`scipy.signal.dlti`) - SISO objects + out : list of list of `scipy.signal.StateSpace` + Continuous time (inheriting from `scipy.signal.lti`) + or discrete time (inheriting from `scipy.signal.dlti`) + SISO objects. + """ if strict and self.dt is None: raise ValueError("with strict=True, dt cannot be None") @@ -1168,7 +1224,7 @@ def returnScipySignalLTI(self, strict=True): if self.dt: kwdt = {'dt': self.dt} else: - # scipy convention for continuous time lti systems: call without + # SciPy convention for continuous-time LTI systems: call without # dt keyword argument kwdt = {} @@ -1189,7 +1245,19 @@ def append(self, other): """Append a second model to the present model. The second model is converted to state-space if necessary, inputs and - outputs are appended and their order is preserved""" + outputs are appended and their order is preserved. + + Parameters + ---------- + other : `StateSpace` or `TransferFunction` + System to be appended. + + Returns + ------- + sys : `StateSpace` + System model with `other` appended to `self`. + + """ if not isinstance(other, StateSpace): other = _convert_to_statespace(other) @@ -1212,23 +1280,29 @@ def append(self, other): D[self.noutputs:, self.ninputs:] = other.D return StateSpace(A, B, C, D, self.dt) - def __getitem__(self, indices): + def __getitem__(self, key): """Array style access""" - if len(indices) != 2: - 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]] + if not isinstance(key, Iterable) or len(key) != 2: + raise IOError("must provide indices of length 2 for state space") + + # Convert signal names to integer offsets + iomap = NamedSignal(self.D, self.output_labels, self.input_labels) + indices = iomap._parse_key(key, level=1) # ignore index checks + outdx, output_labels = _process_subsys_index( + indices[0], self.output_labels) + inpdx, input_labels = _process_subsys_index( + indices[1], self.input_labels) + 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, - inputs=[self.input_labels[i] for i in list(inpdx)], - outputs=[self.output_labels[i] for i in list(outdx)]) + self.A, self.B[:, inpdx], self.C[outdx, :], + self.D[outdx, :][:, inpdx], self.dt, + name=sysname, inputs=input_labels, outputs=output_labels) 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 + """Convert a continuous-time system to discrete time. Creates a discrete-time system from a continuous-time system by sampling. Multiple methods of conversion are supported. @@ -1236,48 +1310,51 @@ def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None, Parameters ---------- Ts : float - Sampling period - method : {"gbt", "bilinear", "euler", "backward_diff", "zoh"} - Which method to use: - - * gbt: generalized bilinear transformation - * bilinear: Tustin's approximation ("gbt" with alpha=0.5) - * euler: Euler (or forward differencing) method ("gbt" with + Sampling period. + method : {'gbt', 'bilinear', 'euler', 'backward_diff', 'zoh'} + Method to use for sampling: + + * 'gbt': generalized bilinear transformation + * 'backward_diff': Backwards difference ('gbt' with alpha=1.0) + * 'bilinear' (or 'tustin'): Tustin's approximation ('gbt' with + alpha=0.5) + * 'euler': Euler (or forward difference) method ('gbt' with alpha=0) - * backward_diff: Backwards differencing ("gbt" with alpha=1.0) - * zoh: zero-order hold (default) + * '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 + 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. + 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. 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['iosys.sampled_system_name_prefix'] and - config.defaults['iosys.sampled_system_name_suffix'], with the - default being to add the suffix '$sampled'. + Set the name of the sampled system. If not specified and if + `copy_names` is False, a generic name 'sys[id]' 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['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 signals, and states to the sampled system. Returns ------- - sysd : StateSpace - Discrete-time system, with sampling rate Ts + 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 - information. + Description of the system inputs. If not specified, the + original system inputs are used. See `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 @@ -1285,7 +1362,7 @@ def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None, Notes ----- - Uses :func:`scipy.signal.cont2discrete` + Uses `scipy.signal.cont2discrete`. Examples -------- @@ -1294,7 +1371,7 @@ def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None, """ if not self.isctime(): - raise ValueError("System must be continuous time system") + raise ValueError("System must be continuous-time system") if prewarp_frequency is not None: if method in ('bilinear', 'tustin') or \ (method == 'gbt' and alpha == 0.5): @@ -1316,7 +1393,7 @@ def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None, return StateSpace(sysd, **kwargs) def dcgain(self, warn_infinite=False): - """Return the zero-frequency gain + """Return the zero-frequency ("DC") gain. The zero-frequency gain of a continuous-time state-space system is given by: @@ -1331,26 +1408,28 @@ def dcgain(self, warn_infinite=False): ---------- warn_infinite : bool, optional By default, don't issue a warning message if the zero-frequency - gain is infinite. Setting `warn_infinite` to generate the warning - message. + gain is infinite. Setting `warn_infinite` to generate the + warning message. Returns ------- gain : (noutputs, ninputs) ndarray or scalar Array or scalar value for SISO systems, depending on - config.defaults['control.squeeze_frequency_response']. - The value of the array elements or the scalar is either the - zero-frequency (or DC) gain, or `inf`, if the frequency response - is singular. + `config.defaults['control.squeeze_frequency_response']`. The + value of the array elements or the scalar is either the + zero-frequency (or DC) gain, or `inf`, if the frequency + response is singular. For real valued systems, the empty imaginary part of the complex zero-frequency response is discarded and a real array or scalar is returned. + """ return self._dcgain(warn_infinite) + # TODO: decide if we need this function (already in NonlinearIOSystem def dynamics(self, t, x, u=None, params=None): - """Compute the dynamics of the system + """Compute the dynamics of the system. Given input `u` and state `x`, returns the dynamics of the state-space system. If the system is continuous, returns the time derivative dx/dt @@ -1358,25 +1437,25 @@ def dynamics(self, t, x, u=None, params=None): dx/dt = A x + B u where A and B are the state-space matrices of the system. If the - system is discrete-time, returns the next value of `x`: + system is discrete time, returns the next value of `x`: x[t+dt] = A x[t] + B u[t] The inputs `x` and `u` must be of the correct length for the system. - The first argument `t` is ignored because :class:`StateSpace` systems + The first argument `t` is ignored because `StateSpace` systems are time-invariant. It is included so that the dynamics can be passed - to numerical integrators, such as :func:`scipy.integrate.solve_ivp` - and for consistency with :class:`IOSystem` systems. + to numerical integrators, such as `scipy.integrate.solve_ivp` + and for consistency with `InputOutputSystem` models. Parameters ---------- t : float (ignored) - time + Time. x : array_like - current state + Current state. u : array_like (optional) - input, zero if omitted + Input, zero if omitted. Returns ------- @@ -1398,8 +1477,9 @@ def dynamics(self, t, x, u=None, params=None): return (self.A @ x).reshape((-1,)) \ + (self.B @ u).reshape((-1,)) # return as row vector + # TODO: decide if we need this function (already in NonlinearIOSystem def output(self, t, x, u=None, params=None): - """Compute the output of the system + """Compute the output of the system. Given input `u` and state `x`, returns the output `y` of the state-space system: @@ -1408,25 +1488,26 @@ def output(self, t, x, u=None, params=None): where A and B are the state-space matrices of the system. - The first argument `t` is ignored because :class:`StateSpace` systems + The first argument `t` is ignored because `StateSpace` systems are time-invariant. It is included so that the dynamics can be passed - to most numerical integrators, such as scipy's `integrate.solve_ivp` - and for consistency with :class:`IOSystem` systems. + to most numerical integrators, such as SciPy's `integrate.solve_ivp` + and for consistency with `InputOutputSystem` models. The inputs `x` and `u` must be of the correct length for the system. Parameters ---------- t : float (ignored) - time + Time. x : array_like - current state + Current state. u : array_like (optional) - input (zero if omitted) + Input (zero if omitted). Returns ------- y : ndarray + """ if params is not None: warn("params keyword ignored for StateSpace object") @@ -1444,17 +1525,20 @@ def output(self, t, x, u=None, params=None): return (self.C @ x).reshape((-1,)) \ + (self.D @ u).reshape((-1,)) # return as row vector + # convenience alias, import needs submodule to avoid circular imports + initial_response = control.timeresp.initial_response + 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 required - elements of the :class:`StateSpace` class structure, allowing it to be - passed to functions that expect a :class:`StateSpace` system. + `InterconnectedSystem`, but also maintains the required + elements of the `StateSpace` class structure, allowing it to be + passed to functions that expect a `StateSpace` system. - This class is generated using :func:`~control.interconnect` and + This class is generated using `interconnect` and not called directly. """ @@ -1464,7 +1548,7 @@ 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 # appropriate size, then copy over the elements of the - # InterconnectedIOSystem class. From there we compute the + # InterconnectedSystem class. From there we compute the # linearization of the system (if needed) and then populate the # StateSpace parameters. # @@ -1485,7 +1569,7 @@ def __init__(self, io_sys, ss_sys=None, connection_type=None): self.params = io_sys.params self.connection_type = connection_type - # If we didnt' get a state space system, linearize the full system + # If we didn't' get a state space system, linearize the full system if ss_sys is None: ss_sys = self.linearize(0, 0) @@ -1495,19 +1579,48 @@ def __init__(self, io_sys, ss_sys=None, connection_type=None): outputs=io_sys.output_labels, states=io_sys.state_labels, params=io_sys.params, remove_useless_states=False) - # Use StateSpace.__call__ to evaluate at a given complex value - def __call__(self, *args, **kwargs): - return StateSpace.__call__(self, *args, **kwargs) + # Use StateSpace.__call__ to evaluate at a given complex value + def __call__(self, *args, **kwargs): + return StateSpace.__call__(self, *args, **kwargs) + + def __str__(self): + string = InterconnectedSystem.__str__(self) + "\n\n" + string += "\n\n".join([ + "{} = {}".format(Mvar, + "\n ".join(str(M).splitlines())) + for Mvar, M in zip(["A", "B", "C", "D"], + [self.A, self.B, self.C, self.D])]) + return string + + # Use InputOutputSystem repr for 'eval' since we can't recreate structure + # (without this, StateSpace._repr_eval_ gets used...) + def _repr_eval_(self): + return InputOutputSystem._repr_eval_(self) + + def _repr_html_(self): + syssize = self.nstates + max(self.noutputs, self.ninputs) + if syssize > config.defaults['statesp.latex_maxsize']: + return None + elif config.defaults['statesp.latex_repr_type'] == 'partitioned': + return InterconnectedSystem._repr_info_(self, html=True) + \ + "\n" + StateSpace._latex_partitioned(self) + elif config.defaults['statesp.latex_repr_type'] == 'separate': + return InterconnectedSystem._repr_info_(self, html=True) + \ + "\n" + StateSpace._latex_separate(self) + else: + raise ValueError( + "Unknown statesp.latex_repr_type '{cfg}'".format( + cfg=config.defaults['statesp.latex_repr_type'])) # The following text needs to be replicated from StateSpace in order for - # this entry to show up properly in sphinx doccumentation (not sure why, + # this entry to show up properly in sphinx documentation (not sure why, # but it was the only way to get it to work). # - #: Deprecated attribute; use :attr:`nstates` instead. + #: Deprecated attribute; use `nstates` instead. #: - #: The ``state`` attribute was used to store the number of states for : a + #: 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`. + #: number of states, use `nstates`. states = property(StateSpace._get_states, StateSpace._set_states) @@ -1517,13 +1630,15 @@ def ss(*args, **kwargs): Create a state space system. - The function accepts either 1, 2, 4 or 5 parameters: + The function accepts either 1, 4 or 5 positional 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. + new system, even if `sys` is already a state space system. ``ss(A, B, C, D)`` + Create a state space system from the matrices of its state and output equations: @@ -1533,6 +1648,7 @@ def ss(*args, **kwargs): 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: @@ -1541,39 +1657,53 @@ def ss(*args, **kwargs): 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 - permissible here too. + The matrices can be given as 2D array_like data types. For SISO + systems, `B` and `C` can be given as 1D arrays and D can be given + as a scalar. - ``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 ---------- - sys : StateSpace or TransferFunction + 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. + 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). + remove_useless_states : bool, optional + If True, remove states that have no effect on the input/output + dynamics. If not specified, the value is read from + `config.defaults['statesp.remove_useless_states']` (default = False). + method : str, optional + Set the method used for converting a transfer function to a state + space system. Current methods are 'slycot' and 'scipy'. If set to + None (default), try 'slycot' first and then 'scipy' (SISO only). Returns ------- - out: :class:`StateSpace` + out : `StateSpace` Linear input/output system. + Other Parameters + ---------------- + 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 + `InputOutputSystem` for more information. + input_prefix, output_prefix, state_prefix : string, optional + Set the prefix for input, output, and state signals. Defaults = + 'u', 'y', 'x'. + name : string, optional + System name (used for specifying signals). If unspecified, a generic + name 'sys[id]' is generated with a unique integer id. + Raises ------ ValueError @@ -1581,22 +1711,22 @@ def ss(*args, **kwargs): See Also -------- - tf, ss2tf, tf2ss + StateSpace, nlsys, tf, ss2tf, tf2ss, zpk 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 + `tf2ss`. The `method` keyword can be used to select the method for conversion. Examples -------- - Create a Linear I/O system object from matrices. + 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. + Convert a transfer function to a state space system: >>> sys_tf = ct.tf([2.], [1., 3]) >>> sys2 = ct.ss(sys_tf) @@ -1606,8 +1736,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("using ss to create nonlinear I/O systems is deprecated; " - "use nlsys()", DeprecationWarning) + warn("using ss() to create nonlinear I/O systems is deprecated; " + "use nlsys()", FutureWarning) return NonlinearIOSystem(*args, **kwargs) elif len(args) == 4 or len(args) == 5: @@ -1622,7 +1752,7 @@ def ss(*args, **kwargs): warn("state labels specified for " "non-unique state space realization") - # Allow method to be specified (eg, tf2ss) + # Allow method to be specified (e.g., tf2ss) method = kwargs.pop('method', None) # Create a state space system from an LTI system @@ -1652,10 +1782,10 @@ def ss2io(*args, **kwargs): 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. + Create an `StateSpace` system with the given signal + and system names. See `ss` for more details. """ - warn("ss2io is deprecated; use ss()", DeprecationWarning) + warn("ss2io() is deprecated; use ss()", FutureWarning) return StateSpace(*args, **kwargs) @@ -1672,18 +1802,20 @@ def tf2io(*args, **kwargs): 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. + 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` + For details see: `tf`. Parameters ---------- - sys : LTI (StateSpace or TransferFunction) + sys : `StateSpace` or `TransferFunction` A linear system. num : array_like, or list of list of array_like Polynomial coefficients of the numerator. @@ -1692,7 +1824,7 @@ def tf2io(*args, **kwargs): Returns ------- - out : StateSpace + out : `StateSpace` New I/O system (in state space form). Other Parameters @@ -1702,22 +1834,21 @@ def tf2io(*args, **kwargs): 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 + System name. If unspecified, a generic name 'sys[id]' is generated with a unique integer id. Raises ------ ValueError - if `num` and `den` have invalid or unequal dimensions, or if an + 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. + If `num` or `den` are of incorrect type, or if `sys` is not a + `TransferFunction` object. See Also -------- - ss2io - tf2ss + ss2io, tf2ss Examples -------- @@ -1731,7 +1862,7 @@ def tf2io(*args, **kwargs): (2, 2, 8) """ - warn("tf2io is deprecated; use tf2ss() or tf()", DeprecationWarning) + warn("tf2io() is deprecated; use tf2ss() or tf()", FutureWarning) return tf2ss(*args, **kwargs) @@ -1743,28 +1874,30 @@ def tf2ss(*args, **kwargs): The function accepts either 1 or 2 parameters: ``tf2ss(sys)`` + 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 polynomial coefficients. - For details see: :func:`tf` + For details see: `tf`. Parameters ---------- - sys : LTI (StateSpace or TransferFunction) - A linear system + sys : `StateSpace` or `TransferFunction` + A linear system. num : array_like, or list of list of array_like - Polynomial coefficients of the numerator + Polynomial coefficients of the numerator. den : array_like, or list of list of array_like - Polynomial coefficients of the denominator + Polynomial coefficients of the denominator. Returns ------- - out : StateSpace - New linear system in state space form + out : `StateSpace` + New linear system in state space form. Other Parameters ---------------- @@ -1773,34 +1906,32 @@ def tf2ss(*args, **kwargs): 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 + System name. If unspecified, a generic name 'sys[id]' 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). + 'slycot' and 'scipy'. If set to None (default), try 'slycot' + first and then 'scipy' (SISO only). Raises ------ ValueError - if `num` and `den` have invalid or unequal dimensions, or if an - invalid number of arguments is passed in + 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 + If `num` or `den` are of incorrect type, or if `sys` is not a + `TransferFunction` object. See Also -------- - ss - tf - ss2tf + ss, 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. + 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 -------- @@ -1832,47 +1963,51 @@ def ssdata(sys): Parameters ---------- - sys : LTI (StateSpace, or TransferFunction) - LTI system whose data will be returned + sys : `StateSpace` or `TransferFunction` + LTI system whose data will be returned. Returns ------- - (A, B, C, D): list of matrices - State space data for the system + A, B, C, D : ndarray + State space data for the system. + """ ss = _convert_to_statespace(sys) return ss.A, ss.B, ss.C, ss.D +# TODO: combine with sysnorm? def linfnorm(sys, tol=1e-10): - """L-infinity norm of a linear system + """L-infinity norm of a linear system. Parameters ---------- - sys : LTI (StateSpace or TransferFunction) - system to evalute L-infinity norm of + sys : `StateSpace` or `TransferFunction` + System to evaluate L-infinity norm of. tol : real scalar - tolerance on norm estimate + Tolerance on norm estimate. Returns ------- gpeak : non-negative scalar - L-infinity norm + L-infinity norm. fpeak : non-negative scalar - Frequency, in rad/s, at which gpeak occurs + Frequency, in rad/s, at which gpeak occurs. + + See Also + -------- + slycot.ab13dd + Notes + ----- 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'") + raise ControlSlycot("Can't find slycot module ab13dd") a, b, c, d = ssdata(_convert_to_statespace(sys)) e = np.eye(a.shape[0]) @@ -1885,7 +2020,7 @@ def linfnorm(sys, tol=1e-10): # 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 + # max SVD is constant with freq; arbitrarily choose 0 as peak fpeak = 0 return gpeak, fpeak @@ -1907,51 +2042,47 @@ def rss(states=1, outputs=1, inputs=1, strictly_proper=False, **kwargs): 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`. + states, outputs, inputs : int, list of str, or None + Description of the system states, outputs, and 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 'x', + 'y', or 'u'). strictly_proper : bool, optional - If set to 'True', returns a proper system (no direct term). + 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). + 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. + name 'sys[id]' is generated with a unique integer id. Returns ------- - sys : StateSpace + sys : `StateSpace` The randomly created linear system. Raises ------ ValueError - if any input is not a positive integer. + 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. + 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 positive 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_iosys_keywords(kwargs) - # Figure out the size of the sytem + # Figure out the size of the system nstates, _ = _process_signal_list(states) ninputs, _ = _process_signal_list(inputs) noutputs, _ = _process_signal_list(outputs) @@ -1971,9 +2102,9 @@ def drss(*args, **kwargs): 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. + Create a stable *discrete-time* random state space object. This + function calls `rss` using either the `dt` keyword provided by + the user or `dt` = True if not specified. Examples -------- @@ -1994,7 +2125,7 @@ def drss(*args, **kwargs): 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 + kwargs['dt'] = True # force rss to generate discrete-time sys else: dt = True kwargs['dt'] = True @@ -2013,37 +2144,37 @@ 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. + 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 `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]`. + 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`. + '[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. + name 'sys[id]' 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]`. + form 'prefix[i]'. Returns ------- - sys : static StateSpace + sys : `StateSpace` Linear input/output system object with no states and only a direct term that implements the summing junction. @@ -2138,33 +2269,46 @@ def _parse_list(signals, signame='input', prefix='u'): # Utility functions # -def _ssmatrix(data, axis=1): +def _ssmatrix(data, axis=1, square=None, rows=None, cols=None, name=None): """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. + This function can be used to process the matrices that define a + state-space system. 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 + 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. + If input data is 1D, which axis to use for return object. The + default is 1, corresponding to a row matrix. + square : bool, optional + If set to True, check that the input matrix is square. + rows : int, optional + If set, check that the input matrix has the given number of rows. + cols : int, optional + If set, check that the input matrix has the given number of columns. + name : str, optional + Name of the state-space matrix being checked (for error messages). Returns ------- arr : 2D array, with shape (0, 0) if a is empty """ - # Convert the data into an array + # Process the name of the object, if available + name = "" if name is None else " " + name + + # Convert the data into an array (always making a copy) 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") + raise ValueError(f"state-space matrix{name} must be 2-dimensional") elif (ndim == 2 and shape == (1, 0)) or \ (ndim == 1 and shape == (0, )): @@ -2179,6 +2323,21 @@ def _ssmatrix(data, axis=1): # Passed a constant; turn into a matrix shape = (1, 1) + # Check to make sure any conditions are satisfied + if square and shape[0] != shape[1]: + raise ControlDimension( + f"state-space matrix{name} must be a square matrix") + + if rows is not None and shape[0] != rows: + raise ControlDimension( + f"state-space matrix{name} has the wrong number of rows; " + f"expected {rows} instead of {shape[0]}") + + if cols is not None and shape[1] != cols: + raise ControlDimension( + f"state-space matrix{name} has the wrong number of columns; " + f"expected {cols} instead of {shape[1]}") + # Create the actual object used to store the result return arr.reshape(shape) @@ -2192,7 +2351,7 @@ def _f2s(f): """ fmt = "{:" + config.defaults['statesp.latex_num_format'] + "}" sraw = fmt.format(f) - # significand-exponent + # significant-exponent se = sraw.lower().split('e') # whole-fraction wf = se[0].split('.') @@ -2213,17 +2372,18 @@ def _f2s(f): 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 - transfer function object, then it is converted to a state space and - returned. + If `sys` is already a state space object, 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 + from .xferfcn import TransferFunction + if isinstance(sys, StateSpace): return sys @@ -2256,7 +2416,7 @@ def _convert_to_statespace(sys, use_prefix_suffix=False, method=None): ssout[3][:sys.noutputs, :states], ssout[4], sys.dt) elif method in [None, 'scipy']: - # Scipy tf->ss can't handle MIMO, but SISO is OK + # 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) @@ -2265,7 +2425,7 @@ def _convert_to_statespace(sys, use_prefix_suffix=False, method=None): 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] + D[i, j] = sys.num_array[i, j][0] / sys.den_array[i, j][0] newsys = StateSpace([], [], [], D, sys.dt) else: if not issiso(sys): @@ -2289,7 +2449,7 @@ def _convert_to_statespace(sys, use_prefix_suffix=False, method=None): # If this is a matrix, try to create a constant feedthrough try: - D = _ssmatrix(np.atleast_2d(sys)) + D = _ssmatrix(np.atleast_2d(sys), name="D") return StateSpace([], [], [], D, dt=None) except Exception: diff --git a/control/stochsys.py b/control/stochsys.py index fe11a4fb5..756d83e13 100644 --- a/control/stochsys.py +++ b/control/stochsys.py @@ -1,14 +1,11 @@ # stochsys.py - stochastic systems module # RMM, 16 Mar 2022 -# -# This module contains functions that are intended to be used for analysis -# and design of stochastic control systems, mainly involving Kalman -# filtering and its variants. -# -"""The :mod:`~control.stochsys` module contains functions for analyzing and -designing stochastic (control) systems, including white noise processes and -Kalman filtering. +"""Stochastic systems module. + +This module contains functions for analyzing and designing stochastic +(control) systems, including white noise processes and Kalman +filtering. """ @@ -16,19 +13,20 @@ __maintainer__ = "Richard Murray" __email__ = "murray@cds.caltech.edu" +import warnings +from math import sqrt + import numpy as np import scipy as sp -from math import sqrt -from .statesp import StateSpace +from .config import _process_legacy_keyword +from .exception import ControlArgument, ControlNotImplemented +from .iosys import _process_control_disturbance_indices, _process_labels, \ + isctime, isdtime from .lti import LTI -from .iosys import InputOutputSystem, isctime, isdtime, _process_indices, \ - _process_labels, _process_control_disturbance_indices +from .mateqn import _check_shape, care, dare from .nlsys import NonlinearIOSystem -from .mateqn import care, dare, _check_shape -from .statesp import StateSpace, _ssmatrix -from .exception import ControlArgument, ControlNotImplemented -from .config import _process_legacy_keyword +from .statesp import StateSpace __all__ = ['lqe', 'dlqe', 'create_estimator_iosystem', 'white_noise', 'correlation'] @@ -38,8 +36,9 @@ def lqe(*args, **kwargs): r"""lqe(A, G, C, QN, RN, [, NN]) - Linear quadratic estimator design (Kalman filter) for continuous-time - systems. Given the system + Continuous-time linear quadratic estimator (Kalman filter). + + Given the continuous-time system .. math:: @@ -72,12 +71,12 @@ def lqe(*args, **kwargs): Parameters ---------- A, G, C : 2D array_like - Dynamics, process noise (disturbance), and output matrices - sys : LTI (StateSpace or TransferFunction) + Dynamics, process noise (disturbance), and output matrices. + sys : `StateSpace` or `TransferFunction` Linear I/O system, with the process noise input taken as the system input. QN, RN : 2D array_like - Process and sensor noise covariance matrices + Process and sensor noise covariance matrices. NN : 2D array, optional Cross covariance matrix. Not currently implemented. method : str, optional @@ -88,22 +87,22 @@ def lqe(*args, **kwargs): Returns ------- L : 2D array - Kalman estimator gain + Kalman estimator gain. P : 2D array - Solution to Riccati equation + Solution to Riccati equation: .. math:: A P + P A^T - (P C^T + G N) R^{-1} (C P + N^T G^T) + G Q G^T = 0 E : 1D array - Eigenvalues of estimator poles eig(A - L C) + Eigenvalues of estimator poles eig(A - L C). Notes ----- 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()`` + LTI object corresponds to a discrete-time system, the `dlqe` function will be called. Examples @@ -127,7 +126,7 @@ def lqe(*args, **kwargs): # Process the arguments and figure out what inputs we received # - # If we were passed a discrete time system as the first arg, use dlqe() + # If we were passed a discrete-time system as the first arg, use dlqe() if isinstance(args[0], LTI) and isdtime(args[0], strict=True): # Call dlqe return dlqe(*args, **kwargs) @@ -165,28 +164,31 @@ def lqe(*args, **kwargs): # Get the cross-covariance matrix, if given if (len(args) > index + 2): - NN = np.array(args[index+2], ndmin=2, dtype=float) + # NN = np.array(args[index+2], ndmin=2, dtype=float) raise ControlNotImplemented("cross-covariance not implemented") else: + pass # For future use (not currently used below) - NN = np.zeros((QN.shape[0], RN.shape[1])) + # NN = np.zeros((QN.shape[0], RN.shape[1])) + # Check dimensions of G (needed before calling care()) - _check_shape("QN", QN, G.shape[1], G.shape[1]) + _check_shape(QN, G.shape[1], G.shape[1], name="QN") # Compute the result (dimension and symmetry checking done in care()) P, E, LT = care(A.T, C.T, G @ QN @ G.T, RN, method=method, - B_s="C", Q_s="QN", R_s="RN", S_s="NN") - return _ssmatrix(LT.T), _ssmatrix(P), E + _Bs="C", _Qs="QN", _Rs="RN", _Ss="NN") + return LT.T, P, E # contributed by Sawyer B. Fuller def dlqe(*args, **kwargs): r"""dlqe(A, G, C, QN, RN, [, N]) - Linear quadratic estimator design (Kalman filter) for discrete-time - systems. Given the system + Discrete-time linear quadratic estimator (Kalman filter). + + Given the system .. math:: @@ -202,36 +204,36 @@ def dlqe(*args, **kwargs): .. math:: x_e[n+1] = A x_e[n] + B u[n] + L(y[n] - C x_e[n] - D u[n]) - produces a state estimate x_e[n] that minimizes the expected squared error - using the sensor measurements y. The noise cross-correlation `NN` is - set to zero when omitted. + produces a state estimate x_e[n] that minimizes the expected squared + error using the sensor measurements y. The noise cross-correlation `NN` + is set to zero when omitted. Parameters ---------- - A, G : 2D array_like - Dynamics and noise input matrices + A, G, C : 2D array_like + Dynamics, process noise (disturbance), and output matrices. QN, RN : 2D array_like - Process and sensor noise covariance matrices + Process and sensor noise covariance matrices. NN : 2D array, optional - Cross covariance matrix (not yet supported) + Cross covariance matrix (not yet supported). 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'. + 'slycot' and 'scipy'. If set to None (default), try 'slycot' + first and then 'scipy'. Returns ------- L : 2D array - Kalman estimator gain + Kalman estimator gain. P : 2D array - Solution to Riccati equation + Solution to Riccati equation. .. math:: A P + P A^T - (P C^T + G N) R^{-1} (C P + N^T G^T) + G Q G^T = 0 E : 1D array - Eigenvalues of estimator poles eig(A - L C) + Eigenvalues of estimator poles eig(A - L C). Examples -------- @@ -257,9 +259,9 @@ def dlqe(*args, **kwargs): if (len(args) < 3): raise ControlArgument("not enough input arguments") - # If we were passed a continus time system as the first arg, raise error + # If we were passed a continuous time system as the first arg, raise error if isinstance(args[0], LTI) and isctime(args[0], strict=True): - raise ControlArgument("dlqr() called with a continuous time system") + raise ControlArgument("dlqr() called with a continuous-time system") # If we were passed a state space system, use that to get system matrices if isinstance(args[0], StateSpace): @@ -289,16 +291,16 @@ def dlqe(*args, **kwargs): # NN = np.zeros(QN.size(0),RN.size(1)) # NG = G @ NN if len(args) > index + 2: - NN = np.array(args[index+2], ndmin=2, dtype=float) - raise ControlNotImplemented("cross-covariance not yet implememented") + # NN = np.array(args[index+2], ndmin=2, dtype=float) + raise ControlNotImplemented("cross-covariance not yet implemented") # Check dimensions of G (needed before calling care()) - _check_shape("QN", QN, G.shape[1], G.shape[1]) + _check_shape(QN, G.shape[1], G.shape[1], name="QN") # Compute the result (dimension and symmetry checking done in dare()) P, E, LT = dare(A.T, C.T, G @ QN @ G.T, RN, method=method, - B_s="C", Q_s="QN", R_s="RN", S_s="NN") - return _ssmatrix(LT.T), _ssmatrix(P), E + _Bs="C", _Qs="QN", _Rs="RN", _Ss="NN") + return LT.T, P, E # Function to create an estimator @@ -314,20 +316,20 @@ def create_estimator_iosystem( 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 + 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 \\ + dP/dt &= A P + P A^T + G Q_N G^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 + 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 \\ + P[k+1] &= A P A^T + G Q_N G^T - A P C^T R_e^{-1} C P A \\ L &= A P C^T R_e^{-1} where :math:`R_e = R_N + C P C^T`. It can be called in the form:: @@ -342,7 +344,7 @@ def create_estimator_iosystem( Parameters ---------- - sys : StateSpace + sys : `StateSpace` The linear I/O system that represents the process dynamics. QN, RN : ndarray Disturbance and measurement noise covariance matrices. @@ -351,7 +353,7 @@ def create_estimator_iosystem( state covariance. G : ndarray, optional Disturbance matrix describing how the disturbances enters the - dynamics. Defaults to sys.B. + dynamics. Defaults to `sys.B`. C : ndarray, optional If the system has full state output, define the measured values to be used by the estimator. Otherwise, use the system output as the @@ -359,7 +361,7 @@ def create_estimator_iosystem( Returns ------- - estim : InputOutputSystem + estim : `InputOutputSystem` Input/output system representing the estimator. This system takes the system output y and input u and generates the estimated state xhat. @@ -397,21 +399,21 @@ def create_estimator_iosystem( 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 + 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 measurements and - known control inputs. These settings can also be overriden using the + known control inputs. These settings can also be overridden 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`. Overrides signal labels. + `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. + name 'sys[id]' is generated with a unique integer id. Notes ----- - This function can be used with the ``create_statefbk_iosystem()`` function + This function can be used with the `create_statefbk_iosystem` function to create a closed loop, output-feedback, state space controller:: K, _, _ = ct.lqr(sys, Q, R) @@ -422,11 +424,16 @@ 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 + If desired, the `correct` parameter can be set to False to allow prediction with no additional measurement information:: resp = ct.input_output_response( - est, T, 0, [X0, P0], param={'correct': False) + est, T, 0, [X0, P0], params={'correct': False) + + References + ---------- + .. [1] R. M. Murray, `Optimization-Based Control + `_, 2023. """ @@ -460,12 +467,13 @@ def create_estimator_iosystem( # 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") + raise NotImplementedError("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)): + # Make sure we have full system output (allowing for numerical errors) + if sys.C.shape[0] != sys.nstates or \ + not np.allclose(sys.C, np.eye(sys.nstates)): raise ValueError("System output must be full state") # Make sure that the output matches the size of RN @@ -478,11 +486,13 @@ def create_estimator_iosystem( # Generate the disturbance matrix (G) if G is None: G = sys.B if len(dist_idx) == 0 else sys.B[:, dist_idx] + G = _check_shape(G, sys.nstates, len(dist_idx), name='G') # Initialize the covariance matrix if P0 is None: - # Initalize P0 to the steady state value + # Initialize P0 to the steady state value _, P0, _ = lqe(A, G, C, QN, RN) + P0 = _check_shape(P0, sys.nstates, sys.nstates, symmetric=True, name='P0') # Figure out the labels to use estimate_labels = _process_labels( @@ -497,7 +507,7 @@ def create_estimator_iosystem( else: # Generate labels corresponding to measured values from C measurement_labels = _process_labels( - measurement_labels, 'measurement', + measurement_labels, 'measurement', [f'y[{i}]' for i in range(C.shape[0])]) control_labels = _process_labels( control_labels, 'control', @@ -505,6 +515,10 @@ def create_estimator_iosystem( inputs = measurement_labels + control_labels if inputs is None \ else inputs + # Process the disturbance covariances and check size + QN = _check_shape(QN, G.shape[1], G.shape[1], square=True, name='QN') + RN = _check_shape(RN, C.shape[0], C.shape[0], square=True, name='RN') + if isinstance(covariance_labels, str): # Generate the list of labels using the argument as a format string covariance_labels = [ @@ -590,8 +604,8 @@ def white_noise(T, Q, dt=0): """Generate a white noise signal with specified intensity. This function generates a (multi-variable) white noise signal of - specified intensity as either a sampled continous time signal or a - discrete time signal. A white noise signal along a 1D array + specified intensity as either a sampled continuous time signal or a + discrete-time signal. A white noise signal along a 1D array of linearly spaced set of times T can be computing using V = ct.white_noise(T, Q, dt) @@ -604,6 +618,21 @@ def white_noise(T, Q, dt=0): covariance Q at each point in time (without any scaling based on the sample time). + Parameters + ---------- + T : 1D array_like + Array of linearly spaced times. + Q : 2D array_like + Noise intensity matrix of dimension nxn. + dt : float, optional + If 0, generate continuous-time noise signal, otherwise discrete time. + + Returns + ------- + V : array + Noise signal indexed as ``V[i, j]`` where `i` is the signal index and + `j` is the time index. + """ # Convert input arguments to arrays T = np.atleast_1d(T) @@ -637,15 +666,16 @@ def white_noise(T, Q, dt=0): def correlation(T, X, Y=None, squeeze=True): """Compute the correlation of time signals. - For a time series X(t) (and optionally Y(t)), the correlation() function - computes the correlation matrix E(X'(t+tau) X(t)) or the cross-correlation - matrix E(X'(t+tau) Y(t)]: + For a time series X(t) (and optionally Y(t)), the correlation() + function computes the correlation matrix E(X'(t+tau) X(t)) or the + cross-correlation matrix E(X'(t+tau) Y(t)]: tau, Rtau = correlation(T, X[, Y]) - The signal X (and Y, if present) represent a continuous time signal - sampled at times T. The return value provides the correlation Rtau - between X(t+tau) and X(t) at a set of time offets tau. + The signal X (and Y, if present) represent a continuous or + discrete-time signal sampled at times T. The return value provides the + correlation Rtau between X(t+tau) and X(t) at a set of time offsets + tau. Parameters ---------- @@ -663,6 +693,10 @@ def correlation(T, X, Y=None, squeeze=True): Returns ------- + tau : array + Array of time offsets. + Rtau : array + Correlation for each offset tau. """ T = np.atleast_1d(T) diff --git a/control/sysnorm.py b/control/sysnorm.py index f5e583dcf..fecdd7095 100644 --- a/control/sysnorm.py +++ b/control/sysnorm.py @@ -1,77 +1,76 @@ -# -*- coding: utf-8 -*- -"""sysnorm.py +# sysnorm.py - functions for computing system norms +# +# Initial author: Henrik Sandberg +# Creation date: 21 Dec 2023 -Functions for computing system norms. +"""Functions for computing system norms.""" -Routine in this module: - -norm - -Created on Thu Dec 21 08:06:12 2023 -Author: Henrik Sandberg -""" +import warnings import numpy as np -import scipy as sp import numpy.linalg as la -import warnings import control as ct -__all__ = ['norm'] +__all__ = ['system_norm', 'norm'] #------------------------------------------------------------------------------ def _h2norm_slycot(sys, print_warning=True): """H2 norm of a linear system. For internal use. Requires Slycot. - See also + See Also -------- - ``slycot.ab13bd`` : the Slycot routine that does the calculation - https://github.com/python-control/Slycot/issues/199 : Post on issue with ``ab13bf`` + slycot.ab13bd + """ - + # See: https://github.com/python-control/Slycot/issues/199 try: from slycot import ab13bd except ImportError: - ct.ControlSlycot("Can't find slycot module ``ab13bd``!") + ct.ControlSlycot("Can't find slycot module ab13bd") try: from slycot.exceptions import SlycotArithmeticError - except ImportError: - raise ct.ControlSlycot("Can't find slycot class ``SlycotArithmeticError``!") + except ImportError: + raise ct.ControlSlycot( + "Can't find slycot class SlycotArithmeticError") A, B, C, D = ct.ssdata(ct.ss(sys)) n = A.shape[0] m = B.shape[1] p = C.shape[0] - + dico = 'C' if sys.isctime() else 'D' # Continuous or discrete time - jobn = 'H' # H2 (and not L2 norm) + jobn = 'H' # H2 (and not L2 norm) if n == 0: # ab13bd does not accept empty A, B, C if dico == 'C': if any(D.flat != 0): if print_warning: - warnings.warn("System has a direct feedthrough term!", UserWarning) + warnings.warn( + "System has a direct feedthrough term!", UserWarning) return float("inf") else: return 0.0 elif dico == 'D': return np.sqrt(D@D.T) - + try: norm = ab13bd(dico, jobn, n, m, p, A, B, C, D) except SlycotArithmeticError as e: if e.info == 3: if print_warning: - warnings.warn("System has pole(s) on the stability boundary!", UserWarning) + warnings.warn( + "System has pole(s) on the stability boundary!", + UserWarning) return float("inf") elif e.info == 5: if print_warning: - warnings.warn("System has a direct feedthrough term!", UserWarning) + warnings.warn( + "System has a direct feedthrough term!", UserWarning) return float("inf") elif e.info == 6: if print_warning: @@ -83,69 +82,75 @@ def _h2norm_slycot(sys, print_warning=True): #------------------------------------------------------------------------------ -def norm(system, p=2, tol=1e-6, print_warning=True, method=None): - """Computes norm of system. - +def system_norm(system, p=2, tol=1e-6, print_warning=True, method=None): + """Computes the input/output norm of system. + Parameters ---------- - system : LTI (:class:`StateSpace` or :class:`TransferFunction`) - System in continuous or discrete time for which the norm should be computed. + system : LTI (`StateSpace` or `TransferFunction`) + System in continuous or discrete time for which the norm should + be computed. p : int or str - Type of norm to be computed. ``p=2`` gives the H2 norm, and ``p='inf'`` gives the L-infinity norm. + Type of norm to be computed. `p` = 2 gives the H2 norm, and + `p` = 'inf' gives the L-infinity norm. tol : float - Relative tolerance for accuracy of L-infinity norm computation. Ignored - unless ``p='inf'``. + Relative tolerance for accuracy of L-infinity norm + computation. Ignored unless `p` = 'inf'. print_warning : bool Print warning message in case norm value may be uncertain. 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'``. - + 'slycot' and 'scipy'. If set to None (default), try 'slycot' first + and then 'scipy'. + Returns ------- norm_value : float Norm value of system. - + Notes ----- - Does not yet compute the L-infinity norm for discrete time systems with pole(s) in z=0 unless Slycot is used. - + Does not yet compute the L-infinity norm for discrete-time systems + with pole(s) at the origin unless Slycot is used. + Examples -------- >>> Gc = ct.tf([1], [1, 2, 1]) >>> round(ct.norm(Gc, 2), 3) 0.5 >>> round(ct.norm(Gc, 'inf', tol=1e-5, method='scipy'), 3) - 1.0 + np.float64(1.0) + """ - if not isinstance(system, (ct.StateSpace, ct.TransferFunction)): - raise TypeError('Parameter ``system``: must be a ``StateSpace`` or ``TransferFunction``') - + raise TypeError( + "Parameter `system`: must be a `StateSpace` or `TransferFunction`") + G = ct.ss(system) A = G.A B = G.B C = G.C D = G.D - + # Decide what method to use method = ct.mateqn._slycot_or_scipy(method) - + # ------------------- # H2 norm computation # ------------------- - if p == 2: + if p == 2: # -------------------- # Continuous time case # -------------------- if G.isctime(): - + # Check for cases with infinite norm - poles_real_part = G.poles().real + poles_real_part = G.poles().real if any(np.isclose(poles_real_part, 0.0)): # Poles on imaginary axis if print_warning: - warnings.warn("Poles close to, or on, the imaginary axis. Norm value may be uncertain.", UserWarning) + warnings.warn( + "Poles close to, or on, the imaginary axis. " + "Norm value may be uncertain.", UserWarning) return float('inf') elif any(poles_real_part > 0.0): # System unstable if print_warning: @@ -153,107 +158,130 @@ def norm(system, p=2, tol=1e-6, print_warning=True, method=None): return float('inf') elif any(D.flat != 0): # System has direct feedthrough if print_warning: - warnings.warn("System has a direct feedthrough term!", UserWarning) - return float('inf') - - else: + warnings.warn( + "System has a direct feedthrough term!", UserWarning) + return float('inf') + + else: # Use slycot, if available, to compute (finite) norm if method == 'slycot': - return _h2norm_slycot(G, print_warning) - - # Else use scipy + return _h2norm_slycot(G, print_warning) + + # Else use scipy else: - P = ct.lyap(A, B@B.T, method=method) # Solve for controllability Gramian - - # System is stable to reach this point, and P should be positive semi-definite. - # Test next is a precaution in case the Lyapunov equation is ill conditioned. - if any(la.eigvals(P).real < 0.0): + # Solve for controllability Gramian + P = ct.lyap(A, B@B.T, method=method) + + # System is stable to reach this point, and P should be + # positive semi-definite. Test next is a precaution in + # case the Lyapunov equation is ill conditioned. + if any(la.eigvals(P).real < 0.0): if print_warning: - warnings.warn("There appears to be poles close to the imaginary axis. Norm value may be uncertain.", UserWarning) + warnings.warn( + "There appears to be poles close to the " + "imaginary axis. Norm value may be uncertain.", + UserWarning) return float('inf') else: - norm_value = np.sqrt(np.trace(C@P@C.T)) # Argument in sqrt should be non-negative + # Argument in sqrt should be non-negative + norm_value = np.sqrt(np.trace(C@P@C.T)) if np.isnan(norm_value): - raise ct.ControlArgument("Norm computation resulted in NaN.") + raise ct.ControlArgument( + "Norm computation resulted in NaN.") else: return norm_value - + # ------------------ # Discrete time case # ------------------ elif G.isdtime(): - + # Check for cases with infinite norm poles_abs = abs(G.poles()) if any(np.isclose(poles_abs, 1.0)): # Poles on imaginary axis if print_warning: - warnings.warn("Poles close to, or on, the complex unit circle. Norm value may be uncertain.", UserWarning) + warnings.warn( + "Poles close to, or on, the complex unit circle. " + "Norm value may be uncertain.", UserWarning) return float('inf') elif any(poles_abs > 1.0): # System unstable if print_warning: warnings.warn("System is unstable!", UserWarning) return float('inf') - else: # Use slycot, if available, to compute (finite) norm if method == 'slycot': - return _h2norm_slycot(G, print_warning) - - # Else use scipy + return _h2norm_slycot(G, print_warning) + + # Else use scipy else: P = ct.dlyap(A, B@B.T, method=method) - - # System is stable to reach this point, and P should be positive semi-definite. - # Test next is a precaution in case the Lyapunov equation is ill conditioned. + + # System is stable to reach this point, and P should be + # positive semi-definite. Test next is a precaution in + # case the Lyapunov equation is ill conditioned. if any(la.eigvals(P).real < 0.0): if print_warning: - warnings.warn("Warning: There appears to be poles close to the complex unit circle. Norm value may be uncertain.", UserWarning) + warnings.warn( + "There appears to be poles close to the complex " + "unit circle. Norm value may be uncertain.", + UserWarning) return float('inf') else: - norm_value = np.sqrt(np.trace(C@P@C.T + D@D.T)) # Argument in sqrt should be non-negative + # Argument in sqrt should be non-negative + norm_value = np.sqrt(np.trace(C@P@C.T + D@D.T)) if np.isnan(norm_value): - raise ct.ControlArgument("Norm computation resulted in NaN.") + raise ct.ControlArgument( + "Norm computation resulted in NaN.") else: - return norm_value - + return norm_value + # --------------------------- # L-infinity norm computation # --------------------------- - elif p == "inf": - + elif p == "inf": + # Check for cases with infinite norm poles = G.poles() if G.isdtime(): # Discrete time if any(np.isclose(abs(poles), 1.0)): # Poles on unit circle if print_warning: - warnings.warn("Poles close to, or on, the complex unit circle. Norm value may be uncertain.", UserWarning) + warnings.warn( + "Poles close to, or on, the complex unit circle. " + "Norm value may be uncertain.", UserWarning) return float('inf') else: # Continuous time if any(np.isclose(poles.real, 0.0)): # Poles on imaginary axis if print_warning: - warnings.warn("Poles close to, or on, the imaginary axis. Norm value may be uncertain.", UserWarning) + warnings.warn( + "Poles close to, or on, the imaginary axis. " + "Norm value may be uncertain.", UserWarning) return float('inf') - + # Use slycot, if available, to compute (finite) norm if method == 'slycot': return ct.linfnorm(G, tol)[0] - + # Else use scipy else: - - # ------------------ + + # ------------------ # Discrete time case # ------------------ - # Use inverse bilinear transformation of discrete time system to s-plane if no poles on |z|=1 or z=0. - # Allows us to use test for continuous time systems next. + # Use inverse bilinear transformation of discrete-time system + # to s-plane if no poles on |z|=1 or z=0. Allows us to use + # test for continuous-time systems next. if G.isdtime(): Ad = A Bd = B Cd = C Dd = D if any(np.isclose(la.eigvals(Ad), 0.0)): - raise ct.ControlArgument("L-infinity norm computation for discrete time system with pole(s) in z=0 currently not supported unless Slycot installed.") - + raise ct.ControlArgument( + "L-infinity norm computation for discrete-time " + "system with pole(s) in z=0 currently not supported " + "unless Slycot installed.") + # Inverse bilinear transformation In = np.eye(len(Ad)) Adinv = la.inv(Ad+In) @@ -261,7 +289,7 @@ def norm(system, p=2, tol=1e-6, print_warning=True, method=None): B = 2*Adinv@Bd C = 2*Cd@Adinv D = Dd - Cd@Adinv@Bd - + # -------------------- # Continuous time case # -------------------- @@ -269,15 +297,19 @@ def _Hamilton_matrix(gamma): """Constructs Hamiltonian matrix. For internal use.""" R = Ip*gamma**2 - D.T@D invR = la.inv(R) - return np.block([[A+B@invR@D.T@C, B@invR@B.T], [-C.T@(Ip+D@invR@D.T)@C, -(A+B@invR@D.T@C).T]]) + return np.block([ + [A+B@invR@D.T@C, B@invR@B.T], + [-C.T@(Ip+D@invR@D.T)@C, -(A+B@invR@D.T@C).T]]) gaml = la.norm(D,ord=2) # Lower bound gamu = max(1.0, 2.0*gaml) # Candidate upper bound - Ip = np.eye(len(D)) - - while any(np.isclose(la.eigvals(_Hamilton_matrix(gamu)).real, 0.0)): # Find actual upper bound + Ip = np.eye(len(D)) + + while any(np.isclose( + la.eigvals(_Hamilton_matrix(gamu)).real, 0.0)): + # Find actual upper bound gamu *= 2.0 - + while (gamu-gaml)/gamu > tol: gam = (gamu+gaml)/2.0 if any(np.isclose(la.eigvals(_Hamilton_matrix(gam)).real, 0.0)): @@ -285,10 +317,13 @@ def _Hamilton_matrix(gamma): else: gamu = gam return gam - + # ---------------------- # Other norm computation # ---------------------- else: - raise ct.ControlArgument(f"Norm computation for p={p} currently not supported.") + raise ct.ControlArgument( + f"Norm computation for p={p} currently not supported.") + +norm = system_norm diff --git a/control/tests/bdalg_test.py b/control/tests/bdalg_test.py index 2ed793ef2..cec10f904 100644 --- a/control/tests/bdalg_test.py +++ b/control/tests/bdalg_test.py @@ -1,23 +1,21 @@ -"""bdalg_test.py - test suite for block diagram algebra +"""bdalg_test.py - test suite for block diagram algebra. RMM, 30 Mar 2011 (based on TestBDAlg from v0.4a) """ +import control as ctrl import numpy as np -from numpy import sort import pytest - -import control as ctrl -from control.xferfcn import TransferFunction +from control.bdalg import _ensure_tf, append, connect, feedback +from control.lti import poles, zeros from control.statesp import StateSpace -from control.bdalg import feedback, append, connect -from control.lti import zeros, poles +from control.tests.conftest import assert_tf_close_coeff +from control.xferfcn import TransferFunction +from numpy import sort class TestFeedback: - """These are tests for the feedback function in bdalg.py. Currently, some - of the tests are not implemented, or are not working properly. TODO: these - need to be fixed.""" + """Tests for the feedback function in bdalg.py.""" @pytest.fixture def tsys(self): @@ -179,7 +177,7 @@ def testTFTF(self, tsys): [[[1., 4., 9., 8., 5.]]]) def testLists(self, tsys): - """Make sure that lists of various lengths work for operations""" + """Make sure that lists of various lengths work for operations.""" sys1 = ctrl.tf([1, 1], [1, 2]) sys2 = ctrl.tf([1, 3], [1, 4]) sys3 = ctrl.tf([1, 5], [1, 6]) @@ -236,7 +234,7 @@ def testLists(self, tsys): sort(zeros(sys1 + sys2 + sys3 + sys4 + sys5))) def testMimoSeries(self, tsys): - """regression: bdalg.series reverses order of arguments""" + """regression: bdalg.series reverses order of arguments.""" g1 = ctrl.ss([], [], [], [[1, 2], [0, 3]]) g2 = ctrl.ss([], [], [], [[1, 0], [2, 3]]) ref = g2 * g1 @@ -269,7 +267,7 @@ def test_feedback_args(self, tsys): def testConnect(self, tsys): sys = append(tsys.sys2, tsys.sys3) # two siso systems - with pytest.warns(DeprecationWarning, match="use `interconnect`"): + with pytest.warns(FutureWarning, 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]) @@ -316,3 +314,556 @@ def testConnect(self, tsys): connect(sys, Q, [2], [1, 0]) with pytest.raises(IndexError): connect(sys, Q, [2], [1, -1]) + + +@pytest.mark.parametrize( + "op, nsys, ninputs, noutputs, nstates", [ + (ctrl.series, 2, 1, 1, 4), + (ctrl.parallel, 2, 1, 1, 4), + (ctrl.feedback, 2, 1, 1, 4), + (ctrl.append, 2, 2, 2, 4), + (ctrl.negate, 1, 1, 1, 2), + ]) +def test_bdalg_update_names(op, nsys, ninputs, noutputs, nstates): + syslist = [ctrl.rss(2, 1, 1), ctrl.rss(2, 1, 1)] + inputs = ['in1', 'in2'] + outputs = ['out1', 'out2'] + states = ['x1', 'x2', 'x3', 'x4'] + + newsys = op( + *syslist[:nsys], name='newsys', inputs=inputs[:ninputs], + outputs=outputs[:noutputs], states=states[:nstates]) + assert newsys.name == 'newsys' + assert newsys.ninputs == ninputs + assert newsys.input_labels == inputs[:ninputs] + assert newsys.noutputs == noutputs + assert newsys.output_labels == outputs[:noutputs] + assert newsys.nstates == nstates + assert newsys.state_labels == states[:nstates] + + +def test_bdalg_udpate_names_errors(): + sys1 = ctrl.rss(2, 1, 1) + sys2 = ctrl.rss(2, 1, 1) + + with pytest.raises(ValueError, match="number of inputs does not match"): + ctrl.series(sys1, sys2, inputs=2) + + with pytest.raises(ValueError, match="number of outputs does not match"): + ctrl.series(sys1, sys2, outputs=2) + + with pytest.raises(ValueError, match="number of states does not match"): + ctrl.series(sys1, sys2, states=2) + + with pytest.raises(ValueError, match="number of states does not match"): + ctrl.series(ctrl.tf(sys1), ctrl.tf(sys2), states=2) + + with pytest.raises(TypeError, match="unrecognized keywords"): + ctrl.series(sys1, sys2, dt=1) + + +class TestEnsureTf: + """Test `_ensure_tf`.""" + + @pytest.mark.parametrize( + "arraylike_or_tf, dt, tf", + [ + ( + ctrl.TransferFunction([1], [1, 2, 3]), + None, + ctrl.TransferFunction([1], [1, 2, 3]), + ), + ( + ctrl.TransferFunction([1], [1, 2, 3]), + 0, + ctrl.TransferFunction([1], [1, 2, 3]), + ), + ( + 2, + None, + ctrl.TransferFunction([2], [1]), + ), + ( + np.array([2]), + None, + ctrl.TransferFunction([2], [1]), + ), + ( + np.array([[2]]), + None, + ctrl.TransferFunction([2], [1]), + ), + ( + np.array( + [ + [2, 0, 3], + [1, 2, 3], + ] + ), + None, + ctrl.TransferFunction( + [ + [[2], [0], [3]], + [[1], [2], [3]], + ], + [ + [[1], [1], [1]], + [[1], [1], [1]], + ], + ), + ), + ( + np.array([2, 0, 3]), + None, + ctrl.TransferFunction( + [ + [[2], [0], [3]], + ], + [ + [[1], [1], [1]], + ], + ), + ), + ], + ) + def test_ensure(self, arraylike_or_tf, dt, tf): + """Test nominal cases.""" + ensured_tf = _ensure_tf(arraylike_or_tf, dt) + assert_tf_close_coeff(tf, ensured_tf) + + @pytest.mark.parametrize( + "arraylike_or_tf, dt, exception", + [ + ( + ctrl.TransferFunction([1], [1, 2, 3]), + 0.1, + ValueError, + ), + ( + ctrl.TransferFunction([1], [1, 2, 3], 0.1), + 0, + ValueError, + ), + ( + np.ones((1, 1, 1)), + None, + ValueError, + ), + ( + np.ones((1, 1, 1, 1)), + None, + ValueError, + ), + ], + ) + def test_error_ensure(self, arraylike_or_tf, dt, exception): + """Test error cases.""" + with pytest.raises(exception): + _ensure_tf(arraylike_or_tf, dt) + + +class TestTfCombineSplit: + """Test `combine_tf` and `split_tf`.""" + + @pytest.mark.parametrize( + "tf_array, tf", + [ + # Continuous-time + ( + [ + [ctrl.TransferFunction([1], [1, 1])], + [ctrl.TransferFunction([2], [1, 0])], + ], + ctrl.TransferFunction( + [ + [[1]], + [[2]], + ], + [ + [[1, 1]], + [[1, 0]], + ], + ), + ), + # Discrete-time + ( + [ + [ctrl.TransferFunction([1], [1, 1], dt=1)], + [ctrl.TransferFunction([2], [1, 0], dt=1)], + ], + ctrl.TransferFunction( + [ + [[1]], + [[2]], + ], + [ + [[1, 1]], + [[1, 0]], + ], + dt=1, + ), + ), + # Scalar + ( + [ + [2], + [ctrl.TransferFunction([2], [1, 0])], + ], + ctrl.TransferFunction( + [ + [[2]], + [[2]], + ], + [ + [[1]], + [[1, 0]], + ], + ), + ), + # Matrix + ( + [ + [np.eye(3)], + [ + ctrl.TransferFunction( + [ + [[2], [0], [3]], + [[1], [2], [3]], + ], + [ + [[1], [1], [1]], + [[1], [1], [1]], + ], + ) + ], + ], + ctrl.TransferFunction( + [ + [[1], [0], [0]], + [[0], [1], [0]], + [[0], [0], [1]], + [[2], [0], [3]], + [[1], [2], [3]], + ], + [ + [[1], [1], [1]], + [[1], [1], [1]], + [[1], [1], [1]], + [[1], [1], [1]], + [[1], [1], [1]], + ], + ), + ), + # Inhomogeneous + ( + [ + [np.eye(3)], + [ + ctrl.TransferFunction( + [ + [[2], [0]], + [[1], [2]], + ], + [ + [[1], [1]], + [[1], [1]], + ], + ), + ctrl.TransferFunction( + [ + [[3]], + [[3]], + ], + [ + [[1]], + [[1]], + ], + ), + ], + ], + ctrl.TransferFunction( + [ + [[1], [0], [0]], + [[0], [1], [0]], + [[0], [0], [1]], + [[2], [0], [3]], + [[1], [2], [3]], + ], + [ + [[1], [1], [1]], + [[1], [1], [1]], + [[1], [1], [1]], + [[1], [1], [1]], + [[1], [1], [1]], + ], + ), + ), + # Discrete-time + ( + [ + [2], + [ctrl.TransferFunction([2], [1, 0], dt=0.1)], + ], + ctrl.TransferFunction( + [ + [[2]], + [[2]], + ], + [ + [[1]], + [[1, 0]], + ], + dt=0.1, + ), + ), + ], + ) + def test_combine_tf(self, tf_array, tf): + """Test combining transfer functions.""" + tf_combined = ctrl.combine_tf(tf_array) + assert_tf_close_coeff(tf_combined, tf) + + @pytest.mark.parametrize( + "tf_array, tf", + [ + ( + np.array( + [ + [ctrl.TransferFunction([1], [1, 1])], + ], + dtype=object, + ), + ctrl.TransferFunction( + [ + [[1]], + ], + [ + [[1, 1]], + ], + ), + ), + ( + np.array( + [ + [ctrl.TransferFunction([1], [1, 1])], + [ctrl.TransferFunction([2], [1, 0])], + ], + dtype=object, + ), + ctrl.TransferFunction( + [ + [[1]], + [[2]], + ], + [ + [[1, 1]], + [[1, 0]], + ], + ), + ), + ( + np.array( + [ + [ctrl.TransferFunction([1], [1, 1], dt=1)], + [ctrl.TransferFunction([2], [1, 0], dt=1)], + ], + dtype=object, + ), + ctrl.TransferFunction( + [ + [[1]], + [[2]], + ], + [ + [[1, 1]], + [[1, 0]], + ], + dt=1, + ), + ), + ( + np.array( + [ + [ctrl.TransferFunction([2], [1], dt=0.1)], + [ctrl.TransferFunction([2], [1, 0], dt=0.1)], + ], + dtype=object, + ), + ctrl.TransferFunction( + [ + [[2]], + [[2]], + ], + [ + [[1]], + [[1, 0]], + ], + dt=0.1, + ), + ), + ], + ) + def test_split_tf(self, tf_array, tf): + """Test splitting transfer functions.""" + tf_split = ctrl.split_tf(tf) + # Test entry-by-entry + for i in range(tf_split.shape[0]): + for j in range(tf_split.shape[1]): + assert_tf_close_coeff( + tf_split[i, j], + tf_array[i, j], + ) + # Test combined + assert_tf_close_coeff( + ctrl.combine_tf(tf_split), + ctrl.combine_tf(tf_array), + ) + + @pytest.mark.parametrize( + "tf_array, exception", + [ + # Wrong timesteps + ( + [ + [ctrl.TransferFunction([1], [1, 1], 0.1)], + [ctrl.TransferFunction([2], [1, 0], 0.2)], + ], + ValueError, + ), + ( + [ + [ctrl.TransferFunction([1], [1, 1], 0.1)], + [ctrl.TransferFunction([2], [1, 0], 0)], + ], + ValueError, + ), + # Too few dimensions + ( + [ + ctrl.TransferFunction([1], [1, 1]), + ctrl.TransferFunction([2], [1, 0]), + ], + ValueError, + ), + # Too many dimensions + ( + [ + [[ctrl.TransferFunction([1], [1, 1], 0.1)]], + [[ctrl.TransferFunction([2], [1, 0], 0)]], + ], + ValueError, + ), + # Incompatible dimensions + ( + [ + [ + ctrl.TransferFunction( + [ + [ + [1], + ] + ], + [ + [ + [1, 1], + ] + ], + ), + ctrl.TransferFunction( + [ + [[2], [1]], + [[1], [3]], + ], + [ + [[1, 0], [1, 0]], + [[1, 0], [1, 0]], + ], + ), + ], + ], + ValueError, + ), + ( + [ + [ + ctrl.TransferFunction( + [ + [[2], [1]], + [[1], [3]], + ], + [ + [[1, 0], [1, 0]], + [[1, 0], [1, 0]], + ], + ), + ctrl.TransferFunction( + [ + [ + [1], + ] + ], + [ + [ + [1, 1], + ] + ], + ), + ], + ], + ValueError, + ), + ( + [ + [ + ctrl.TransferFunction( + [ + [[2], [1]], + [[1], [3]], + ], + [ + [[1, 0], [1, 0]], + [[1, 0], [1, 0]], + ], + ), + ctrl.TransferFunction( + [ + [[2], [1]], + [[1], [3]], + ], + [ + [[1, 0], [1, 0]], + [[1, 0], [1, 0]], + ], + ), + ], + [ + ctrl.TransferFunction( + [ + [[2], [1], [1]], + [[1], [3], [2]], + ], + [ + [[1, 0], [1, 0], [1, 0]], + [[1, 0], [1, 0], [1, 0]], + ], + ), + ctrl.TransferFunction( + [ + [[2], [1]], + [[1], [3]], + ], + [ + [[1, 0], [1, 0]], + [[1, 0], [1, 0]], + ], + ), + ], + ], + ValueError, + ), + ], + ) + def test_error_combine_tf(self, tf_array, exception): + """Test error cases.""" + with pytest.raises(exception): + ctrl.combine_tf(tf_array) diff --git a/control/tests/bspline_test.py b/control/tests/bspline_test.py index 0ac59094d..e15915182 100644 --- a/control/tests/bspline_test.py +++ b/control/tests/bspline_test.py @@ -11,11 +11,9 @@ 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 @@ -182,40 +180,40 @@ def test_kinematic_car_multivar(): 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]) + 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]) + 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) + fs.BSplineFamily([10], 2) with pytest.raises(ValueError, match="must be strictly increasing"): - basis = fs.BSplineFamily([1, 3, 2], 2) + fs.BSplineFamily([1, 3, 2], 2) # Smoothness can't be more than dimension of splines - basis = fs.BSplineFamily([0, 1], 4, 3) # OK + 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 + 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']) + 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) + 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 + 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) + 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) + 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) + fs.BSplineFamily([0, 1], 2, -1) diff --git a/control/tests/config_test.py b/control/tests/config_test.py index 947dc95aa..be3fba5c9 100644 --- a/control/tests/config_test.py +++ b/control/tests/config_test.py @@ -108,6 +108,9 @@ def test_fbs_bode(self, mplcleanup): np.testing.assert_almost_equal(mag_x[0], 0.001, decimal=6) np.testing.assert_almost_equal(mag_y[0], 10, decimal=3) + # Make sure x-axis label is Gain + assert mag_axis.get_ylabel() == "Gain" + # Get the phase line phase_axis = plt.gcf().axes[1] phase_line = phase_axis.get_lines() @@ -153,6 +156,9 @@ def test_matlab_bode(self, mplcleanup): np.testing.assert_almost_equal(mag_x[0], 0.001, decimal=6) np.testing.assert_almost_equal(mag_y[0], 20*log10(10), decimal=3) + # Make sure x-axis label is Gain + assert mag_axis.get_ylabel() == "Magnitude [dB]" + # Get the phase line phase_axis = plt.gcf().axes[1] phase_line = phase_axis.get_lines() @@ -319,3 +325,42 @@ def test_system_indexing(self): indexed_system_name_suffix='POST') sys2 = sys[1:, 1:] assert sys2.name == 'PRE' + sys.name + 'POST' + + @pytest.mark.parametrize("kwargs", [ + {}, + {'name': 'mysys'}, + {'inputs': 1}, + {'inputs': 'u'}, + {'outputs': 1}, + {'outputs': 'y'}, + {'states': 1}, + {'states': 'x'}, + {'inputs': 1, 'outputs': 'y', 'states': 'x'}, + {'dt': 0.1} + ]) + def test_repr_format(self, kwargs): + sys = ct.ss([[1]], [[1]], [[1]], [[0]], **kwargs) + new = eval(repr(sys), None, {'StateSpace':ct.StateSpace, 'array':np.array}) + for attr in ['A', 'B', 'C', 'D']: + assert getattr(new, attr) == getattr(sys, attr) + for prop in ['input_labels', 'output_labels', 'state_labels']: + assert getattr(new, attr) == getattr(sys, attr) + if 'name' in kwargs: + assert new.name == sys.name + + +def test_config_context_manager(): + # Make sure we can temporarily set the value of a parameter + default_val = ct.config.defaults['statesp.latex_repr_type'] + with ct.config.defaults({'statesp.latex_repr_type': 'new value'}): + assert ct.config.defaults['statesp.latex_repr_type'] != default_val + assert ct.config.defaults['statesp.latex_repr_type'] == 'new value' + assert ct.config.defaults['statesp.latex_repr_type'] == default_val + + # OK to call the context manager and not do anything with it + ct.config.defaults({'statesp.latex_repr_type': 'new value'}) + assert ct.config.defaults['statesp.latex_repr_type'] == default_val + + with pytest.raises(ValueError, match="unknown parameter 'unknown'"): + with ct.config.defaults({'unknown': 'new value'}): + pass diff --git a/control/tests/conftest.py b/control/tests/conftest.py index 2330e3818..c10dcc225 100644 --- a/control/tests/conftest.py +++ b/control/tests/conftest.py @@ -1,7 +1,4 @@ -"""conftest.py - pytest local plugins and fixtures""" - -import os -from contextlib import contextmanager +"""conftest.py - pytest local plugins, fixtures, marks and functions.""" import matplotlib as mpl import numpy as np @@ -9,6 +6,7 @@ import control + # some common pytest marks. These can be used as test decorators or in # pytest.param(marks=) slycotonly = pytest.mark.skipif( @@ -61,28 +59,65 @@ def mplcleanup(): @pytest.fixture(scope="function") def legacy_plot_signature(): - """Turn off warnings for calls to plotting functions with old signatures""" + """Turn off warnings for calls to plotting functions with old signatures.""" import warnings warnings.filterwarnings( 'ignore', message='passing systems .* is deprecated', - category=DeprecationWarning) + category=FutureWarning) warnings.filterwarnings( - 'ignore', message='.* return values of .* is deprecated', - category=DeprecationWarning) + 'ignore', message='.* return value of .* is deprecated', + category=FutureWarning) yield warnings.resetwarnings() @pytest.fixture(scope="function") def ignore_future_warning(): - """Turn off warnings for functions that generate FutureWarning""" + """Turn off warnings for functions that generate FutureWarning.""" import warnings warnings.filterwarnings( 'ignore', message='.*deprecated', category=FutureWarning) yield warnings.resetwarnings() - -# Allow pytest.mark.slow to mark slow tests (skip with pytest -m "not slow") + def pytest_configure(config): + """Allow pytest.mark.slow to mark slow tests. + + skip with pytest -m "not slow" + """ config.addinivalue_line("markers", "slow: mark test as slow to run") + + +def assert_tf_close_coeff(actual, desired, rtol=1e-5, atol=1e-8): + """Check if two transfer functions have close coefficients. + + Parameters + ---------- + actual, desired : TransferFunction + Transfer functions to compare. + rtol : float + Relative tolerance for ``np.testing.assert_allclose``. + atol : float + Absolute tolerance for ``np.testing.assert_allclose``. + + Raises + ------ + AssertionError + """ + # Check number of outputs and inputs + assert actual.noutputs == desired.noutputs + assert actual.ninputs == desired.ninputs + # Check timestep + assert actual.dt == desired.dt + # Check coefficient arrays + for i in range(actual.noutputs): + for j in range(actual.ninputs): + np.testing.assert_allclose( + actual.num[i][j], + desired.num[i][j], + rtol=rtol, atol=atol) + np.testing.assert_allclose( + actual.den[i][j], + desired.den[i][j], + rtol=rtol, atol=atol) diff --git a/control/tests/ctrlplot_test.py b/control/tests/ctrlplot_test.py new file mode 100644 index 000000000..bf8a075ae --- /dev/null +++ b/control/tests/ctrlplot_test.py @@ -0,0 +1,815 @@ +# ctrlplot_test.py - test out control plotting utilities +# RMM, 27 Jun 2024 + +import inspect +import itertools +import warnings + +import matplotlib.pyplot as plt +import numpy as np +import pytest + +import control as ct + +# List of all plotting functions +resp_plot_fcns = [ + # response function plotting function + (ct.frequency_response, ct.bode_plot), + (ct.frequency_response, ct.nichols_plot), + (ct.singular_values_response, ct.singular_values_plot), + (ct.gangof4_response, ct.gangof4_plot), + (ct.describing_function_response, ct.describing_function_plot), + (None, ct.phase_plane_plot), + (ct.pole_zero_map, ct.pole_zero_plot), + (ct.nyquist_response, ct.nyquist_plot), + (ct.root_locus_map, ct.root_locus_plot), + (ct.initial_response, ct.time_response_plot), + (ct.step_response, ct.time_response_plot), + (ct.impulse_response, ct.time_response_plot), + (ct.forced_response, ct.time_response_plot), + (ct.input_output_response, ct.time_response_plot), +] + +nolabel_plot_fcns = [ct.describing_function_plot, ct.phase_plane_plot] +legacy_plot_fcns = [ct.gangof4_plot] +multiaxes_plot_fcns = [ct.bode_plot, ct.gangof4_plot, ct.time_response_plot] +deprecated_fcns = [ct.phase_plot] + + +# Utility function to make sure legends are OK +def assert_legend(cplt, expected_texts): + # Check to make sure the labels are OK in legend + legend = None + for ax in cplt.axes.flatten(): + legend = ax.get_legend() + if legend is not None: + break + if expected_texts is None: + assert legend is None + else: + assert legend is not None + legend_texts = [entry.get_text() for entry in legend.get_texts()] + assert legend_texts == expected_texts + + +def setup_plot_arguments(resp_fcn, plot_fcn, compute_time_response=True): + # Create some systems to use + sys1 = ct.rss(2, 1, 1, strictly_proper=True, name="sys[1]") + sys1c = ct.rss(2, 1, 1, strictly_proper=True, name="sys[1]_C") + sys2 = ct.rss(2, 1, 1, strictly_proper=True, name="sys[2]") + + # Set up arguments + kwargs = resp_kwargs = plot_kwargs = meth_kwargs = {} + argsc = None + match resp_fcn, plot_fcn: + case ct.describing_function_response, _: + sys1 = ct.tf([1], [1, 2, 2, 1], name="sys[1]") + sys2 = ct.tf([1.1], [1, 2, 2, 1], name="sys[2]") + F = ct.descfcn.saturation_nonlinearity(1) + amp = np.linspace(1, 4, 10) + args1 = (sys1, F, amp) + args2 = (sys2, F, amp) + resp_kwargs = plot_kwargs = {'refine': False} + + case ct.gangof4_response, _: + args1 = (sys1, sys1c) + args2 = (sys2, sys1c) + + case ct.frequency_response, ct.nichols_plot: + args1 = (sys1, None) # to allow *fmt in linestyle test + args2 = (sys2, ) + meth_kwargs = {'plot_type': 'nichols'} + + case ct.frequency_response, ct.bode_plot: + args1 = (sys1, None) # to allow *fmt in linestyle test + args2 = (sys2, ) + + case ct.singular_values_response, ct.singular_values_plot: + args1 = (sys1, None) # to allow *fmt in linestyle test + args2 = (sys2, ) + + case ct.root_locus_map, ct.root_locus_plot: + args1 = (sys1, ) + args2 = (sys2, ) + plot_kwargs = {'interactive': False} + + case (ct.forced_response | ct.input_output_response, _): + timepts = np.linspace(1, 10) + U = np.sin(timepts) + if compute_time_response: + args1 = (resp_fcn(sys1, timepts, U), ) + args2 = (resp_fcn(sys2, timepts, U), ) + argsc = (resp_fcn([sys1, sys2], timepts, U), ) + else: + args1 = (sys1, timepts, U) + args2 = (sys2, timepts, U) + argsc = None + + case (ct.impulse_response | ct.initial_response | ct.step_response, _): + if compute_time_response: + args1 = (resp_fcn(sys1), ) + args2 = (resp_fcn(sys2), ) + argsc = (resp_fcn([sys1, sys2]), ) + else: + args1 = (sys1, ) + args2 = (sys2, ) + argsc = ([sys1, sys2], ) + + case (None, ct.phase_plane_plot): + args1 = (sys1, ) + args2 = (sys2, ) + plot_kwargs = {'plot_streamlines': True} + + case _, _: + args1 = (sys1, ) + args2 = (sys2, ) + + return args1, args2, argsc, kwargs, meth_kwargs, plot_kwargs, resp_kwargs + + +# Make sure we didn't miss any plotting functions +def test_find_respplot_functions(): + # Get the list of plotting functions + plot_fcns = {respplot[1] for respplot in resp_plot_fcns} + + # Look through every object in the package + found = 0 + for name, obj in inspect.getmembers(ct): + # Skip anything that is outside of this module + if inspect.getmodule(obj) is not None and \ + not inspect.getmodule(obj).__name__.startswith('control'): + # Skip anything that isn't part of the control package + continue + + # Only look for non-deprecated functions ending in 'plot' + if not inspect.isfunction(obj) or name[-4:] != 'plot' or \ + obj in deprecated_fcns: + continue + + # Make sure that we have this on our list of functions + assert obj in plot_fcns + found += 1 + + assert found == len(plot_fcns) + + +@pytest.mark.parametrize("resp_fcn, plot_fcn", resp_plot_fcns) +@pytest.mark.usefixtures('mplcleanup') +def test_plot_ax_processing(resp_fcn, plot_fcn): + # Set up arguments + args, _, _, kwargs, meth_kwargs, plot_kwargs, resp_kwargs = \ + setup_plot_arguments(resp_fcn, plot_fcn, compute_time_response=False) + get_line_color = lambda cplt: cplt.lines.reshape(-1)[0][0].get_color() + match resp_fcn, plot_fcn: + case None, ct.phase_plane_plot: + get_line_color = None + warnings.warn("ct.phase_plane_plot returns nonstandard lines") + + # Call the plot through the response function + if resp_fcn is not None: + resp = resp_fcn(*args, **kwargs, **resp_kwargs) + cplt1 = resp.plot(**kwargs, **meth_kwargs) + else: + # No response function available; just plot the data + cplt1 = plot_fcn(*args, **kwargs, **plot_kwargs) + assert isinstance(cplt1, ct.ControlPlot) + + # Call the plot directly, plotting on top of previous plot + if plot_fcn == ct.time_response_plot: + # Can't call the time_response_plot() with system => reuse data + cplt2 = plot_fcn(resp, **kwargs, **plot_kwargs) + else: + cplt2 = plot_fcn(*args, **kwargs, **plot_kwargs) + assert isinstance(cplt2, ct.ControlPlot) + + # Plot should have landed on top of previous plot, in different colors + assert cplt2.figure == cplt1.figure + assert np.all(cplt2.axes == cplt1.axes) + assert len(cplt2.lines[0]) == len(cplt1.lines[0]) + if get_line_color is not None: + assert get_line_color(cplt2) != get_line_color(cplt1) + + # Pass axes explicitly + if resp_fcn is not None: + cplt3 = resp.plot(**kwargs, **meth_kwargs, ax=cplt1.axes) + else: + cplt3 = plot_fcn(*args, **kwargs, **plot_kwargs, ax=cplt1.axes) + assert cplt3.figure == cplt1.figure + + # Plot should have landed on top of previous plot, in different colors + assert np.all(cplt3.axes == cplt1.axes) + assert len(cplt3.lines[0]) == len(cplt1.lines[0]) + if get_line_color is not None: + assert get_line_color(cplt3) != get_line_color(cplt1) + assert get_line_color(cplt3) != get_line_color(cplt2) + + # + # Plot on a user-contructed figure + # + + # Store modified properties from previous figure + cplt_titlesize = cplt3.figure._suptitle.get_fontsize() + cplt_labelsize = \ + cplt3.axes.reshape(-1)[0].get_yticklabels()[0].get_fontsize() + + # Set up some axes with a known title + fig, axs = plt.subplots(2, 3) + title = "User-constructed figure" + plt.suptitle(title) + titlesize = fig._suptitle.get_fontsize() + assert titlesize != cplt_titlesize + labelsize = axs[0, 0].get_yticklabels()[0].get_fontsize() + assert labelsize != cplt_labelsize + + # Figure out what to pass as the ax keyword + match resp_fcn, plot_fcn: + case _, ct.bode_plot: + ax = [axs[0, 1], axs[1, 1]] + + case ct.gangof4_response, _: + ax = [axs[0, 1], axs[0, 2], axs[1, 1], axs[1, 2]] + + case (ct.forced_response | ct.input_output_response, _): + ax = [axs[0, 1], axs[1, 1]] + + case _, _: + ax = [axs[0, 1]] + + # Call the plotting function, passing the axes + if resp_fcn is not None: + resp = resp_fcn(*args, **kwargs, **resp_kwargs) + resp.plot(**kwargs, **meth_kwargs, ax=ax) + else: + # No response function available; just plot the data + plot_fcn(*args, **kwargs, **plot_kwargs, ax=ax) + + # Make sure the plot ended up in the right place + assert len(axs[0, 0].get_lines()) == 0 # upper left + assert len(axs[0, 1].get_lines()) != 0 # top middle + assert len(axs[1, 0].get_lines()) == 0 # lower left + if resp_fcn != ct.gangof4_response: + assert len(axs[1, 2].get_lines()) == 0 # lower right (normally empty) + else: + assert len(axs[1, 2].get_lines()) != 0 # gangof4 uses this axes + + # Check to make sure original settings did not change + assert fig._suptitle.get_text() == title + assert fig._suptitle.get_fontsize() == titlesize + assert ax[0].get_yticklabels()[0].get_fontsize() == labelsize + + # Make sure that docstring documents ax keyword + if plot_fcn not in legacy_plot_fcns: + if plot_fcn in multiaxes_plot_fcns: + assert "ax : array of `matplotlib.axes.Axes`, optional" \ + in plot_fcn.__doc__ + else: + assert "ax : `matplotlib.axes.Axes`, optional" in plot_fcn.__doc__ + + +@pytest.mark.parametrize("resp_fcn, plot_fcn", resp_plot_fcns) +@pytest.mark.usefixtures('mplcleanup') +def test_plot_label_processing(resp_fcn, plot_fcn): + # Set up arguments + args1, args2, argsc, kwargs, meth_kwargs, plot_kwargs, resp_kwargs = \ + setup_plot_arguments(resp_fcn, plot_fcn) + default_labels = ["sys[1]", "sys[2]"] + expected_labels = ["sys1_", "sys2_"] + match resp_fcn, plot_fcn: + case ct.gangof4_response, _: + default_labels = ["P=sys[1]", "P=sys[2]"] + + if plot_fcn in nolabel_plot_fcns: + pytest.skip(f"labels not implemented for {plot_fcn}") + + # Generate the first plot, with default labels + cplt1 = plot_fcn(*args1, **kwargs, **plot_kwargs) + assert isinstance(cplt1, ct.ControlPlot) + assert_legend(cplt1, None) + + # Generate second plot with default labels + cplt2 = plot_fcn(*args2, **kwargs, **plot_kwargs) + assert isinstance(cplt2, ct.ControlPlot) + assert_legend(cplt2, default_labels) + plt.close() + + # Generate both plots at the same time + if len(args1) == 1 and plot_fcn != ct.time_response_plot: + cplt = plot_fcn([*args1, *args2], **kwargs, **plot_kwargs) + assert isinstance(cplt, ct.ControlPlot) + assert_legend(cplt, default_labels) + elif len(args1) == 1 and plot_fcn == ct.time_response_plot: + # Use TimeResponseList.plot() to generate combined response + cplt = argsc[0].plot(**kwargs, **meth_kwargs) + assert isinstance(cplt, ct.ControlPlot) + assert_legend(cplt, default_labels) + plt.close() + + # Generate plots sequentially, with updated labels + cplt1 = plot_fcn( + *args1, **kwargs, **plot_kwargs, label=expected_labels[0]) + assert isinstance(cplt1, ct.ControlPlot) + assert_legend(cplt1, None) + + cplt2 = plot_fcn( + *args2, **kwargs, **plot_kwargs, label=expected_labels[1]) + assert isinstance(cplt2, ct.ControlPlot) + assert_legend(cplt2, expected_labels) + plt.close() + + # Generate both plots at the same time, with updated labels + if len(args1) == 1 and plot_fcn != ct.time_response_plot: + cplt = plot_fcn( + [*args1, *args2], **kwargs, **plot_kwargs, + label=expected_labels) + assert isinstance(cplt, ct.ControlPlot) + assert_legend(cplt, expected_labels) + elif len(args1) == 1 and plot_fcn == ct.time_response_plot: + # Use TimeResponseList.plot() to generate combined response + cplt = argsc[0].plot( + **kwargs, **meth_kwargs, label=expected_labels) + assert isinstance(cplt, ct.ControlPlot) + assert_legend(cplt, expected_labels) + plt.close() + + # Make sure that docstring documents label + if plot_fcn not in legacy_plot_fcns: + assert "label : str or array_like of str, optional" in plot_fcn.__doc__ + + +@pytest.mark.parametrize("resp_fcn, plot_fcn", resp_plot_fcns) +@pytest.mark.usefixtures('mplcleanup') +def test_plot_linestyle_processing(resp_fcn, plot_fcn): + # Set up arguments + args1, args2, _, kwargs, meth_kwargs, plot_kwargs, resp_kwargs = \ + setup_plot_arguments(resp_fcn, plot_fcn) + + # Set line color + cplt1 = plot_fcn(*args1, **kwargs, **plot_kwargs, color='r') + assert cplt1.lines.reshape(-1)[0][0].get_color() == 'r' + + # Second plot, new line color + cplt2 = plot_fcn(*args2, **kwargs, **plot_kwargs, color='g') + assert cplt2.lines.reshape(-1)[0][0].get_color() == 'g' + + # Make sure that docstring documents line properties + if plot_fcn not in legacy_plot_fcns: + assert "line properties" in plot_fcn.__doc__ or \ + "color : matplotlib color spec, optional" in plot_fcn.__doc__ + + # Set other characteristics if documentation says we can + if "line properties" in plot_fcn.__doc__: + cplt = plot_fcn(*args1, **kwargs, **plot_kwargs, linewidth=5) + assert cplt.lines.reshape(-1)[0][0].get_linewidth() == 5 + + # If fmt string is allowed, use it to set line color and style + if "*fmt" in plot_fcn.__doc__: + cplt = plot_fcn(*args1, 'r--', **kwargs, **plot_kwargs) + assert cplt.lines.reshape(-1)[0][0].get_color() == 'r' + assert cplt.lines.reshape(-1)[0][0].get_linestyle() == '--' + + +@pytest.mark.parametrize("resp_fcn, plot_fcn", resp_plot_fcns) +@pytest.mark.usefixtures('mplcleanup') +def test_siso_plot_legend_processing(resp_fcn, plot_fcn): + # Set up arguments + args1, args2, argsc, kwargs, meth_kwargs, plot_kwargs, resp_kwargs = \ + setup_plot_arguments(resp_fcn, plot_fcn) + default_labels = ["sys[1]", "sys[2]"] + match resp_fcn, plot_fcn: + case ct.gangof4_response, _: + # Multi-axes plot => test in next function + return + + if plot_fcn in nolabel_plot_fcns: + # Make sure that using legend keywords generates an error + with pytest.raises(TypeError, match="unexpected|unrecognized"): + cplt = plot_fcn(*args1, legend_loc=None) + with pytest.raises(TypeError, match="unexpected|unrecognized"): + cplt = plot_fcn(*args1, legend_map=None) + with pytest.raises(TypeError, match="unexpected|unrecognized"): + cplt = plot_fcn(*args1, show_legend=None) + return + + # Single system, with forced legend + cplt = plot_fcn(*args1, **kwargs, **plot_kwargs, show_legend=True) + assert_legend(cplt, default_labels[:1]) + plt.close() + + # Single system, with forced location + cplt = plot_fcn(*args1, **kwargs, **plot_kwargs, legend_loc=10) + assert cplt.axes[0, 0].get_legend()._loc == 10 + plt.close() + + # Generate two plots, but turn off legends + if len(args1) == 1 and plot_fcn != ct.time_response_plot: + cplt = plot_fcn( + [*args1, *args2], **kwargs, **plot_kwargs, show_legend=False) + assert_legend(cplt, None) + elif len(args1) == 1 and plot_fcn == ct.time_response_plot: + # Use TimeResponseList.plot() to generate combined response + cplt = argsc[0].plot(**kwargs, **meth_kwargs, show_legend=False) + assert_legend(cplt, None) + plt.close() + + # Make sure that docstring documents legend_loc, show_legend + assert "legend_loc : int or str, optional" in plot_fcn.__doc__ + assert "show_legend : bool, optional" in plot_fcn.__doc__ + + # Make sure that single axes plots generate an error with legend_map + if plot_fcn not in multiaxes_plot_fcns: + with pytest.raises(TypeError, match="unexpected"): + cplt = plot_fcn(*args1, legend_map=False) + else: + assert "legend_map : array of str" in plot_fcn.__doc__ + + +@pytest.mark.parametrize("resp_fcn, plot_fcn", resp_plot_fcns) +@pytest.mark.usefixtures('mplcleanup') +def test_mimo_plot_legend_processing(resp_fcn, plot_fcn): + # Generate the response that we will use for plotting + match resp_fcn, plot_fcn: + case ct.frequency_response, ct.bode_plot: + resp = ct.frequency_response([ct.rss(4, 2, 2), ct.rss(3, 2, 2)]) + case ct.step_response, ct.time_response_plot: + resp = ct.step_response([ct.rss(4, 2, 2), ct.rss(3, 2, 2)]) + case ct.gangof4_response, ct.gangof4_plot: + resp = ct.gangof4_response(ct.rss(4, 1, 1), ct.rss(3, 1, 1)) + case _, ct.time_response_plot: + # Skip remaining time response plots to avoid duplicate tests + return + case _, _: + # Skip everything else that doesn't support multi-axes plots + assert plot_fcn not in multiaxes_plot_fcns + return + + # Generate a standard plot with legend in the center + cplt1 = resp.plot(legend_loc=10) + assert cplt1.axes.ndim == 2 + for legend_idx, ax in enumerate(cplt1.axes.flatten()): + if ax.get_legend() is not None: + break; + assert legend_idx != 0 # Make sure legend is not in first subplot + assert ax.get_legend()._loc == 10 + plt.close() + + # Regenerate the plot with no legend + cplt2 = resp.plot(show_legend=False) + for ax in cplt2.axes.flatten(): + if ax.get_legend() is not None: + break; + assert ax.get_legend() is None + plt.close() + + # Regenerate the plot with no legend in a different way + cplt2 = resp.plot(legend_loc=False) + for ax in cplt2.axes.flatten(): + if ax.get_legend() is not None: + break; + assert ax.get_legend() is None + plt.close() + + # Regenerate the plot with no legend in a different way + cplt2 = resp.plot(legend_map=False) + for ax in cplt2.axes.flatten(): + if ax.get_legend() is not None: + break; + assert ax.get_legend() is None + plt.close() + + # Put the legend in a different (first) subplot + legend_map = np.full(cplt2.shape, None, dtype=object) + legend_map[0, 0] = 5 + legend_map[-1, -1] = 6 + cplt3 = resp.plot(legend_map=legend_map) + assert cplt3.axes[0, 0].get_legend()._loc == 5 + assert cplt3.axes[-1, -1].get_legend()._loc == 6 + plt.close() + + +@pytest.mark.parametrize("resp_fcn, plot_fcn", resp_plot_fcns) +@pytest.mark.usefixtures('mplcleanup') +def test_plot_title_processing(resp_fcn, plot_fcn): + # Set up arguments + args1, args2, argsc, kwargs, meth_kwargs, plot_kwargs, resp_kwargs = \ + setup_plot_arguments(resp_fcn, plot_fcn) + default_title = "sys[1], sys[2]" + match resp_fcn, plot_fcn: + case ct.gangof4_response, _: + default_title = "P=sys[1], C=sys[1]_C, P=sys[2], C=sys[1]_C" + + # Store the expected title prefix + match resp_fcn, plot_fcn: + case _, ct.bode_plot: + title_prefix = "Bode plot for " + case _, ct.nichols_plot: + title_prefix = "Nichols plot for " + case _, ct.singular_values_plot: + title_prefix = "Singular values for " + case _, ct.gangof4_plot: + title_prefix = "Gang of Four for " + case _, ct.describing_function_plot: + title_prefix = "Nyquist plot for " + case _, ct.phase_plane_plot: + title_prefix = "Phase portrait for " + case _, ct.pole_zero_plot: + title_prefix = "Pole/zero plot for " + case _, ct.nyquist_plot: + title_prefix = "Nyquist plot for " + case _, ct.root_locus_plot: + title_prefix = "Root locus plot for " + case ct.initial_response, _: + title_prefix = "Initial response for " + case ct.step_response, _: + title_prefix = "Step response for " + case ct.impulse_response, _: + title_prefix = "Impulse response for " + case ct.forced_response, _: + title_prefix = "Forced response for " + case ct.input_output_response, _: + title_prefix = "Input/output response for " + case _: + raise RuntimeError(f"didn't recognize {resp_fcn}, {plot_fcn}") + + # Generate the first plot, with default title + cplt1 = plot_fcn(*args1, **kwargs, **plot_kwargs) + assert cplt1.figure._suptitle._text.startswith(title_prefix) + + # Skip functions not intended for sequential calling + if plot_fcn not in nolabel_plot_fcns: + # Generate second plot with default title + cplt2 = plot_fcn(*args2, **kwargs, **plot_kwargs) + assert cplt1.figure._suptitle._text == title_prefix + default_title + plt.close() + + # Generate both plots at the same time + if len(args1) == 1 and plot_fcn != ct.time_response_plot: + cplt = plot_fcn([*args1, *args2], **kwargs, **plot_kwargs) + assert cplt.figure._suptitle._text == title_prefix + default_title + elif len(args1) == 1 and plot_fcn == ct.time_response_plot: + # Use TimeResponseList.plot() to generate combined response + cplt = argsc[0].plot(**kwargs, **meth_kwargs) + assert cplt.figure._suptitle._text == title_prefix + default_title + plt.close() + + # Generate plots sequentially, with updated titles + cplt1 = plot_fcn( + *args1, **kwargs, **plot_kwargs, title="My first title") + cplt2 = plot_fcn( + *args2, **kwargs, **plot_kwargs, title="My new title") + assert cplt2.figure._suptitle._text == "My new title" + plt.close() + + # Update using set_plot_title + cplt2.set_plot_title("Another title") + assert cplt2.figure._suptitle._text == "Another title" + plt.close() + + # Generate the plots with no title + cplt = plot_fcn( + *args1, **kwargs, **plot_kwargs, title=False) + assert cplt.figure._suptitle == None + plt.close() + + # Make sure that docstring documents title + if plot_fcn not in legacy_plot_fcns: + assert "title : str, optional" in plot_fcn.__doc__ + + +@pytest.mark.parametrize("plot_fcn", multiaxes_plot_fcns) +@pytest.mark.usefixtures('mplcleanup') +def test_tickmark_label_processing(plot_fcn): + # Generate the response that we will use for plotting + match plot_fcn: + case ct.bode_plot: + resp = ct.frequency_response(ct.rss(4, 2, 2)) + case ct.time_response_plot: + resp = ct.step_response(ct.rss(4, 2, 2)) + case ct.gangof4_plot: + resp = ct.gangof4_response(ct.rss(4, 1, 1), ct.rss(3, 1, 1)) + case _: + pytest.fail("unknown plot_fcn") + + # Turn off axis sharing => all axes have ticklabels + cplt = resp.plot(sharex=False, sharey=False) + for i, j in itertools.product( + range(cplt.axes.shape[0]), range(cplt.axes.shape[1])): + assert len(cplt.axes[i, j].get_xticklabels()) > 0 + assert len(cplt.axes[i, j].get_yticklabels()) > 0 + plt.clf() + + # Turn on axis sharing => only outer axes have ticklabels + cplt = resp.plot(sharex=True, sharey=True) + for i, j in itertools.product( + range(cplt.axes.shape[0]), range(cplt.axes.shape[1])): + if i < cplt.axes.shape[0] - 1: + assert len(cplt.axes[i, j].get_xticklabels()) == 0 + else: + assert len(cplt.axes[i, j].get_xticklabels()) > 0 + + if j > 0: + assert len(cplt.axes[i, j].get_yticklabels()) == 0 + else: + assert len(cplt.axes[i, j].get_yticklabels()) > 0 + + +@pytest.mark.parametrize("resp_fcn, plot_fcn", resp_plot_fcns) +@pytest.mark.usefixtures('mplcleanup', 'editsdefaults') +def test_rcParams(resp_fcn, plot_fcn): + # Set up arguments + args1, args2, argsc, kwargs, meth_kwargs, plot_kwargs, resp_kwargs = \ + setup_plot_arguments(resp_fcn, plot_fcn) + # Create new set of rcParams + my_rcParams = {} + for key in ct.ctrlplot.rcParams: + match plt.rcParams[key]: + case 8 | 9 | 10: + my_rcParams[key] = plt.rcParams[key] + 1 + case 'medium': + my_rcParams[key] = 11.5 + case 'large': + my_rcParams[key] = 9.5 + case _: + raise ValueError(f"unknown rcParam type for {key}") + checked_params = my_rcParams.copy() # make sure we check everything + + # Generate a figure with the new rcParams + if plot_fcn not in nolabel_plot_fcns: + cplt = plot_fcn( + *args1, **kwargs, **plot_kwargs, rcParams=my_rcParams, + show_legend=True) + else: + cplt = plot_fcn(*args1, **kwargs, **plot_kwargs, rcParams=my_rcParams) + + # Check lower left figure (should always have ticks, labels) + ax, fig = cplt.axes[-1, 0], cplt.figure + + # Check to make sure new settings were used + assert ax.xaxis.get_label().get_fontsize() == my_rcParams['axes.labelsize'] + assert ax.yaxis.get_label().get_fontsize() == my_rcParams['axes.labelsize'] + checked_params.pop('axes.labelsize') + + assert ax.title.get_fontsize() == my_rcParams['axes.titlesize'] + checked_params.pop('axes.titlesize') + + assert ax.get_xticklabels()[0].get_fontsize() == \ + my_rcParams['xtick.labelsize'] + checked_params.pop('xtick.labelsize') + + assert ax.get_yticklabels()[0].get_fontsize() == \ + my_rcParams['ytick.labelsize'] + checked_params.pop('ytick.labelsize') + + assert fig._suptitle.get_fontsize() == my_rcParams['figure.titlesize'] + checked_params.pop('figure.titlesize') + + if plot_fcn not in nolabel_plot_fcns: + for ax in cplt.axes.flatten(): + legend = ax.get_legend() + if legend is not None: + break + assert legend is not None + assert legend.get_texts()[0].get_fontsize() == \ + my_rcParams['legend.fontsize'] + checked_params.pop('legend.fontsize') + + # Make sure we checked everything + assert not checked_params + plt.close() + + # Change the default rcParams + ct.ctrlplot.rcParams.update(my_rcParams) + if plot_fcn not in nolabel_plot_fcns: + cplt = plot_fcn( + *args1, **kwargs, **plot_kwargs, show_legend=True) + else: + cplt = plot_fcn(*args1, **kwargs, **plot_kwargs) + + # Check everything + ax, fig = cplt.axes[-1, 0], cplt.figure + assert ax.xaxis.get_label().get_fontsize() == my_rcParams['axes.labelsize'] + assert ax.yaxis.get_label().get_fontsize() == my_rcParams['axes.labelsize'] + assert ax.title.get_fontsize() == my_rcParams['axes.titlesize'] + assert ax.get_xticklabels()[0].get_fontsize() == \ + my_rcParams['xtick.labelsize'] + assert ax.get_yticklabels()[0].get_fontsize() == \ + my_rcParams['ytick.labelsize'] + assert fig._suptitle.get_fontsize() == my_rcParams['figure.titlesize'] + if plot_fcn not in nolabel_plot_fcns: + for ax in cplt.axes.flatten(): + legend = ax.get_legend() + if legend is not None: + break + assert legend is not None + assert legend.get_texts()[0].get_fontsize() == \ + my_rcParams['legend.fontsize'] + plt.close() + + # Make sure that resetting parameters works correctly + ct.reset_defaults() + for key in ct.ctrlplot.rcParams: + assert ct.defaults['ctrlplot.rcParams'][key] != my_rcParams[key] + assert ct.ctrlplot.rcParams[key] != my_rcParams[key] + + +def test_deprecation_warnings(): + sys = ct.rss(2, 2, 2) + lines = ct.step_response(sys).plot(overlay_traces=True) + with pytest.warns(FutureWarning, match="deprecated"): + assert len(lines[0, 0]) == 2 + + cplt = ct.step_response(sys).plot() + with pytest.warns(FutureWarning, match="deprecated"): + axs = ct.get_plot_axes(cplt) + assert np.all(axs == cplt.axes) + + with pytest.warns(FutureWarning, match="deprecated"): + axs = ct.get_plot_axes(cplt.lines) + assert np.all(axs == cplt.axes) + + with pytest.warns(FutureWarning, match="deprecated"): + ct.suptitle("updated title") + assert cplt.figure._suptitle.get_text() == "updated title" + + +def test_ControlPlot_init(): + sys = ct.rss(2, 2, 2) + cplt = ct.step_response(sys).plot() + + # Create a ControlPlot from data, without the axes or figure + cplt_raw = ct.ControlPlot(cplt.lines) + assert np.all(cplt_raw.lines == cplt.lines) + assert np.all(cplt_raw.axes == cplt.axes) + assert cplt_raw.figure == cplt.figure + + +def test_pole_zero_subplots(savefig=False): + ax_array = ct.pole_zero_subplots(2, 1, grid=[True, False]) + 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], ax=ax_array[0, 0]) + cplt = ct.root_locus_plot([sys1, sys2], ax=ax_array[1, 0]) + with pytest.warns(UserWarning, match="Tight layout not applied"): + cplt.set_plot_title("Root locus plots (w/ specified axes)") + if savefig: + plt.savefig("ctrlplot-pole_zero_subplots.png") + + # Single type of of grid for all axes + ax_array = ct.pole_zero_subplots(2, 2, grid='empty') + assert ax_array[0, 0].xaxis.get_label().get_text() == '' + + # Discrete system grid + ax_array = ct.pole_zero_subplots(2, 2, grid=True, dt=1) + assert ax_array[0, 0].xaxis.get_label().get_text() == 'Real' + assert ax_array[0, 0].get_lines()[0].get_color() == 'grey' + + +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') + + # + # Combination plot + # + + P = ct.tf([0.02], [1, 0.1, 0.01]) # servomechanism + C1 = ct.tf([1, 1], [1, 0]) # unstable + L1 = P * C1 + C2 = ct.tf([1, 0.05], [1, 0]) # stable + L2 = P * C2 + + plt.rcParams.update(ct.rcParams) + fig = plt.figure(figsize=[7, 4]) + ax_mag = fig.add_subplot(2, 2, 1) + ax_phase = fig.add_subplot(2, 2, 3) + ax_nyquist = fig.add_subplot(1, 2, 2) + + ct.bode_plot( + [L1, L2], ax=[ax_mag, ax_phase], + label=["$L_1$ (unstable)", "$L_2$ (unstable)"], + show_legend=False) + ax_mag.set_title("Bode plot for $L_1$, $L_2$") + ax_mag.tick_params(labelbottom=False) + fig.align_labels() + + ct.nyquist_plot(L1, ax=ax_nyquist, label="$L_1$ (unstable)") + ct.nyquist_plot( + L2, ax=ax_nyquist, label="$L_2$ (stable)", + max_curve_magnitude=22, legend_loc='upper right') + ax_nyquist.set_title("Nyquist plot for $L_1$, $L_2$") + + fig.suptitle("Loop analysis for servomechanism control design") + plt.tight_layout() + plt.savefig('ctrlplot-servomech.png') + + plt.figure() + test_pole_zero_subplots(savefig=True) diff --git a/control/tests/descfcn_test.py b/control/tests/descfcn_test.py index ceeff1123..e91738e82 100644 --- a/control/tests/descfcn_test.py +++ b/control/tests/descfcn_test.py @@ -7,14 +7,15 @@ """ -import pytest +import math +import matplotlib.pyplot as plt import numpy as np +import pytest + import control as ct -import math -import matplotlib.pyplot as plt -from control.descfcn import saturation_nonlinearity, \ - friction_backlash_nonlinearity, relay_hysteresis_nonlinearity +from control.descfcn import friction_backlash_nonlinearity, \ + relay_hysteresis_nonlinearity, saturation_nonlinearity # Static function via a class @@ -187,13 +188,13 @@ def test_describing_function_plot(): assert len(response.intersections) == 1 assert len(plt.gcf().get_axes()) == 0 # make sure there is no plot - out = response.plot() + cplt = response.plot() assert len(plt.gcf().get_axes()) == 1 # make sure there is a plot - assert len(out[0]) == 4 and len(out[1]) == 1 + assert len(cplt.lines[0]) == 4 and len(cplt.lines[1]) == 1 # Call plot directly - out = ct.describing_function_plot(H_larger, F_saturation, amp, omega) - assert len(out[0]) == 4 and len(out[1]) == 1 + cplt = ct.describing_function_plot(H_larger, F_saturation, amp, omega) + assert len(cplt.lines[0]) == 4 and len(cplt.lines[1]) == 1 def test_describing_function_exceptions(): @@ -204,12 +205,12 @@ def test_describing_function_exceptions(): assert saturation(3) == 2 # Turn off the bias check - bias = ct.describing_function(saturation, 0, zero_check=False) + ct.describing_function(saturation, 0, zero_check=False) # Function should evaluate to zero at zero amplitude f = lambda x: x + 0.5 with pytest.raises(ValueError, match="must evaluate to zero"): - bias = ct.describing_function(f, 0, zero_check=True) + ct.describing_function(f, 0, zero_check=True) # Evaluate at a negative amplitude with pytest.raises(ValueError, match="cannot evaluate"): @@ -231,3 +232,8 @@ def test_describing_function_exceptions(): with pytest.raises(AttributeError, match="no property|unexpected keyword"): response = ct.describing_function_response(H_simple, F_saturation, amp) response.plot(unknown=None) + + # Describing function plot for non-describing function object + resp = ct.frequency_response(H_simple) + with pytest.raises(TypeError, match="data must be DescribingFunction"): + ct.describing_function_plot(resp) diff --git a/control/tests/discrete_test.py b/control/tests/discrete_test.py index cccb53708..9b87bd61b 100644 --- a/control/tests/discrete_test.py +++ b/control/tests/discrete_test.py @@ -1,4 +1,4 @@ -"""discrete_test.py - test discrete time classes +"""discrete_test.py - test discrete-time classes RMM, 9 Sep 2012 """ @@ -22,7 +22,7 @@ def tsys(self): class Tsys: pass T = Tsys() - # Single input, single output continuous and discrete time systems + # Single input, single output continuous and discrete-time systems sys = rss(3, 1, 1) T.siso_ss1 = StateSpace(sys.A, sys.B, sys.C, sys.D, None) T.siso_ss1c = StateSpace(sys.A, sys.B, sys.C, sys.D, 0.0) @@ -30,7 +30,7 @@ class Tsys: T.siso_ss2d = StateSpace(sys.A, sys.B, sys.C, sys.D, 0.2) T.siso_ss3d = StateSpace(sys.A, sys.B, sys.C, sys.D, True) - # Two input, two output continuous time system + # Two input, two output continuous-time system A = [[-3., 4., 2.], [-1., -3., 0.], [2., 5., 3.]] B = [[1., 4.], [-3., -3.], [-2., 1.]] C = [[4., 2., -3.], [1., 4., 3.]] @@ -38,7 +38,7 @@ class Tsys: T.mimo_ss1 = StateSpace(A, B, C, D, None) T.mimo_ss1c = StateSpace(A, B, C, D, 0) - # Two input, two output discrete time system + # Two input, two output discrete-time system T.mimo_ss1d = StateSpace(A, B, C, D, 0.1) # Same system, but with a different sampling time @@ -231,14 +231,14 @@ def testisctime(self, tsys): def testAddition(self, tsys): # State space addition - sys = tsys.siso_ss1 + tsys.siso_ss1d - sys = tsys.siso_ss1 + tsys.siso_ss1c - sys = tsys.siso_ss1c + tsys.siso_ss1 - sys = tsys.siso_ss1d + tsys.siso_ss1 - sys = tsys.siso_ss1c + tsys.siso_ss1c - sys = tsys.siso_ss1d + tsys.siso_ss1d - sys = tsys.siso_ss3d + tsys.siso_ss3d - sys = tsys.siso_ss1d + tsys.siso_ss3d + _sys = tsys.siso_ss1 + tsys.siso_ss1d + _sys = tsys.siso_ss1 + tsys.siso_ss1c + _sys = tsys.siso_ss1c + tsys.siso_ss1 + _sys = tsys.siso_ss1d + tsys.siso_ss1 + _sys = tsys.siso_ss1c + tsys.siso_ss1c + _sys = tsys.siso_ss1d + tsys.siso_ss1d + _sys = tsys.siso_ss3d + tsys.siso_ss3d + _sys = tsys.siso_ss1d + tsys.siso_ss3d with pytest.raises(ValueError): StateSpace.__add__(tsys.mimo_ss1c, tsys.mimo_ss1d) @@ -246,14 +246,14 @@ def testAddition(self, tsys): StateSpace.__add__(tsys.mimo_ss1d, tsys.mimo_ss2d) # Transfer function addition - sys = tsys.siso_tf1 + tsys.siso_tf1d - sys = tsys.siso_tf1 + tsys.siso_tf1c - sys = tsys.siso_tf1c + tsys.siso_tf1 - sys = tsys.siso_tf1d + tsys.siso_tf1 - sys = tsys.siso_tf1c + tsys.siso_tf1c - sys = tsys.siso_tf1d + tsys.siso_tf1d - sys = tsys.siso_tf2d + tsys.siso_tf2d - sys = tsys.siso_tf1d + tsys.siso_tf3d + _sys = tsys.siso_tf1 + tsys.siso_tf1d + _sys = tsys.siso_tf1 + tsys.siso_tf1c + _sys = tsys.siso_tf1c + tsys.siso_tf1 + _sys = tsys.siso_tf1d + tsys.siso_tf1 + _sys = tsys.siso_tf1c + tsys.siso_tf1c + _sys = tsys.siso_tf1d + tsys.siso_tf1d + _sys = tsys.siso_tf2d + tsys.siso_tf2d + _sys = tsys.siso_tf1d + tsys.siso_tf3d with pytest.raises(ValueError): TransferFunction.__add__(tsys.siso_tf1c, tsys.siso_tf1d) @@ -261,22 +261,22 @@ def testAddition(self, tsys): TransferFunction.__add__(tsys.siso_tf1d, tsys.siso_tf2d) # State space + transfer function - sys = tsys.siso_ss1c + tsys.siso_tf1c - sys = tsys.siso_tf1c + tsys.siso_ss1c - sys = tsys.siso_ss1d + tsys.siso_tf1d - sys = tsys.siso_tf1d + tsys.siso_ss1d + _sys = tsys.siso_ss1c + tsys.siso_tf1c + _sys = tsys.siso_tf1c + tsys.siso_ss1c + _sys = tsys.siso_ss1d + tsys.siso_tf1d + _sys = tsys.siso_tf1d + tsys.siso_ss1d with pytest.raises(ValueError): TransferFunction.__add__(tsys.siso_tf1c, tsys.siso_ss1d) def testMultiplication(self, tsys): # State space multiplication - sys = tsys.siso_ss1 * tsys.siso_ss1d - sys = tsys.siso_ss1 * tsys.siso_ss1c - sys = tsys.siso_ss1c * tsys.siso_ss1 - sys = tsys.siso_ss1d * tsys.siso_ss1 - sys = tsys.siso_ss1c * tsys.siso_ss1c - sys = tsys.siso_ss1d * tsys.siso_ss1d - sys = tsys.siso_ss1d * tsys.siso_ss3d + _sys = tsys.siso_ss1 * tsys.siso_ss1d + _sys = tsys.siso_ss1 * tsys.siso_ss1c + _sys = tsys.siso_ss1c * tsys.siso_ss1 + _sys = tsys.siso_ss1d * tsys.siso_ss1 + _sys = tsys.siso_ss1c * tsys.siso_ss1c + _sys = tsys.siso_ss1d * tsys.siso_ss1d + _sys = tsys.siso_ss1d * tsys.siso_ss3d with pytest.raises(ValueError): StateSpace.__mul__(tsys.mimo_ss1c, tsys.mimo_ss1d) @@ -284,13 +284,13 @@ def testMultiplication(self, tsys): StateSpace.__mul__(tsys.mimo_ss1d, tsys.mimo_ss2d) # Transfer function multiplication - sys = tsys.siso_tf1 * tsys.siso_tf1d - sys = tsys.siso_tf1 * tsys.siso_tf1c - sys = tsys.siso_tf1c * tsys.siso_tf1 - sys = tsys.siso_tf1d * tsys.siso_tf1 - sys = tsys.siso_tf1c * tsys.siso_tf1c - sys = tsys.siso_tf1d * tsys.siso_tf1d - sys = tsys.siso_tf1d * tsys.siso_tf3d + _sys = tsys.siso_tf1 * tsys.siso_tf1d + _sys = tsys.siso_tf1 * tsys.siso_tf1c + _sys = tsys.siso_tf1c * tsys.siso_tf1 + _sys = tsys.siso_tf1d * tsys.siso_tf1 + _sys = tsys.siso_tf1c * tsys.siso_tf1c + _sys = tsys.siso_tf1d * tsys.siso_tf1d + _sys = tsys.siso_tf1d * tsys.siso_tf3d with pytest.raises(ValueError): TransferFunction.__mul__(tsys.siso_tf1c, tsys.siso_tf1d) @@ -298,10 +298,10 @@ def testMultiplication(self, tsys): TransferFunction.__mul__(tsys.siso_tf1d, tsys.siso_tf2d) # State space * transfer function - sys = tsys.siso_ss1c * tsys.siso_tf1c - sys = tsys.siso_tf1c * tsys.siso_ss1c - sys = tsys.siso_ss1d * tsys.siso_tf1d - sys = tsys.siso_tf1d * tsys.siso_ss1d + _sys = tsys.siso_ss1c * tsys.siso_tf1c + _sys = tsys.siso_tf1c * tsys.siso_ss1c + _sys = tsys.siso_ss1d * tsys.siso_tf1d + _sys = tsys.siso_tf1d * tsys.siso_ss1d with pytest.raises(ValueError): TransferFunction.__mul__(tsys.siso_tf1c, tsys.siso_ss1d) @@ -309,13 +309,13 @@ def testMultiplication(self, tsys): def testFeedback(self, tsys): # State space feedback - sys = feedback(tsys.siso_ss1, tsys.siso_ss1d) - sys = feedback(tsys.siso_ss1, tsys.siso_ss1c) - sys = feedback(tsys.siso_ss1c, tsys.siso_ss1) - sys = feedback(tsys.siso_ss1d, tsys.siso_ss1) - sys = feedback(tsys.siso_ss1c, tsys.siso_ss1c) - sys = feedback(tsys.siso_ss1d, tsys.siso_ss1d) - sys = feedback(tsys.siso_ss1d, tsys.siso_ss3d) + _sys = feedback(tsys.siso_ss1, tsys.siso_ss1d) + _sys = feedback(tsys.siso_ss1, tsys.siso_ss1c) + _sys = feedback(tsys.siso_ss1c, tsys.siso_ss1) + _sys = feedback(tsys.siso_ss1d, tsys.siso_ss1) + _sys = feedback(tsys.siso_ss1c, tsys.siso_ss1c) + _sys = feedback(tsys.siso_ss1d, tsys.siso_ss1d) + _sys = feedback(tsys.siso_ss1d, tsys.siso_ss3d) with pytest.raises(ValueError): feedback(tsys.mimo_ss1c, tsys.mimo_ss1d) @@ -323,13 +323,13 @@ def testFeedback(self, tsys): feedback(tsys.mimo_ss1d, tsys.mimo_ss2d) # Transfer function feedback - sys = feedback(tsys.siso_tf1, tsys.siso_tf1d) - sys = feedback(tsys.siso_tf1, tsys.siso_tf1c) - sys = feedback(tsys.siso_tf1c, tsys.siso_tf1) - sys = feedback(tsys.siso_tf1d, tsys.siso_tf1) - sys = feedback(tsys.siso_tf1c, tsys.siso_tf1c) - sys = feedback(tsys.siso_tf1d, tsys.siso_tf1d) - sys = feedback(tsys.siso_tf1d, tsys.siso_tf3d) + _sys = feedback(tsys.siso_tf1, tsys.siso_tf1d) + _sys = feedback(tsys.siso_tf1, tsys.siso_tf1c) + _sys = feedback(tsys.siso_tf1c, tsys.siso_tf1) + _sys = feedback(tsys.siso_tf1d, tsys.siso_tf1) + _sys = feedback(tsys.siso_tf1c, tsys.siso_tf1c) + _sys = feedback(tsys.siso_tf1d, tsys.siso_tf1d) + _sys = feedback(tsys.siso_tf1d, tsys.siso_tf3d) with pytest.raises(ValueError): feedback(tsys.siso_tf1c, tsys.siso_tf1d) @@ -337,10 +337,11 @@ def testFeedback(self, tsys): feedback(tsys.siso_tf1d, tsys.siso_tf2d) # State space, transfer function - sys = feedback(tsys.siso_ss1c, tsys.siso_tf1c) - sys = feedback(tsys.siso_tf1c, tsys.siso_ss1c) - sys = feedback(tsys.siso_ss1d, tsys.siso_tf1d) - sys = feedback(tsys.siso_tf1d, tsys.siso_ss1d) + _sys = feedback(tsys.siso_ss1c, tsys.siso_tf1c) + _sys = feedback(tsys.siso_tf1c, tsys.siso_ss1c) + _sys = feedback(tsys.siso_ss1d, tsys.siso_tf1d) + + _sys = feedback(tsys.siso_tf1d, tsys.siso_ss1d) with pytest.raises(ValueError): feedback(tsys.siso_tf1c, tsys.siso_ss1d) @@ -416,11 +417,11 @@ def test_sample_system_prewarp_warning(self, tsys, plantname, discretization_typ 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) + 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) + 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) + c2d(plant, Ts, discretization_type, prewarp_frequency=wwarp) def test_sample_system_errors(self, tsys): # Check errors @@ -463,7 +464,7 @@ def test_sample_tf(self, tsys): @pytest.mark.usefixtures("legacy_plot_signature") def test_discrete_bode(self, tsys): - # Create a simple discrete time system and check the calculation + # 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, plot=True) @@ -473,7 +474,7 @@ def test_discrete_bode(self, tsys): 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" + "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) diff --git a/control/tests/docstrings_test.py b/control/tests/docstrings_test.py new file mode 100644 index 000000000..496df42a3 --- /dev/null +++ b/control/tests/docstrings_test.py @@ -0,0 +1,914 @@ +# docstrings_test.py - test for undocumented arguments +# RMM, 28 Jul 2024 +# +# This unit test looks through all functions in the package and attempts to +# identify arguments that are not documented. It will check anything that +# is an explicitly listed argument, as well as attempt to find keyword +# arguments that are extracted using kwargs.pop(), config._get_param(), or +# config.use_legacy_defaults. +# +# This module can also be run in standalone mode: +# +# python docstrings_test.py [verbose] +# +# where 'verbose' is an integer indicating what level of verbosity is +# desired (0 = only warnings/errors, 10 = everything). + +import inspect +import re + +import sys +import warnings + +import numpydoc.docscrape as npd +import pytest + +import control +import control.flatsys +import control.matlab + +# List of functions that we can skip testing (special cases) +function_skiplist = [ + control.ControlPlot.reshape, # needed for legacy interface + control.phase_plot, # legacy function + control.drss, # documention in rss + control.LinearICSystem, # intermediate I/O class + control.LTI, # intermediate I/O class + control.NamedSignal, # internal I/O class + control.TimeResponseList, # internal response class + control.FrequencyResponseList, # internal response class + control.NyquistResponseList, # internal response class + control.PoleZeroList, # internal response class + control.FrequencyResponseData, # check separately (iosys) + control.InterconnectedSystem, # check separately (iosys) + control.flatsys.FlatSystem, # check separately (iosys) +] + +# List of keywords that we can skip testing (special cases) +keyword_skiplist = { + control.input_output_response: ['method', 't_eval'], # solve_ivp_kwargs + control.nyquist_plot: ['color'], # separate check + control.optimal.solve_optimal_trajectory: + ['method', 'return_x'], # deprecated + control.sisotool: ['kvect'], # deprecated + control.nyquist_response: ['return_contour'], # deprecated + control.create_estimator_iosystem: ['state_labels'], # deprecated + control.bode_plot: ['sharex', 'sharey', 'margin_info'], # deprecated + control.eigensys_realization: ['arg'], # quasi-positional + control.find_operating_point: ['method'], # internal use + control.zpk: ['args'], # 'dt' (manual) + control.StateSpace.dynamics: ['params'], # not allowed + control.StateSpace.output: ['params'], # not allowed + control.flatsys.point_to_point: [ + 'method', 'options', # minimize_kwargs + ], + control.flatsys.solve_flat_optimal: [ + 'method', 'options', # minimize_kwargs + ], + control.optimal.OptimalControlProblem: [ + 'method', 'options' # solve_ivp_kwargs, minimize_kwargs + ], + control.optimal.OptimalControlResult: [ + 'return_x', 'return_states', 'transpose'], # legacy + control.optimal.OptimalControlProblem.compute_trajectory: [ + 'return_x', # legacy + ], + control.optimal.OptimalEstimationProblem: [ + 'method', 'options' # solve_ivp_kwargs, minimize_kwargs + ], + control.optimal.OptimalEstimationResult: [ + 'return_x', 'return_states', 'transpose'], # legacy + control.optimal.OptimalEstimationProblem.create_mhe_iosystem: [ + 'inputs', 'outputs', 'states', # doc'd elsewhere + ], +} + +# Set global variables +verbose = 0 # Level of verbosity (use -rP when running pytest) +standalone = False # Controls how failures are treated +max_summary_len = 64 # Maximum length of a summary line + +module_list = [ + (control, ""), (control.flatsys, "flatsys."), + (control.optimal, "optimal."), (control.phaseplot, "phaseplot."), + (control.matlab, "matlab.")] + +@pytest.mark.parametrize("module, prefix", module_list) +def test_parameter_docs(module, prefix): + checked = set() # Keep track of functions we have checked + + # Look through every object in the package + _info(f"Checking module {module}", 0) + for name, obj in inspect.getmembers(module): + if getattr(obj, '__module__', None): + objname = ".".join([obj.__module__.removeprefix("control."), name]) + else: + objname = name + _info(f"Checking object {objname}", 4) + + # Parse the docstring using numpydoc + with warnings.catch_warnings(): + warnings.simplefilter('ignore') # debug via sphinx, not here + doc = None if obj is None else npd.FunctionDoc(obj) + + # 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 + _info(f"member '{objname}' is outside `control` module", 5) + continue + + # Skip non-top-level functions without documentation + if prefix != "" and inspect.getmodule(obj) != module and doc is None: + _info(f"skipping {objname} [no docstring]", 1) + continue + + # If this is a class, recurse through methods + # TODO: check top level documenation here (__init__, attributes?) + if inspect.isclass(obj): + _info(f"Checking class {objname}", 1) + + # Check member functions within the class + test_parameter_docs(obj, prefix + name + '.') + + # Drop through and continue checks as a function + + # Skip anything that is inherited, hidden, or already checked + if not (inspect.isfunction(obj) or inspect.isclass(obj) and + not issubclass(obj, Exception)) or \ + inspect.isclass(module) and name not in module.__dict__ \ + or name.startswith('_') or obj in function_skiplist \ + or obj in checked: + _info(f"skipping {objname} [inherited, hidden, or checked]", 4) + continue + + # Don't fail on non-top-level functions without parameter lists + _info(f"Checking function {objname} against numpydoc", 2) + _check_numpydoc_style(obj, doc) + + # Add this to the list of functions we have checked + checked.add(obj) + + # Get the docstring (skip w/ warning if there isn't one) + _info(f"Checking function {objname} against python-control", 2) + if obj.__doc__ is None: + _warn(f"{objname} is missing docstring", 2) + continue + elif doc is None: + _fail(f"{objname} docstring not parseable", 2) + continue + else: + docstring = inspect.getdoc(obj) + + if inspect.isclass(obj): + # Just check __init__() + source = inspect.getsource(obj.__init__) + else: + source = inspect.getsource(obj) + + # Skip deprecated functions (and check for proper annotation) + doc_extended = "\n".join(doc["Extended Summary"]) + if ".. deprecated::" in doc_extended: + _info(" [deprecated]", 2) + continue + elif re.search(name + r"(\(\))? is deprecated", doc_extended) or \ + "function is deprecated" in doc_extended: + _info(" [deprecated, but not numpydoc compliant]", 2) + _warn(f"{objname} deprecated, but not numpydoc compliant", 0) + continue + elif re.search(name + r"(\(\))? is deprecated", source): + _warn(f"{objname} is deprecated, but not documented", 1) + continue + + # Get the signature for the function + sig = inspect.signature(obj) + + # If first argument is *args, try to use docstring instead + sig = _replace_var_positional_with_docstring(sig, doc) + + # Skip functions whose documentation is found elsewhere + if doc["Parameters"] == [] and re.search( + r"See[\s]+`[\w.]+`[\s]+(for|and)", doc_extended): + _info("skipping {objname}; references another function", 4) + continue + + # Go through each parameter and make sure it is in the docstring + for argname, par in sig.parameters.items(): + # Look for arguments that we can skip + if argname == 'self' or argname[0] == '_' or \ + obj in keyword_skiplist and argname in keyword_skiplist[obj]: + continue + + # Check for positional arguments (*arg) + if par.kind == inspect.Parameter.VAR_POSITIONAL: + if f"*{argname}" not in docstring: + _fail( + f"{objname} has undocumented, unbound positional " + f"argument '{argname}'; " + "use docstring signature instead") + continue + + # Check for keyword arguments (then look at code for parsing) + elif par.kind == inspect.Parameter.VAR_KEYWORD: + # See if we documented the keyward argument directly + # if f"**{argname} :" in docstring: + # continue + + # Look for direct kwargs argument access + kwargnames = set() + for _, kwargname in re.findall( + argname + r"(\[|\.pop\(|\.get\()'([\w]+)'", source): + _info(f"Found direct keyword argument {kwargname}", 2) + if not kwargname.startswith('_'): + kwargnames.add(kwargname) + + # Look for kwargs accessed via _get_param + for kwargname in re.findall( + r"_get_param\(\s*'\w*',\s*'([\w]+)',\s*" + argname, + source): + _info(f"Found config keyword argument {kwargname}", 2) + kwargnames.add(kwargname) + + # Look for kwargs accessed via _process_legacy_keyword + for kwargname in re.findall( + r"_process_legacy_keyword\([\s]*" + argname + + r",[\s]*'[\w]+',[\s]*'([\w]+)'", source): + _info(f"Found legacy keyword argument {kwargname}", 2) + kwargnames.add(kwargname) + + for kwargname in kwargnames: + if obj in keyword_skiplist and \ + kwargname in keyword_skiplist[obj]: + continue + _info(f"Checking keyword argument {kwargname}", 3) + _check_parameter_docs( + name, kwargname, inspect.getdoc(obj), + prefix=prefix) + + # Make sure this argument is documented properly in docstring + else: + _info(f"Checking argument {argname}", 3) + _check_parameter_docs( + objname, argname, docstring, prefix=prefix) + + # Look at the return values + for val in doc["Returns"]: + if val.name == '' and \ + (match := re.search(r"([\w]+):", val.type)) is not None: + retname = match.group(1) + _warn( + f"{obj} return value '{retname}' " + "docstring missing space") + + # Look at the exceptions + for exc in doc["Raises"]: + _check_numpydoc_param( + obj.__name__, exc, noname_ok=True, section="Raises") + + +@pytest.mark.parametrize("module, prefix", [ + (control, ""), (control.flatsys, "flatsys."), + (control.optimal, "optimal."), (control.phaseplot, "phaseplot.") +]) +def test_deprecated_functions(module, prefix): + checked = set() # Keep track of functions we have checked + + # 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') + or prefix != "" and inspect.getmodule(obj) != module): + # Skip anything that isn't part of the control package + continue + + if inspect.isclass(obj): + # Check member functions within the class + test_deprecated_functions(obj, prefix + name + '.') + + # Parse the docstring using numpydoc + with warnings.catch_warnings(): + warnings.simplefilter('ignore') # debug via sphinx, not here + doc = None if obj is None else npd.FunctionDoc(obj) + + if inspect.isfunction(obj): + # Skip anything that is inherited, hidden, or checked + if inspect.isclass(module) and name not in module.__dict__ \ + or name[0] == '_' or obj in checked: + continue + else: + checked.add(obj) + + # Get the docstring (skip w/ warning if there isn't one) + if obj.__doc__ is None: + _warn(f"{obj} is missing docstring") + continue + else: + docstring = inspect.getdoc(obj) + source = inspect.getsource(obj) + + # Look for functions marked as deprecated in doc string + doc_extended = "\n".join(doc["Extended Summary"]) + if ".. deprecated::" in doc_extended: + # Make sure a FutureWarning is issued + if not re.search("FutureWarning", source): + _fail(f"{obj} deprecated but does not issue " + "FutureWarning") + else: + if re.search(name + r"(\(\))? is deprecated", docstring) or \ + re.search(name + r"(\(\))? is deprecated", source): + _fail( + f"{obj} deprecated but with non-standard " + "docs/warnings") + +# +# Tests for I/O system classes +# +# The tests below try to make sure that we document I/O system classes +# and the factory functions that create them in a uniform way. +# + +ct = control +fs = control.flatsys + +# Dictionary of factory functions associated with primary classes +iosys_class_factory_function = { + fs.FlatSystem: fs.flatsys, + ct.FrequencyResponseData: ct.frd, + ct.InterconnectedSystem: ct.interconnect, + ct.LinearICSystem: ct.interconnect, + ct.NonlinearIOSystem: ct.nlsys, + ct.StateSpace: ct.ss, + ct.TransferFunction: ct.tf, +} + +# +# List of arguments described in class docstrings +# +# These are the minimal arguments needed to initialize the class. Optional +# arguments should be documented in the factory functions and do not need +# to be duplicated in the class documentation (=> don't list here). +# +iosys_class_args = { + fs.FlatSystem: ['forward', 'reverse'], + ct.FrequencyResponseData: ['frdata', 'omega', 'dt'], + ct.NonlinearIOSystem: [ + 'updfcn', 'outfcn', 'inputs', 'outputs', 'states', 'params', 'dt'], + ct.StateSpace: ['A', 'B', 'C', 'D', 'dt'], + ct.TransferFunction: ['num', 'den', 'dt'], + ct.InterconnectedSystem: [ + 'syslist', 'connections', 'inplist', 'outlist', 'params'] +} + +# +# List of attributes described in class docstrings +# +# This is the list of attributes for the class that are not already listed +# as parameters used to initialize the class. These should all be defined +# in the class docstring. +# +# Attributes that are part of all I/O system classes should be listed in +# `std_iosys_class_attributes`. Attributes that are not commonly needed are +# defined as part of a parent class can just be documented there, and +# should be listed in `iosys_parent_attributes` (these will be searched +# using the MRO). + +std_iosys_class_attributes = [ + 'ninputs', 'noutputs', 'input_labels', 'output_labels', 'name', 'shape'] + +# List of attributes defined for specific I/O systems +iosys_class_attributes = { + fs.FlatSystem: [], + ct.FrequencyResponseData: [], + ct.NonlinearIOSystem: ['nstates', 'state_labels'], + ct.StateSpace: ['nstates', 'state_labels'], + ct.TransferFunction: [], + ct.InterconnectedSystem: [ + 'connect_map', 'input_map', 'output_map', + 'input_offset', 'output_offset', 'state_offset', 'syslist_index', + 'nstates', 'state_labels' ] +} + +# List of attributes defined in a parent class (no need to warn) +iosys_parent_attributes = [ + 'input_index', 'output_index', 'state_index', # rarely used + 'states', 'nstates', 'state_labels', # not need in TF, FRD + 'params', 'outfcn', 'updfcn', # NL I/O, SS overlap + 'repr_format' # rarely used +] + +# +# List of arguments described (only) in factory function docstrings +# +# These lists consist of the arguments that should be documented in the +# factory functions and should not be duplicated in the class +# documentation, even though in some cases they are actually processed in +# the class __init__ function. +# +std_factory_args = [ + 'inputs', 'outputs', 'name', 'input_prefix', 'output_prefix'] + +factory_args = { + fs.flatsys: ['states', 'state_prefix'], + ct.frd: ['sys'], + ct.nlsys: ['state_prefix'], + ct.ss: ['sys', 'states', 'state_prefix'], + ct.tf: ['sys'], + ct.interconnect: ['dt'] +} + + +@pytest.mark.parametrize( + "cls, fcn, args", + [(cls, iosys_class_factory_function[cls], iosys_class_args[cls]) + for cls in iosys_class_args.keys()]) +def test_iosys_primary_classes(cls, fcn, args): + docstring = inspect.getdoc(cls) + with warnings.catch_warnings(): + warnings.simplefilter('ignore') # debug via sphinx, not here + doc = npd.FunctionDoc(cls) + _check_numpydoc_style(cls, doc) + + # Make sure the typical arguments are there + for argname in args + std_iosys_class_attributes + \ + iosys_class_attributes[cls]: + _check_parameter_docs(cls.__name__, argname, docstring) + + # Make sure we reference the factory function + if re.search( + f"`(~[\\w.]*)*{fcn.__name__}`" + r"[\s]+factory[\s]+function", "\n".join(doc["Extended Summary"]), + re.DOTALL) is None: + _fail( + f"{cls.__name__} summary does not reference factory function " + f"{fcn.__name__}") + + if doc["See Also"] == []: + _fail( + f'{cls.__name__} does not have "See Also" section; ' + f"must include and reference {fcn.__name__}") + else: + found_factory_function = False + for name, _ in doc["See Also"][0][0]: + if name == f"{fcn.__name__}": + found_factory_function = True + break; + if not found_factory_function: + _fail( + f'{cls.__name__} "See Also" section does not reference ' + f"factory function {fcn.__name__}") + + # Make sure we don't reference parameters from the factory function + for argname in factory_args[fcn]: + if re.search(f"[\\s]+{argname}(, .*)*[\\s]*:", docstring) is not None: + _fail( + f"{cls.__name__} references factory function parameter " + f"'{argname}'") + + +@pytest.mark.parametrize("cls", iosys_class_args.keys()) +def test_iosys_attribute_lists(cls, ignore_future_warning): + fcn = iosys_class_factory_function[cls] + + # Create a system that we can scan for attributes + sys = ct.rss(2, 1, 1) + ignore_args = [] + match fcn: + case ct.tf: + sys = ct.tf(sys) + ignore_args = ['state_labels'] + case ct.frd: + sys = ct.frd(sys, [0.1, 1, 10]) + ignore_args = ['state_labels'] + ignore_args += ['fresp', 'response'] # deprecated + case ct.interconnect: + sys = ct.nlsys(sys, name='sys') + sys = ct.interconnect([sys], inplist='sys.u', outlist='sys.y') + case ct.nlsys: + sys = ct.nlsys(sys) + case fs.flatsys: + sys = fs.flatsys(sys) + sys = fs.flatsys(sys.forward, sys.reverse) + + docstring = inspect.getdoc(cls) + for name, value in inspect.getmembers(sys): + if name.startswith('_') or name in ignore_args or \ + inspect.ismethod(value): + # Skip hidden and ignored attributes; methods checked elsewhere + continue + + # Try to find documentation in primary class + if _check_parameter_docs( + cls.__name__, name, docstring, fail_if_missing=False): + continue + + # Couldn't find in main documentation; look in parent classes + for parent in cls.__mro__: + if parent == object: + _fail( + f"{cls.__name__} attribute '{name}' not documented") + break + + if _check_parameter_docs( + parent.__name__, name, inspect.getdoc(parent), + fail_if_missing=False): + if name not in iosys_parent_attributes + factory_args[fcn]: + _warn( + f"{cls.__name__} attribute '{name}' only documented " + f"in parent class {parent.__name__}") + break + + +@pytest.mark.parametrize("cls", [ct.InputOutputSystem, ct.LTI]) +def test_iosys_container_classes(cls): + # Create a system that we can scan for attributes + sys = cls(states=2, outputs=1, inputs=1) + + with warnings.catch_warnings(): + warnings.simplefilter('ignore') # debug via sphinx, not here + doc = npd.FunctionDoc(cls) + _check_numpydoc_style(cls, doc) + + for name, obj in inspect.getmembers(sys): + if name.startswith('_') or inspect.ismethod(obj): + # Skip hidden variables; class methods are checked elsewhere + continue + + # Look through all classes in hierarchy + _info(f"{name=}", 1) + for parent in cls.__mro__: + if parent == object: + _fail( + f"{cls.__name__} attribute '{name}' not documented") + break + + _info(f" {parent=}", 2) + if _check_parameter_docs( + parent.__name__, name, inspect.getdoc(parent), + fail_if_missing=False): + break + + +@pytest.mark.parametrize("cls", [ct.LTI, ct.LinearICSystem]) +def test_iosys_intermediate_classes(cls): + docstring = inspect.getdoc(cls) + with warnings.catch_warnings(): + warnings.simplefilter('ignore') # debug via sphinx, not here + doc = npd.FunctionDoc(cls) + _check_numpydoc_style(cls, doc) + + # Make sure there is not a parameters section + # TODO: replace with numpdoc check + if re.search(r"\nParameters\n----", docstring) is not None: + _fail(f"intermediate {cls} docstring contains Parameters section") + return + + +@pytest.mark.parametrize("fcn", factory_args.keys()) +def test_iosys_factory_functions(fcn): + docstring = inspect.getdoc(fcn) + with warnings.catch_warnings(): + warnings.simplefilter('ignore') # debug via sphinx, not here + doc = npd.FunctionDoc(fcn) + _check_numpydoc_style(fcn, doc) + + cls = list(iosys_class_factory_function.keys())[ + list(iosys_class_factory_function.values()).index(fcn)] + + # Make sure we reference parameters in class and factory function docstring + for argname in iosys_class_args[cls] + std_factory_args + factory_args[fcn]: + _check_parameter_docs(fcn.__name__, argname, docstring) + + # Make sure we don't reference any class attributes + for argname in std_iosys_class_attributes + iosys_class_attributes[cls]: + if argname in std_factory_args: + continue + if re.search(f"[\\s]+{argname}(, .*)*[\\s]*:", docstring) is not None: + _fail( + f"{fcn.__name__} references class attribute '{argname}'") + + +# Utility function to check for an argument in a docstring +def _check_parameter_docs( + funcname, argname, docstring, prefix="", fail_if_missing=True): + funcname = prefix + funcname + + # Find the "Parameters" section of docstring, where we start searching + # TODO: rewrite to use numpydoc + if not (match := re.search(r"\nParameters\n----", docstring)): + if fail_if_missing: + _fail(f"{funcname} docstring missing Parameters section") + return False # for standalone mode + else: + return False + else: + start = match.start() + + # Find the "Returns" section of the docstring (to be skipped, if present) + match_returns = re.search(r"\nReturns\n----", docstring) + + # Find the "Other Parameters" section of the docstring, if present + match_other = re.search(r"\nOther Parameters\n----", docstring) + + # Remove the returns section from docstring, in case output arguments + # match input argument names (it happens...) + if match_other and match_returns: + docstring = docstring[start:match_returns.start()] + \ + docstring[match_other.start():] + elif match_returns: + docstring = docstring[start:match_returns.start()] + else: + docstring = docstring[start:] + + # Look for the parameter name in the docstring + argname_ = argname + r"( \(or .*\))*" + if match := re.search( + "\n" + r"((\w+|\.{3}), )*" + argname_ + r"(, (\w+|\.{3}))*:", + docstring): + # Found the string, but not in numpydoc form + _warn(f"{funcname}: {argname} docstring missing space") + + elif not (match := re.search( + "\n" + r"((\w+|\.{3}), )*" + argname_ + r"(, (\w+|\.{3}))* :", + docstring)): + if fail_if_missing: + _fail(f"{funcname} '{argname}' not documented") + return False # for standalone mode + else: + _info(f"{funcname} '{argname}' not documented (OK)", 6) + return False + + # Make sure there isn't another instance + second_match = re.search( + "\n" + r"((\w+|\.{3}), )*" + argname + r"(, (\w+|\.{3}))*[ ]*:", + docstring[match.end():]) + if second_match: + _fail(f"{funcname} '{argname}' documented twice") + return False # for standalone mode + + return True + + +# Utility function to check numpydoc style consistency +def _check_numpydoc_style(obj, doc): + name = ".".join([obj.__module__.removeprefix("control."), obj.__name__]) + + # Standard checks for all objects + summary = "\n".join(doc["Summary"]) + if len(doc["Summary"]) > 1: + _warn(f"{name} summary is more than one line") + if summary and summary[-1] != '.' and re.match(":$", summary) is None: + _warn(f"{name} summary doesn't end in period") + if summary[0:1].islower(): + _warn(f"{name} summary starts with lower case letter") + if len(summary) > max_summary_len: + _warn(f"{name} summary is longer than {max_summary_len} characters") + + # Look for Python objects that are not marked properly + python_objects = ['True', 'False', 'None'] + for pyobj in python_objects: + for section in ["Extended Summary", "Notes"]: + text = "\n".join(doc[section]) + if re.search(f"`{pyobj}`", text) is not None: + _warn(f"{pyobj} appears in {section} for {name} with backticks") + + control_classes = [ + 'InputOutputSystem', 'NonlinearIOSystem', 'StateSpace', + 'TransferFunction', 'FrequencyResponseData', 'LinearICSystem', + 'Flatsystem', 'InterconnectedSystem', 'TimeResponseData', + 'NyquistResponseData', 'PoleZeroData', 'RootLocusData', + 'ControlPlot', 'OperatingPoint', 'flatsys.Flatsystem'] + for pyobj in control_classes: + if obj.__name__ == pyobj: + continue + for section in ["Extended Summary", "Notes"]: + text = "\n".join(doc[section]) + if re.search(f"[^`]{pyobj}[^`.]", text) is not None: + _warn(f"{pyobj} in {section} for {name} w/o backticks") + + for section in [ + "Parameters", "Returns", "Additional Parameters", "Yields"]: + if section not in doc: + continue + for arg in doc[section]: + text = arg.type + "\n".join(arg.desc) + if re.search(f"(^|[^`]){pyobj}([^`.]|$)", text) is not None: + _warn(f"{pyobj} in {section} for {name} w/o backticks") + + if inspect.isclass(obj): + # Specialized checks for classes + if doc["Returns"] != []: + _fail(f'Class {name} should not have "Returns" section') + + elif inspect.isfunction(obj): + # Specialized checks for functions + if doc["Returns"] == [] and obj.__doc__ and 'return' in obj.__doc__: + _fail(f'Class {name} does not have a "Returns" section') + + else: + raise TypeError("unknown object type for {obj}") + + for param in doc["Parameters"] + doc["Other Parameters"]: + _check_numpydoc_param(name, param, section="Parameters") + for param in doc["Attributes"]: + _check_numpydoc_param(name, param, section="Attributes") + for param in doc["Returns"]: + _check_numpydoc_param( + name, param, empty_ok=True, noname_ok=True, section="Returns") + for param in doc["Yields"]: + _check_numpydoc_param( + name, param, empty_ok=True, noname_ok=True, section="Yields") + + +# Utility function for checking NumPyDoc parametres +def _check_numpydoc_param( + name, param, empty_ok=False, noname_ok=False, section="??"): + param_desc = "\n".join(param.desc) + param_name = f"{name} " + \ + (f" '{param.name}'" if param.name != '' else f" '{param.type}'") + + # Check for empty section + if param.name == "" and param.type == '': + _fail(f"Empty {section} section in {name}") + + # Make sure we have a name and description + if param.name == "" and not noname_ok: + _fail(f"{param_name} has improperly formatted parameter") + return + elif param_desc == "": + if not empty_ok: + _warn(f"{param_name} isn't documented") + return + + # Description should end in a period (colon also allowed) + if re.search(r"\.$|\.[\s]|:$", param_desc, re.MULTILINE) is None: + _warn(f"{param_name} description doesn't contain period") + if param_desc[0:1].islower(): + _warn(f"{param_name} description starts with lower case letter") + + # Look for Python objects that are not marked properly + python_objects = ['True', 'False', 'None'] + for pyobj in python_objects: + if re.search(f"`{pyobj}`", param_desc) is not None: + _warn(f"{pyobj} appears in {param_name} description with backticks") + + +# Utility function to replace positional signature with docstring signature +def _replace_var_positional_with_docstring(sig, doc): + # If no documentation is available, there is nothing we can do... + if doc is None: + return sig + + # Check to see if the first argument is positional + parameter_items = iter(sig.parameters.items()) + try: + argname, par = next(parameter_items) + if par.kind != inspect.Parameter.VAR_POSITIONAL or \ + (signature := doc["Signature"]) == '': + return sig + except StopIteration: + return sig + + # Try parsing the docstring signature + arg_list = [] + while (1): + if (match_fcn := re.match( + r"^([\s]*\|[\s]*)*[\w]+\(", signature)) is None: + break + arg_idx = match_fcn.span(0)[1] + while (1): + match_arg = re.match( + r"[\s]*([\w]+)(,|,\[|\[,|\)|\]\))(,[\s]*|[\s]*[.]{3},[\s]*)*", + signature[arg_idx:]) + if match_arg is None: + break + else: + arg_idx += match_arg.span(0)[1] + arg_list.append(match_arg.group(1)) + signature = signature[arg_idx:] + if arg_list == []: + return sig + + # Create the new parameter list + parameter_list = [ + inspect.Parameter(arg, inspect.Parameter.POSITIONAL_ONLY) + for arg in arg_list] + + # Add any remaining parameters that were in the original signature + for argname, par in parameter_items: + if argname not in arg_list: + parameter_list.append(par) + + # Return the new signature + return sig.replace(parameters=parameter_list) + + +# Utility function to warn with verbose output +def _info(str, level): + if verbose > level: + print(" " * level + str) + +def _warn(str, level=-1): + print("WARN: " + " " * level + str) + if not standalone: + warnings.warn(str, stacklevel=2) + +def _fail(str, level=-1): + if verbose > level: + print("FAIL: " + " " * level + str) + if not standalone: + pytest.fail(str) + +# +# Test function for the unit test +# +class simple_class: + def simple_function(arg1, arg2, opt1=None, **kwargs): + """Simple function for testing.""" + kwargs['test'] = None + +Failed = pytest.fail.Exception + +doc_header = simple_class.simple_function.__doc__ + "\n" +doc_parameters = "\nParameters\n----------\n" +doc_arg1 = "arg1 : int\n Argument 1.\n" +doc_arg2 = "arg2 : int\n Argument 2.\n" +doc_arg2_nospace = "arg2: int\n Argument 2.\n" +doc_arg3 = "arg3 : int\n Non-existent argument 1.\n" +doc_opt1 = "opt1 : int\n Keyword argument 1.\n" +doc_test = "test : int\n Internal keyword argument 1.\n" +doc_returns = "\nReturns\n-------\n" +doc_ret = "out : int\n" +doc_ret_nospace = "out: int\n" + +@pytest.mark.parametrize("docstring, exception, match", [ + (None, UserWarning, "missing docstring"), + (doc_header + doc_parameters + doc_arg1 + doc_arg2 + doc_opt1 + + doc_test + doc_returns + doc_ret, None, ""), + (doc_header + doc_parameters + doc_arg1 + doc_arg2 + doc_opt1 + doc_test, + None, ""), # no return section (OK) + (doc_header + doc_parameters + doc_arg1 + doc_arg2_nospace + doc_opt1 + + doc_test + doc_returns + doc_ret, UserWarning, "missing space"), + (doc_header + doc_parameters + doc_arg1 + doc_opt1 + + doc_test + doc_returns + doc_ret, Failed, "'arg2' not documented"), + (doc_header + doc_parameters + doc_arg1 + doc_arg2 + doc_arg2 + doc_opt1 + + doc_test + doc_returns + doc_ret, Failed, "'arg2' documented twice"), + (doc_header + doc_parameters + doc_arg1 + doc_arg2 + doc_opt1 + + doc_returns + doc_ret, Failed, "'test' not documented"), + (doc_header + doc_parameters + doc_arg1 + doc_arg2_nospace + doc_opt1 + + doc_test + doc_returns + doc_ret_nospace, UserWarning, "missing space"), + (doc_header + doc_returns + doc_ret_nospace, + Failed, "missing Parameters section"), + (doc_header + "\nSee `other_function` for details", None, ""), + (doc_header + "\n.. deprecated::", None, ""), + (doc_header + "\n\n simple_function() is deprecated", + UserWarning, "deprecated, but not numpydoc compliant"), +]) +def test_check_parameter_docs(docstring, exception, match): + simple_class.simple_function.__doc__ = docstring + if exception is None: + # Pass prefix to allow empty parameters to work + assert test_parameter_docs(simple_class, "test") is None + elif exception in [UserWarning]: + with pytest.warns(exception, match=match): + test_parameter_docs(simple_class, "") is None + elif exception in [Failed]: + with pytest.raises(exception, match=match): + test_parameter_docs(simple_class, "") is None + + +if __name__ == "__main__": + verbose = 0 if len(sys.argv) == 1 else int(sys.argv[1]) + standalone = True + + for module, prefix in module_list: + _info(f"--- test_parameter_docs(): {module.__name__} ----", 0) + test_parameter_docs(module, prefix) + + for module, prefix in module_list: + _info(f"--- test_deprecated_functions(): {module.__name__} ----", 0) + test_deprecated_functions + + for cls, fcn, args in [ + (cls, iosys_class_factory_function[cls], iosys_class_args[cls]) + for cls in iosys_class_args.keys()]: + _info(f"--- test_iosys_primary_classes(): {cls.__name__} ----", 0) + test_iosys_primary_classes(cls, fcn, args) + + for cls in iosys_class_args.keys(): + _info(f"--- test_iosys_attribute_lists(): {cls.__name__} ----", 0) + with warnings.catch_warnings(): + warnings.simplefilter('ignore', FutureWarning) + test_iosys_attribute_lists(cls, None) + + for cls in [ct.InputOutputSystem, ct.LTI]: + _info(f"--- test_iosys_container_classes(): {cls.__name__} ----", 0) + test_iosys_container_classes(cls) + + for cls in [ct.LTI, ct.LinearICSystem]: + _info(f"--- test_iosys_intermediate_classes(): {cls.__name__} ----", 0) + test_iosys_intermediate_classes(cls) + + for fcn in factory_args.keys(): + _info(f"--- test_iosys_factory_functions(): {fcn.__name__} ----", 0) + test_iosys_factory_functions(fcn) diff --git a/control/tests/flatsys_test.py b/control/tests/flatsys_test.py index a12bf1480..c53cf2e9c 100644 --- a/control/tests/flatsys_test.py +++ b/control/tests/flatsys_test.py @@ -198,9 +198,10 @@ def test_kinematic_car_ocp( with warnings.catch_warnings(): warnings.filterwarnings( 'ignore', message="unable to solve", category=UserWarning) - traj_ocp = fs.solve_flat_ocp( + traj_ocp = fs.solve_flat_optimal( vehicle_flat, timepts, x0, u0, - cost=traj_cost, constraints=input_constraints, + trajectory_cost=traj_cost, + trajectory_constraints=input_constraints, terminal_cost=terminal_cost, basis=basis, initial_guess=initial_guess, minimize_kwargs={'method': method}, @@ -383,7 +384,7 @@ def test_flat_solve_ocp(self, basis): terminal_cost = opt.quadratic_cost( flat_sys, 1e3, 1e3, x0=xf, u0=uf) - traj_cost = fs.solve_flat_ocp( + traj_cost = fs.solve_flat_optimal( flat_sys, timepts, x0, u0, terminal_cost=terminal_cost, basis=basis) @@ -397,7 +398,7 @@ def test_flat_solve_ocp(self, basis): # 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( + traj_cost = fs.solve_flat_optimal( flat_sys, timepts, x0, u0, terminal_cost=terminal_cost, trajectory_cost=trajectory_cost, basis=basis) @@ -420,7 +421,7 @@ def test_flat_solve_ocp(self, basis): 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( + traj_const = fs.solve_flat_optimal( flat_sys, timepts, x0, u0, terminal_cost=terminal_cost, trajectory_cost=trajectory_cost, trajectory_constraints=constraints, basis=basis, @@ -443,15 +444,38 @@ def test_flat_solve_ocp(self, basis): # Use alternative keywords as well nl_constraints = [ (sp.optimize.NonlinearConstraint, lambda x, u: x, lb, ub)] - traj_nlconst = fs.solve_flat_ocp( + traj_nlconst = fs.solve_flat_optimal( flat_sys, timepts, x0, u0, - cost=trajectory_cost, terminal_cost=terminal_cost, - constraints=nl_constraints, basis=basis, + trajectory_cost=trajectory_cost, terminal_cost=terminal_cost, + trajectory_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_solve_flat_ocp_scalar_timepts(self): + # scalar timepts gives expected result + f = fs.LinearFlatSystem(ct.ss(ct.tf([1],[1,1]))) + + def terminal_cost(x, u): + return (x-5).dot(x-5)+u.dot(u) + + traj1 = fs.solve_flat_ocp(f, [0, 1], x0=[23], + terminal_cost=terminal_cost) + + traj2 = fs.solve_flat_ocp(f, 1, x0=[23], + terminal_cost=terminal_cost) + + teval = np.linspace(0, 1, 101) + + r1 = traj1.response(teval) + r2 = traj2.response(teval) + + np.testing.assert_array_equal(r1.x, r2.x) + np.testing.assert_array_equal(r1.y, r2.y) + np.testing.assert_array_equal(r1.u, r2.u) + + def test_bezier_basis(self): bezier = fs.BezierFamily(4) time = np.linspace(0, 1, 100) @@ -519,7 +543,6 @@ def test_point_to_point_errors(self): 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) @@ -595,6 +618,11 @@ def test_point_to_point_errors(self): flat_sys, timepts, x0, u0, xf, uf, constraints=[(None, 0, 0, 0)], basis=fs.PolyFamily(8)) + # too few timepoints + with pytest.raises(ct.ControlArgument, match="at least three time points"): + fs.point_to_point( + flat_sys, timepts[:2], x0, u0, xf, uf, basis=fs.PolyFamily(10), cost=cost_fcn) + # Unsolvable optimization constraint = [opt.input_range_constraint(flat_sys, -0.01, 0.01)] with pytest.warns(UserWarning, match="unable to solve"): @@ -629,7 +657,6 @@ def test_solve_flat_ocp_errors(self): 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) @@ -639,7 +666,7 @@ def test_solve_flat_ocp_errors(self): # 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) + traj = fs.solve_flat_optimal(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: @@ -652,40 +679,41 @@ def test_solve_flat_ocp_errors(self): # 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) + traj = fs.solve_flat_optimal(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, + traj = fs.solve_flat_optimal( + flat_sys, timepts, x0, u0, trajectory_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( + traj = fs.solve_flat_optimal( flat_sys, timepts, np.zeros(3), u0, cost_fcn) with pytest.raises(ValueError, match="Initial input: Wrong shape"): - traj = fs.solve_flat_ocp( + traj = fs.solve_flat_optimal( 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( + traj = fs.solve_flat_optimal( flat_sys, timepts, x0, u0, cost_fcn, - constraints=np.eye(2), basis=fs.PolyFamily(8)) + trajectory_constraints=np.eye(2), basis=fs.PolyFamily(8)) # Unknown constraint type with pytest.raises(TypeError, match="unknown constraint type"): - traj = fs.solve_flat_ocp( + traj = fs.solve_flat_optimal( flat_sys, timepts, x0, u0, cost_fcn, - constraints=[(None, 0, 0, 0)], basis=fs.PolyFamily(8)) + trajectory_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, + traj_method = fs.solve_flat_optimal( + flat_sys, timepts, x0, u0, trajectory_cost=cost_fcn, basis=fs.PolyFamily(6), minimize_method='slsqp') - traj_kwarg = fs.solve_flat_ocp( - flat_sys, timepts, x0, u0, cost=cost_fcn, + traj_kwarg = fs.solve_flat_optimal( + flat_sys, timepts, x0, u0, trajectory_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], @@ -693,7 +721,7 @@ def test_solve_flat_ocp_errors(self): # Unrecognized keywords with pytest.raises(TypeError, match="unrecognized keyword"): - traj_method = fs.solve_flat_ocp( + traj_method = fs.solve_flat_optimal( flat_sys, timepts, x0, u0, cost_fcn, solve_ivp_method=None) @pytest.mark.parametrize( diff --git a/control/tests/frd_test.py b/control/tests/frd_test.py index 987121987..1b370c629 100644 --- a/control/tests/frd_test.py +++ b/control/tests/frd_test.py @@ -3,8 +3,6 @@ RvP, 4 Oct 2012 """ -import sys as pysys - import numpy as np import matplotlib.pyplot as plt import pytest @@ -12,8 +10,8 @@ import control as ct from control.statesp import StateSpace from control.xferfcn import TransferFunction -from control.frdata import FRD, _convert_to_FRD, FrequencyResponseData -from control import bdalg, evalfr, freqplot +from control.frdata import frd, _convert_to_frd, FrequencyResponseData +from control import bdalg, freqplot from control.tests.conftest import slycotonly from control.exception import pandas_check @@ -25,35 +23,39 @@ class TestFRD: def testBadInputType(self): """Give the constructor invalid input types.""" with pytest.raises(ValueError): - FRD() + frd() with pytest.raises(TypeError): - FRD([1]) + frd([1]) def testInconsistentDimension(self): with pytest.raises(TypeError): - FRD([1, 1], [1, 2, 3]) + frd([1, 1], [1, 2, 3]) - def testSISOtf(self): + @pytest.mark.parametrize( + "frd_fcn", [ct.frd, ct.FRD, ct.FrequencyResponseData]) + def testSISOtf(self, frd_fcn): # get a SISO transfer function h = TransferFunction([1], [1, 2, 2]) omega = np.logspace(-1, 2, 10) - frd = FRD(h, omega) - assert isinstance(frd, FRD) + sys = frd_fcn(h, omega) + assert isinstance(sys, FrequencyResponseData) - mag1, phase1, omega1 = frd.frequency_response([1.0]) + mag1, phase1, omega1 = sys.frequency_response([1.0]) mag2, phase2, omega2 = h.frequency_response([1.0]) np.testing.assert_array_almost_equal(mag1, mag2) np.testing.assert_array_almost_equal(phase1, phase2) np.testing.assert_array_almost_equal(omega1, omega2) - def testOperators(self): + @pytest.mark.parametrize( + "frd_fcn", [ct.frd, ct.FRD, ct.FrequencyResponseData]) + def testOperators(self, frd_fcn): # 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) + f1 = frd_fcn(h1, omega) + f2 = frd_fcn(h2, omega) np.testing.assert_array_almost_equal( (f1 + f2).frequency_response(chkpts)[0], @@ -90,14 +92,16 @@ def testOperators(self): (1.3 / f2).frequency_response(chkpts)[1], (1.3 / h2).frequency_response(chkpts)[1]) - def testOperatorsTf(self): + @pytest.mark.parametrize( + "frd_fcn", [ct.frd, ct.FRD, ct.FrequencyResponseData]) + def testOperatorsTf(self, frd_fcn): # 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) + f1 = frd_fcn(h1, omega) + f2 = frd_fcn(h2, omega) f2 # reference to avoid pyflakes error np.testing.assert_array_almost_equal( @@ -121,14 +125,16 @@ def testOperatorsTf(self): (h1 / h2).frequency_response(chkpts)[1]) # the reverse does not work - def testbdalg(self): + @pytest.mark.parametrize( + "frd_fcn", [ct.frd, ct.FRD, ct.FrequencyResponseData]) + def testbdalg(self, frd_fcn): # 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) + f1 = frd_fcn(h1, omega) + f2 = frd_fcn(h2, omega) np.testing.assert_array_almost_equal( (bdalg.series(f1, f2)).frequency_response(chkpts)[0], @@ -158,11 +164,13 @@ def testbdalg(self): # (bdalg.connect(f3, Q, [2], [1])).frequency_response(chkpts)[0], # (bdalg.connect(h3, Q, [2], [1])).frequency_response(chkpts)[0]) - def testFeedback(self): + @pytest.mark.parametrize( + "frd_fcn", [ct.frd, ct.FRD, ct.FrequencyResponseData]) + def testFeedback(self, frd_fcn): h1 = TransferFunction([1], [1, 2, 2]) omega = np.logspace(-1, 2, 10) chkpts = omega[::3] - f1 = FRD(h1, omega) + f1 = frd_fcn(h1, omega) np.testing.assert_array_almost_equal( f1.feedback(1).frequency_response(chkpts)[0], h1.feedback(1).frequency_response(chkpts)[0]) @@ -172,37 +180,87 @@ def testFeedback(self): 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]], - [[1.0, 0], [0, 1]], [[0.0], [0.0]]) - # h2.feedback([[0.3, 0.2], [0.1, 0.1]]) + def testAppendSiso(self): + # Create frequency responses + d1 = np.array([1 + 2j, 1 - 2j, 1 + 4j, 1 - 4j, 1 + 6j, 1 - 6j]) + d2 = d1 + 2 + d3 = d1 - 1j + w = np.arange(d1.shape[-1]) + frd1 = FrequencyResponseData(d1, w) + frd2 = FrequencyResponseData(d2, w) + frd3 = FrequencyResponseData(d3, w) + # Create appended frequency responses + d_app_1 = np.zeros((2, 2, d1.shape[-1]), dtype=complex) + d_app_1[0, 0, :] = d1 + d_app_1[1, 1, :] = d2 + d_app_2 = np.zeros((3, 3, d1.shape[-1]), dtype=complex) + d_app_2[0, 0, :] = d1 + d_app_2[1, 1, :] = d2 + d_app_2[2, 2, :] = d3 + # Test appending two FRDs + frd_app_1 = frd1.append(frd2) + np.testing.assert_allclose(d_app_1, frd_app_1.frdata) + # Test appending three FRDs + frd_app_2 = frd1.append(frd2).append(frd3) + np.testing.assert_allclose(d_app_2, frd_app_2.frdata) + + def testAppendMimo(self): + # Create frequency responses + rng = np.random.default_rng(1234) + n = 100 + w = np.arange(n) + d1 = rng.uniform(size=(2, 2, n)) + 1j * rng.uniform(size=(2, 2, n)) + d2 = rng.uniform(size=(3, 1, n)) + 1j * rng.uniform(size=(3, 1, n)) + d3 = rng.uniform(size=(1, 2, n)) + 1j * rng.uniform(size=(1, 2, n)) + frd1 = FrequencyResponseData(d1, w) + frd2 = FrequencyResponseData(d2, w) + frd3 = FrequencyResponseData(d3, w) + # Create appended frequency responses + d_app_1 = np.zeros((5, 3, d1.shape[-1]), dtype=complex) + d_app_1[:2, :2, :] = d1 + d_app_1[2:, 2:, :] = d2 + d_app_2 = np.zeros((6, 5, d1.shape[-1]), dtype=complex) + d_app_2[:2, :2, :] = d1 + d_app_2[2:5, 2:3, :] = d2 + d_app_2[5:, 3:, :] = d3 + # Test appending two FRDs + frd_app_1 = frd1.append(frd2) + np.testing.assert_allclose(d_app_1, frd_app_1.frdata) + # Test appending three FRDs + frd_app_2 = frd1.append(frd2).append(frd3) + np.testing.assert_allclose(d_app_2, frd_app_2.frdata) def testAuto(self): omega = np.logspace(-1, 2, 10) - f1 = _convert_to_FRD(1, omega) - f2 = _convert_to_FRD(np.array([[1, 0], [0.1, -1]]), omega) - f2 = _convert_to_FRD([[1, 0], [0.1, -1]], omega) + f1 = _convert_to_frd(1, omega) + f2 = _convert_to_frd(np.array([[1, 0], [0.1, -1]]), omega) + f2 = _convert_to_frd([[1, 0], [0.1, -1]], omega) f1, f2 # reference to avoid pyflakes error - def testNyquist(self): + @pytest.mark.parametrize( + "frd_fcn", [ct.frd, ct.FRD, ct.FrequencyResponseData]) + def testNyquist(self, frd_fcn): h1 = TransferFunction([1], [1, 2, 2]) omega = np.logspace(-1, 2, 40) - f1 = FRD(h1, omega, smooth=True) + f1 = frd_fcn(h1, omega, smooth=True) freqplot.nyquist(f1, np.logspace(-1, 2, 100)) # plt.savefig('/dev/null', format='svg') plt.figure(2) freqplot.nyquist(f1, f1.omega) + plt.figure(3) + freqplot.nyquist(f1) # plt.savefig('/dev/null', format='svg') - @slycotonly - def testMIMO(self): + @pytest.mark.parametrize( + "frd_fcn", [ct.frd, ct.FRD, ct.FrequencyResponseData]) + def testMIMO(self, frd_fcn): sys = StateSpace([[-0.5, 0.0], [0.0, -1.0]], [[1.0, 0.0], [0.0, 1.0]], [[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) + f1 = frd_fcn(sys, omega) np.testing.assert_array_almost_equal( sys.frequency_response(chkpts)[0], f1.frequency_response(chkpts)[0]) @@ -210,16 +268,17 @@ def testMIMO(self): sys.frequency_response(chkpts)[1], f1.frequency_response(chkpts)[1]) - @slycotonly - def testMIMOfb(self): + @pytest.mark.parametrize( + "frd_fcn", [ct.frd, ct.FRD, ct.FrequencyResponseData]) + def testMIMOfb(self, frd_fcn): sys = StateSpace([[-0.5, 0.0], [0.0, -1.0]], [[1.0, 0.0], [0.0, 1.0]], [[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) + f1 = frd_fcn(sys, omega).feedback([[0.1, 0.3], [0.0, 1.0]]) + f2 = frd_fcn(sys.feedback([[0.1, 0.3], [0.0, 1.0]]), omega) np.testing.assert_array_almost_equal( f1.frequency_response(chkpts)[0], f2.frequency_response(chkpts)[0]) @@ -227,8 +286,9 @@ def testMIMOfb(self): f1.frequency_response(chkpts)[1], f2.frequency_response(chkpts)[1]) - @slycotonly - def testMIMOfb2(self): + @pytest.mark.parametrize( + "frd_fcn", [ct.frd, ct.FRD, ct.FrequencyResponseData]) + def testMIMOfb2(self, frd_fcn): sys = StateSpace(np.array([[-2.0, 0, 0], [0, -1, 1], [0, 0, -3]]), @@ -237,8 +297,8 @@ def testMIMOfb2(self): 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) + f1 = frd_fcn(sys, omega).feedback(K) + f2 = frd_fcn(sys.feedback(K), omega) np.testing.assert_array_almost_equal( f1.frequency_response(chkpts)[0], f2.frequency_response(chkpts)[0]) @@ -246,16 +306,17 @@ def testMIMOfb2(self): f1.frequency_response(chkpts)[1], f2.frequency_response(chkpts)[1]) - @slycotonly - def testMIMOMult(self): + @pytest.mark.parametrize( + "frd_fcn", [ct.frd, ct.FRD, ct.FrequencyResponseData]) + def testMIMOMult(self, frd_fcn): sys = StateSpace([[-0.5, 0.0], [0.0, -1.0]], [[1.0, 0.0], [0.0, 1.0]], [[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) + f1 = frd_fcn(sys, omega) + f2 = frd_fcn(sys, omega) np.testing.assert_array_almost_equal( (f1*f2).frequency_response(chkpts)[0], (sys*sys).frequency_response(chkpts)[0]) @@ -263,8 +324,9 @@ def testMIMOMult(self): (f1*f2).frequency_response(chkpts)[1], (sys*sys).frequency_response(chkpts)[1]) - @slycotonly - def testMIMOSmooth(self): + @pytest.mark.parametrize( + "frd_fcn", [ct.frd, ct.FRD, ct.FrequencyResponseData]) + def testMIMOSmooth(self, frd_fcn): sys = StateSpace([[-0.5, 0.0], [0.0, -1.0]], [[1.0, 0.0], [0.0, 1.0]], [[1.0, 0.0], [0.0, 1.0], [1.0, 1.0]], @@ -272,8 +334,8 @@ def testMIMOSmooth(self): 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) + f1 = frd_fcn(sys, omega, smooth=True) + f2 = frd_fcn(sys2, omega, smooth=True) np.testing.assert_array_almost_equal( (f1*f2).frequency_response(chkpts)[0], (sys*sys2).frequency_response(chkpts)[0]) @@ -293,125 +355,345 @@ 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) + f1 = frd(sys, omega) np.testing.assert_array_almost_equal( (f1.frequency_response([1.0])[0] * np.exp(1j * f1.frequency_response([1.0])[1])).reshape(3, 2), np.array([[0.4 - 0.2j, 0], [0, 0.1 - 0.2j], [0, 0.3 - 0.1j]])) def test_string_representation(self, capsys): - sys = FRD([1, 2, 3], [4, 5, 6]) + sys = frd([1, 2, 3], [4, 5, 6]) print(sys) # Just print without checking def test_frequency_mismatch(self, recwarn): # recwarn: there may be a warning before the error! # Overlapping but non-equal frequency ranges - sys1 = FRD([1, 2, 3], [4, 5, 6]) - sys2 = FRD([2, 3, 4], [5, 6, 7]) + sys1 = frd([1, 2, 3], [4, 5, 6]) + sys2 = frd([2, 3, 4], [5, 6, 7]) with pytest.raises(NotImplementedError): - FRD.__add__(sys1, sys2) + sys1 + sys2 # One frequency range is a subset of another - sys1 = FRD([1, 2, 3], [4, 5, 6]) - sys2 = FRD([2, 3], [4, 5]) + sys1 = frd([1, 2, 3], [4, 5, 6]) + sys2 = frd([2, 3], [4, 5]) with pytest.raises(NotImplementedError): - FRD.__add__(sys1, sys2) + sys1 + sys2 def test_size_mismatch(self): - sys1 = FRD(ct.rss(2, 2, 2), np.logspace(-1, 1, 10)) + sys1 = frd(ct.rss(2, 2, 2), np.logspace(-1, 1, 10)) # Different number of inputs - sys2 = FRD(ct.rss(3, 1, 2), np.logspace(-1, 1, 10)) + sys2 = frd(ct.rss(3, 1, 2), np.logspace(-1, 1, 10)) with pytest.raises(ValueError): - FRD.__add__(sys1, sys2) + sys1 + sys2 # Different number of outputs - sys2 = FRD(ct.rss(3, 2, 1), np.logspace(-1, 1, 10)) + sys2 = frd(ct.rss(3, 2, 1), np.logspace(-1, 1, 10)) with pytest.raises(ValueError): - FRD.__add__(sys1, sys2) + sys1 + sys2 # Inputs and outputs don't match with pytest.raises(ValueError): - FRD.__mul__(sys2, sys1) + sys2 * sys1 # Feedback mismatch with pytest.raises(ValueError): - FRD.feedback(sys2, sys1) + ct.feedback(sys2, sys1) def test_operator_conversion(self): sys_tf = ct.tf([1], [1, 2, 1]) - frd_tf = FRD(sys_tf, np.logspace(-1, 1, 10)) - frd_2 = FRD(2 * np.ones(10), np.logspace(-1, 1, 10)) + frd_tf = frd(sys_tf, np.logspace(-1, 1, 10)) + frd_2 = frd(2 * np.ones(10), np.logspace(-1, 1, 10)) # Make sure that we can add, multiply, and feedback constants sys_add = frd_tf + 2 chk_add = frd_tf + frd_2 np.testing.assert_array_almost_equal(sys_add.omega, chk_add.omega) - np.testing.assert_array_almost_equal(sys_add.fresp, chk_add.fresp) + np.testing.assert_array_almost_equal(sys_add.frdata, chk_add.frdata) sys_radd = 2 + frd_tf chk_radd = frd_2 + frd_tf np.testing.assert_array_almost_equal(sys_radd.omega, chk_radd.omega) - np.testing.assert_array_almost_equal(sys_radd.fresp, chk_radd.fresp) + np.testing.assert_array_almost_equal(sys_radd.frdata, chk_radd.frdata) sys_sub = frd_tf - 2 chk_sub = frd_tf - frd_2 np.testing.assert_array_almost_equal(sys_sub.omega, chk_sub.omega) - np.testing.assert_array_almost_equal(sys_sub.fresp, chk_sub.fresp) + np.testing.assert_array_almost_equal(sys_sub.frdata, chk_sub.frdata) sys_rsub = 2 - frd_tf chk_rsub = frd_2 - frd_tf np.testing.assert_array_almost_equal(sys_rsub.omega, chk_rsub.omega) - np.testing.assert_array_almost_equal(sys_rsub.fresp, chk_rsub.fresp) + np.testing.assert_array_almost_equal(sys_rsub.frdata, chk_rsub.frdata) sys_mul = frd_tf * 2 chk_mul = frd_tf * frd_2 np.testing.assert_array_almost_equal(sys_mul.omega, chk_mul.omega) - np.testing.assert_array_almost_equal(sys_mul.fresp, chk_mul.fresp) + np.testing.assert_array_almost_equal(sys_mul.frdata, chk_mul.frdata) sys_rmul = 2 * frd_tf chk_rmul = frd_2 * frd_tf np.testing.assert_array_almost_equal(sys_rmul.omega, chk_rmul.omega) - np.testing.assert_array_almost_equal(sys_rmul.fresp, chk_rmul.fresp) + np.testing.assert_array_almost_equal(sys_rmul.frdata, chk_rmul.frdata) sys_rdiv = 2 / frd_tf chk_rdiv = frd_2 / frd_tf np.testing.assert_array_almost_equal(sys_rdiv.omega, chk_rdiv.omega) - np.testing.assert_array_almost_equal(sys_rdiv.fresp, chk_rdiv.fresp) + np.testing.assert_array_almost_equal(sys_rdiv.frdata, chk_rdiv.frdata) sys_pow = frd_tf**2 - chk_pow = FRD(sys_tf**2, np.logspace(-1, 1, 10)) + chk_pow = frd(sys_tf**2, np.logspace(-1, 1, 10)) np.testing.assert_array_almost_equal(sys_pow.omega, chk_pow.omega) - np.testing.assert_array_almost_equal(sys_pow.fresp, chk_pow.fresp) + np.testing.assert_array_almost_equal(sys_pow.frdata, chk_pow.frdata) sys_pow = frd_tf**-2 - chk_pow = FRD(sys_tf**-2, np.logspace(-1, 1, 10)) + chk_pow = frd(sys_tf**-2, np.logspace(-1, 1, 10)) np.testing.assert_array_almost_equal(sys_pow.omega, chk_pow.omega) - np.testing.assert_array_almost_equal(sys_pow.fresp, chk_pow.fresp) + np.testing.assert_array_almost_equal(sys_pow.frdata, chk_pow.frdata) # Assertion error if we try to raise to a non-integer power with pytest.raises(ValueError): - FRD.__pow__(frd_tf, 0.5) + frd_tf**0.5 # Selected testing on transfer function conversion sys_add = frd_2 + sys_tf chk_add = frd_2 + frd_tf np.testing.assert_array_almost_equal(sys_add.omega, chk_add.omega) - np.testing.assert_array_almost_equal(sys_add.fresp, chk_add.fresp) - - # Input/output mismatch size mismatch in rmul - sys1 = FRD(ct.rss(2, 2, 2), np.logspace(-1, 1, 10)) + np.testing.assert_array_almost_equal(sys_add.frdata, chk_add.frdata) + + # Test broadcasting with SISO system + sys_tf_mimo = TransferFunction([1], [1, 0]) * np.eye(2) + frd_tf_mimo = frd(sys_tf_mimo, np.logspace(-1, 1, 10)) + result = FrequencyResponseData.__rmul__(frd_tf, frd_tf_mimo) + expected = frd(sys_tf_mimo * sys_tf, np.logspace(-1, 1, 10)) + np.testing.assert_array_almost_equal(expected.omega, result.omega) + np.testing.assert_array_almost_equal(expected.frdata, result.frdata) + + # Input/output mismatch size mismatch in rmul + sys1 = frd(ct.rss(2, 2, 2), np.logspace(-1, 1, 10)) + sys2 = frd(ct.rss(3, 3, 3), np.logspace(-1, 1, 10)) with pytest.raises(ValueError): - FRD.__rmul__(frd_2, sys1) + FrequencyResponseData.__rmul__(sys2, sys1) # Make sure conversion of something random generates exception with pytest.raises(TypeError): - FRD.__add__(frd_tf, 'string') + FrequencyResponseData.__add__(frd_tf, 'string') + + def test_add_sub_mimo_siso(self): + omega = np.logspace(-1, 1, 10) + sys_mimo = frd(ct.rss(2, 2, 2), omega) + sys_siso = frd(ct.rss(2, 1, 1), omega) + + for op, expected_fresp in [ + (FrequencyResponseData.__add__, sys_mimo.frdata + sys_siso.frdata), + (FrequencyResponseData.__radd__, sys_mimo.frdata + sys_siso.frdata), + (FrequencyResponseData.__sub__, sys_mimo.frdata - sys_siso.frdata), + (FrequencyResponseData.__rsub__, -sys_mimo.frdata + sys_siso.frdata), + ]: + result = op(sys_mimo, sys_siso) + np.testing.assert_array_almost_equal(omega, result.omega) + np.testing.assert_array_almost_equal(expected_fresp, result.frdata) + + @pytest.mark.parametrize( + "left, right, expected", + [ + ( + TransferFunction([2], [1, 0]), + TransferFunction( + [ + [[2], [1]], + [[-1], [4]], + ], + [ + [[10, 1], [20, 1]], + [[20, 1], [30, 1]], + ], + ), + TransferFunction( + [ + [[4], [2]], + [[-2], [8]], + ], + [ + [[10, 1, 0], [20, 1, 0]], + [[20, 1, 0], [30, 1, 0]], + ], + ), + ), + ( + TransferFunction( + [ + [[2], [1]], + [[-1], [4]], + ], + [ + [[10, 1], [20, 1]], + [[20, 1], [30, 1]], + ], + ), + TransferFunction([2], [1, 0]), + TransferFunction( + [ + [[4], [2]], + [[-2], [8]], + ], + [ + [[10, 1, 0], [20, 1, 0]], + [[20, 1, 0], [30, 1, 0]], + ], + ), + ), + ( + TransferFunction([2], [1, 0]), + np.eye(3), + TransferFunction( + [ + [[2], [0], [0]], + [[0], [2], [0]], + [[0], [0], [2]], + ], + [ + [[1, 0], [1], [1]], + [[1], [1, 0], [1]], + [[1], [1], [1, 0]], + ], + ), + ), + ] + ) + def test_mul_mimo_siso(self, left, right, expected): + result = frd(left, np.logspace(-1, 1, 10)).__mul__(right) + expected_frd = frd(expected, np.logspace(-1, 1, 10)) + np.testing.assert_array_almost_equal(expected_frd.omega, result.omega) + np.testing.assert_array_almost_equal(expected_frd.frdata, result.frdata) + + @slycotonly + def test_truediv_mimo_siso(self): + omega = np.logspace(-1, 1, 10) + tf_mimo = TransferFunction([1], [1, 0]) * np.eye(2) + frd_mimo = frd(tf_mimo, omega) + tf_siso = TransferFunction([1], [1, 1]) + frd_siso = frd(tf_siso, omega) + expected = frd(tf_mimo.__truediv__(tf_siso), omega) + ss_siso = ct.tf2ss(tf_siso) + + # Test division of MIMO FRD by SISO FRD + result = frd_mimo.__truediv__(frd_siso) + np.testing.assert_array_almost_equal(expected.omega, result.omega) + np.testing.assert_array_almost_equal(expected.frdata, result.frdata) + + # Test division of MIMO FRD by SISO TF + result = frd_mimo.__truediv__(tf_siso) + np.testing.assert_array_almost_equal(expected.omega, result.omega) + np.testing.assert_array_almost_equal(expected.frdata, result.frdata) + + # Test division of MIMO FRD by SISO TF + result = frd_mimo.__truediv__(ss_siso) + np.testing.assert_array_almost_equal(expected.omega, result.omega) + np.testing.assert_array_almost_equal(expected.frdata, result.frdata) + + @slycotonly + def test_rtruediv_mimo_siso(self): + omega = np.logspace(-1, 1, 10) + tf_mimo = TransferFunction([1], [1, 0]) * np.eye(2) + frd_mimo = frd(tf_mimo, omega) + ss_mimo = ct.tf2ss(tf_mimo) + tf_siso = TransferFunction([1], [1, 1]) + frd_siso = frd(tf_siso, omega) + expected = frd(tf_siso.__rtruediv__(tf_mimo), omega) + + # Test division of MIMO FRD by SISO FRD + result = frd_siso.__rtruediv__(frd_mimo) + np.testing.assert_array_almost_equal(expected.omega, result.omega) + np.testing.assert_array_almost_equal(expected.frdata, result.frdata) + + # Test division of MIMO TF by SISO FRD + result = frd_siso.__rtruediv__(tf_mimo) + np.testing.assert_array_almost_equal(expected.omega, result.omega) + np.testing.assert_array_almost_equal(expected.frdata, result.frdata) + + # Test division of MIMO SS by SISO FRD + result = frd_siso.__rtruediv__(ss_mimo) + np.testing.assert_array_almost_equal(expected.omega, result.omega) + np.testing.assert_array_almost_equal(expected.frdata, result.frdata) + + + @pytest.mark.parametrize( + "left, right, expected", + [ + ( + TransferFunction([2], [1, 0]), + TransferFunction( + [ + [[2], [1]], + [[-1], [4]], + ], + [ + [[10, 1], [20, 1]], + [[20, 1], [30, 1]], + ], + ), + TransferFunction( + [ + [[4], [2]], + [[-2], [8]], + ], + [ + [[10, 1, 0], [20, 1, 0]], + [[20, 1, 0], [30, 1, 0]], + ], + ), + ), + ( + TransferFunction( + [ + [[2], [1]], + [[-1], [4]], + ], + [ + [[10, 1], [20, 1]], + [[20, 1], [30, 1]], + ], + ), + TransferFunction([2], [1, 0]), + TransferFunction( + [ + [[4], [2]], + [[-2], [8]], + ], + [ + [[10, 1, 0], [20, 1, 0]], + [[20, 1, 0], [30, 1, 0]], + ], + ), + ), + ( + np.eye(3), + TransferFunction([2], [1, 0]), + TransferFunction( + [ + [[2], [0], [0]], + [[0], [2], [0]], + [[0], [0], [2]], + ], + [ + [[1, 0], [1], [1]], + [[1], [1, 0], [1]], + [[1], [1], [1, 0]], + ], + ), + ), + ] + ) + def test_rmul_mimo_siso(self, left, right, expected): + result = frd(right, np.logspace(-1, 1, 10)).__rmul__(left) + expected_frd = frd(expected, np.logspace(-1, 1, 10)) + np.testing.assert_array_almost_equal(expected_frd.omega, result.omega) + np.testing.assert_array_almost_equal(expected_frd.frdata, result.frdata) def test_eval(self): sys_tf = ct.tf([1], [1, 2, 1]) - frd_tf = FRD(sys_tf, np.logspace(-1, 1, 3)) + frd_tf = frd(sys_tf, np.logspace(-1, 1, 3)) np.testing.assert_almost_equal(sys_tf(1j), frd_tf.eval(1)) np.testing.assert_almost_equal(sys_tf(1j), frd_tf(1j)) @@ -429,66 +711,89 @@ def test_eval(self): def test_freqresp_deprecated(self): sys_tf = ct.tf([1], [1, 2, 1]) - frd_tf = FRD(sys_tf, np.logspace(-1, 1, 3)) - with pytest.warns(DeprecationWarning): + frd_tf = frd(sys_tf, np.logspace(-1, 1, 3)) + with pytest.warns(FutureWarning): frd_tf.freqresp(1.) + with pytest.warns(FutureWarning, match="use complex"): + np.testing.assert_equal(frd_tf.response, frd_tf.complex) + + with pytest.warns(FutureWarning, match="use frdata"): + np.testing.assert_equal(frd_tf.fresp, frd_tf.frdata) + def test_repr_str(self): # repr printing array = np.array - sys0 = FrequencyResponseData([1.0, 0.9+0.1j, 0.1+2j, 0.05+3j], - [0.1, 1.0, 10.0, 100.0]) - sys1 = FrequencyResponseData(sys0.fresp, sys0.omega, smooth=True) - ref0 = "FrequencyResponseData(" \ - "array([[[1. +0.j , 0.9 +0.1j, 0.1 +2.j , 0.05+3.j ]]])," \ - " array([ 0.1, 1. , 10. , 100. ]))" - ref1 = ref0[:-1] + ", smooth=True)" - sysm = FrequencyResponseData( - np.matmul(array([[1],[2]]), sys0.fresp), sys0.omega) - - assert repr(sys0) == ref0 - assert repr(sys1) == ref1 - sys0r = eval(repr(sys0)) - np.testing.assert_array_almost_equal(sys0r.fresp, sys0.fresp) + sys0 = ct.frd( + [1.0, 0.9+0.1j, 0.1+2j, 0.05+3j], + [0.1, 1.0, 10.0, 100.0], name='sys0') + sys1 = ct.frd( + sys0.frdata, sys0.omega, smooth=True, name='sys1') + ref_common = "FrequencyResponseData(\n" \ + "array([[[1. +0.j , 0.9 +0.1j, 0.1 +2.j , 0.05+3.j ]]]),\n" \ + "array([ 0.1, 1. , 10. , 100. ])," + ref0 = ref_common + "\nname='sys0', outputs=1, inputs=1)" + ref1 = ref_common + " smooth=True," + \ + "\nname='sys1', outputs=1, inputs=1)" + sysm = ct.frd( + np.matmul(array([[1], [2]]), sys0.frdata), sys0.omega, name='sysm') + + assert ct.iosys_repr(sys0, format='eval') == ref0 + assert ct.iosys_repr(sys1, format='eval') == ref1 + + sys0r = eval(ct.iosys_repr(sys0, format='eval')) + np.testing.assert_array_almost_equal(sys0r.frdata, sys0.frdata) np.testing.assert_array_almost_equal(sys0r.omega, sys0.omega) - sys1r = eval(repr(sys1)) - np.testing.assert_array_almost_equal(sys1r.fresp, sys1.fresp) + + sys1r = eval(ct.iosys_repr(sys1, format='eval')) + np.testing.assert_array_almost_equal(sys1r.frdata, sys1.frdata) np.testing.assert_array_almost_equal(sys1r.omega, sys1.omega) - assert(sys1.ifunc is not None) + assert(sys1._ifunc is not None) + + refs = """: {sysname} +Inputs (1): ['u[0]'] +Outputs (1): ['y[0]'] - refs = """Frequency response data Freq [rad/s] Response ------------ --------------------- 0.100 1 +0j 1.000 0.9 +0.1j 10.000 0.1 +2j 100.000 0.05 +3j""" - assert str(sys0) == refs - assert str(sys1) == refs + assert str(sys0) == refs.format(sysname='sys0') + assert str(sys1) == refs.format(sysname='sys1') # print multi-input system - refm = """Frequency response data + refm = """: sysm +Inputs (2): ['u[0]', 'u[1]'] +Outputs (1): ['y[0]'] + Input 1 to output 1: -Freq [rad/s] Response ------------- --------------------- - 0.100 1 +0j - 1.000 0.9 +0.1j - 10.000 0.1 +2j - 100.000 0.05 +3j + + Freq [rad/s] Response + ------------ --------------------- + 0.100 1 +0j + 1.000 0.9 +0.1j + 10.000 0.1 +2j + 100.000 0.05 +3j + Input 2 to output 1: -Freq [rad/s] Response ------------- --------------------- - 0.100 2 +0j - 1.000 1.8 +0.2j - 10.000 0.2 +4j - 100.000 0.1 +6j""" + + Freq [rad/s] Response + ------------ --------------------- + 0.100 2 +0j + 1.000 1.8 +0.2j + 10.000 0.2 +4j + 100.000 0.1 +6j""" assert str(sysm) == refm def test_unrecognized_keyword(self): h = TransferFunction([1], [1, 2, 2]) omega = np.logspace(-1, 2, 10) with pytest.raises(TypeError, match="unrecognized keyword"): - frd = FRD(h, omega, unknown=None) + FrequencyResponseData(h, omega, unknown=None) + with pytest.raises(TypeError, match="unrecognized keyword"): + ct.frd(h, omega, unknown=None) def test_named_signals(): @@ -496,8 +801,8 @@ def test_named_signals(): h1 = TransferFunction([1], [1, 2, 2]) h2 = TransferFunction([1], [0.1, 1]) omega = np.logspace(-1, 2, 10) - f1 = FRD(h1, omega) - f2 = FRD(h2, omega) + f1 = frd(h1, omega) + f2 = frd(h2, omega) # Make sure that systems were properly named assert f1.name == 'sys[2]' @@ -508,7 +813,7 @@ def test_named_signals(): assert f1.output_labels == ['y[0]'] # Change names - f1 = FRD(h1, omega, name='mysys', inputs='u0', outputs='y0') + f1 = frd(h1, omega, name='mysys', inputs='u0', outputs='y0') assert f1.name == 'mysys' assert f1.ninputs == 1 assert f1.input_labels == ['u0'] @@ -521,14 +826,14 @@ def test_to_pandas(): # Create a SISO frequency response h1 = TransferFunction([1], [1, 2, 2]) omega = np.logspace(-1, 2, 10) - resp = FRD(h1, omega) + resp = frd(h1, omega) # Convert to pandas df = resp.to_pandas() # Check to make sure the data make senses np.testing.assert_equal(df['omega'], resp.omega) - np.testing.assert_equal(df['H_{y[0], u[0]}'], resp.fresp[0, 0]) + np.testing.assert_equal(df['H_{y[0], u[0]}'], resp.frdata[0, 0]) def test_frequency_response(): @@ -573,3 +878,49 @@ def test_frequency_response(): assert mag_nosq_sq.shape == mag_default.shape assert phase_nosq_sq.shape == phase_default.shape assert omega_nosq_sq.shape == omega_default.shape + + +def test_signal_labels(): + # Create a system response for a SISO system + sys = ct.rss(4, 1, 1) + fresp = ct.frequency_response(sys) + + # Make sure access via strings works + np.testing.assert_equal( + fresp.magnitude['y[0]'], fresp.magnitude) + np.testing.assert_equal( + fresp.phase['y[0]'], fresp.phase) + + # Make sure errors are generated if key is unknown + with pytest.raises(ValueError, match="unknown signal name 'bad'"): + fresp.magnitude['bad'] + + # Create a system response for a MIMO system + sys = ct.rss(4, 2, 2) + fresp = ct.frequency_response(sys) + + # Make sure access via strings works + np.testing.assert_equal( + fresp.magnitude['y[0]', 'u[1]'], + fresp.magnitude[0, 1]) + np.testing.assert_equal( + fresp.phase['y[0]', 'u[1]'], + fresp.phase[0, 1]) + np.testing.assert_equal( + fresp.complex['y[0]', 'u[1]'], + fresp.complex[0, 1]) + + # Make sure access via lists of strings works + np.testing.assert_equal( + fresp.complex[['y[1]', 'y[0]'], 'u[0]'], + fresp.complex[[1, 0], 0]) + + # Make sure errors are generated if key is unknown + with pytest.raises(ValueError, match="unknown signal name 'bad'"): + fresp.magnitude['bad'] + + with pytest.raises(ValueError, match="unknown signal name 'bad'"): + fresp.complex[['y[1]', 'bad']] + + with pytest.raises(ValueError, match=r"unknown signal name 'y\[0\]'"): + fresp.complex['y[1]', 'y[0]'] # second index = input name diff --git a/control/tests/freqplot_test.py b/control/tests/freqplot_test.py index 5383f28a7..b3770486c 100644 --- a/control/tests/freqplot_test.py +++ b/control/tests/freqplot_test.py @@ -1,13 +1,14 @@ # freqplot_test.py - test out frequency response plots # RMM, 23 Jun 2023 -import pytest -import control as ct +import re import matplotlib as mpl import matplotlib.pyplot as plt import numpy as np +import pytest + +import control as ct -from control.tests.conftest import slycotonly pytestmark = pytest.mark.usefixtures("mplcleanup") # @@ -55,15 +56,19 @@ (True, True, None, 'row', True, False, False, False), (True, True, 'row', None, None, False, False, True), ]) +@pytest.mark.usefixtures("editsdefaults") def test_response_plots( sys, pltmag, pltphs, shrmag, shrphs, shrfrq, secsys, ovlout, ovlinp, clear=True): + # Use figure frame for suptitle to speed things up + ct.set_defaults('freqplot', title_frame='figure') + # 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 @@ -78,21 +83,22 @@ def test_response_plots( # Plot the frequency response plt.figure() - out = response.plot(**kwargs) + cplt = response.plot(**kwargs) # Check the shape if ovlout and ovlinp: - assert out.shape == (pltmag + pltphs, 1) + assert cplt.lines.shape == (pltmag + pltphs, 1) elif ovlout: - assert out.shape == (pltmag + pltphs, sys.ninputs) + assert cplt.lines.shape == (pltmag + pltphs, sys.ninputs) elif ovlinp: - assert out.shape == (sys.noutputs * (pltmag + pltphs), 1) + assert cplt.lines.shape == (sys.noutputs * (pltmag + pltphs), 1) else: - assert out.shape == (sys.noutputs * (pltmag + pltphs), sys.ninputs) + assert cplt.lines.shape == \ + (sys.noutputs * (pltmag + pltphs), sys.ninputs) # Make sure all of the outputs are of the right type nlines_plotted = 0 - for ax_lines in np.nditer(out, flags=["refs_ok"]): + for ax_lines in np.nditer(cplt.lines, flags=["refs_ok"]): for line in ax_lines.item() or []: assert isinstance(line, mpl.lines.Line2D) nlines_plotted += 1 @@ -120,13 +126,12 @@ def test_response_plots( assert len(ax.get_lines()) > 1 # Update the title so we can see what is going on - fig = out[0, 0][0].axes.figure - fig.suptitle( - fig._suptitle._text + + cplt.set_plot_title( + cplt.figure._suptitle._text + f" [{sys.noutputs}x{sys.ninputs}, pm={pltmag}, pp={pltphs}," f" sm={shrmag}, sp={shrphs}, sf={shrfrq}]", # TODO: ", " # f"oo={ovlout}, oi={ovlinp}, ss={secsys}]", # TODO: add back - fontsize='small') + frame='figure') # Get rid of the figure to free up memory if clear: @@ -136,8 +141,8 @@ def test_response_plots( # Use the manaul response to verify that different settings are working def test_manual_response_limits(): # Default response: limits should be the same across rows - out = manual_response.plot() - axs = ct.get_plot_axes(out) + cplt = manual_response.plot() + axs = cplt.axes for i in range(manual_response.noutputs): for j in range(1, manual_response.ninputs): # Everything in the same row should have the same limits @@ -150,14 +155,18 @@ def test_manual_response_limits(): @pytest.mark.parametrize( "plt_fcn", [ct.bode_plot, ct.nichols_plot, ct.singular_values_plot]) +@pytest.mark.usefixtures("editsdefaults") def test_line_styles(plt_fcn): + # Use figure frame for suptitle to speed things up + ct.set_defaults('freqplot', title_frame='figure') + # 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) + plt_fcn(sys1) # Now create a plot using *fmt customization lines_fmt = plt_fcn(sys2, None, 'r--') @@ -181,6 +190,12 @@ def test_basic_freq_plots(savefigs=False): if savefigs: plt.savefig('freqplot-siso_bode-default.png') + plt.figure() + omega = np.logspace(-2, 2, 500) + ct.frequency_response([sys1, sys2], omega).plot(initial_phase=0) + if savefigs: + plt.savefig('freqplot-siso_bode-omega.png') + # Basic MIMO Bode plot plt.figure() sys_mimo = ct.tf( @@ -213,6 +228,24 @@ def test_basic_freq_plots(savefigs=False): if savefigs: plt.savefig('freqplot-siso_nichols-default.png') + # Nyquist plot - default settings + plt.figure() + sys = ct.tf([1, 0.2], [1, 1, 3, 1, 1], name='sys') + ct.nyquist(sys) + if savefigs: + plt.savefig('freqplot-nyquist-default.png') + + # Nyquist plot - custom settings + plt.figure() + sys = ct.tf([1, 0.2], [1, 0, 1]) * ct.tf([1], [1, 0]) + nyqresp = ct.nyquist_response(sys) + nyqresp.plot( + max_curve_magnitude=6, max_curve_offset=1, + arrows=[0, 0.15, 0.3, 0.6, 0.7, 0.925], label='sys') + print("Encirclements =", nyqresp.count) + if savefigs: + plt.savefig('freqplot-nyquist-custom.png') + def test_gangof4_plots(savefigs=False): proc = ct.tf([1], [1, 1, 1], name="process") @@ -230,7 +263,11 @@ def test_gangof4_plots(savefigs=False): (ct.nyquist_response, ct.freqplot.NyquistResponseData), (ct.singular_values_response, ct.FrequencyResponseData), ]) +@pytest.mark.usefixtures("editsdefaults") def test_first_arg_listable(response_cmd, return_type): + # Use figure frame for suptitle to speed things up + ct.set_defaults('freqplot', title_frame='figure') + sys = ct.rss(2, 1, 1) # If we pass a single system, should get back a single system @@ -262,10 +299,14 @@ def test_first_arg_listable(response_cmd, return_type): assert isinstance(result[0], return_type) +@pytest.mark.usefixtures("editsdefaults") def test_bode_share_options(): + # Use figure frame for suptitle to speed things up + ct.set_defaults('freqplot', title_frame='figure') + # Default sharing should share along rows and cols for mag and phase - lines = ct.bode_plot(manual_response) - axs = ct.get_plot_axes(lines) + cplt = ct.bode_plot(manual_response) + axs = cplt.axes for i in range(axs.shape[0]): for j in range(axs.shape[1]): # Share y limits along rows @@ -276,8 +317,8 @@ def test_bode_share_options(): # Sharing along y axis for mag but not phase plt.figure() - lines = ct.bode_plot(manual_response, share_phase='none') - axs = ct.get_plot_axes(lines) + cplt = ct.bode_plot(manual_response, share_phase='none') + axs = cplt.axes for i in range(int(axs.shape[0] / 2)): for j in range(axs.shape[1]): if i != 0: @@ -289,8 +330,8 @@ def test_bode_share_options(): # Turn off sharing for magnitude and phase plt.figure() - lines = ct.bode_plot(manual_response, sharey='none') - axs = ct.get_plot_axes(lines) + cplt = ct.bode_plot(manual_response, sharey='none') + axs = cplt.axes for i in range(int(axs.shape[0] / 2)): for j in range(axs.shape[1]): if i != 0: @@ -304,7 +345,7 @@ def test_bode_share_options(): # Turn off sharing in x axes plt.figure() - lines = ct.bode_plot(manual_response, sharex='none') + cplt = ct.bode_plot(manual_response, sharex='none') # TODO: figure out what to check @@ -314,14 +355,18 @@ def test_freqplot_plot_type(plot_type): response = ct.singular_values_response(ct.rss(2, 1, 1)) else: response = ct.frequency_response(ct.rss(2, 1, 1)) - lines = response.plot(plot_type=plot_type) + cplt = response.plot(plot_type=plot_type) if plot_type == 'bode': - assert lines.shape == (2, 1) + assert cplt.lines.shape == (2, 1) else: - assert lines.shape == (1, ) + assert cplt.lines.shape == (1, ) @pytest.mark.parametrize("plt_fcn", [ct.bode_plot, ct.singular_values_plot]) +@pytest.mark.usefixtures("editsdefaults") def test_freqplot_omega_limits(plt_fcn): + # Use figure frame for suptitle to speed things up + ct.set_defaults('freqplot', title_frame='figure') + # Utility function to check visible limits def _get_visible_limits(ax): xticks = np.array(ax.get_xticks()) @@ -334,18 +379,231 @@ def _get_visible_limits(ax): ct.tf([1], [1, 2, 1]), np.logspace(-1, 1)) # Generate a plot without overridding the limits - lines = plt_fcn(response) - ax = ct.get_plot_axes(lines) + cplt = plt_fcn(response) + ax = cplt.axes np.testing.assert_allclose( _get_visible_limits(ax.reshape(-1)[0]), np.array([0.1, 10])) # Now reset the limits - lines = plt_fcn(response, omega_limits=(1, 100)) - ax = ct.get_plot_axes(lines) + cplt = plt_fcn(response, omega_limits=(1, 100)) + ax = cplt.axes np.testing.assert_allclose( _get_visible_limits(ax.reshape(-1)[0]), np.array([1, 100])) +def test_gangof4_trace_labels(): + P1 = ct.rss(2, 1, 1, name='P1') + P2 = ct.rss(3, 1, 1, name='P2') + C1 = ct.rss(1, 1, 1, name='C1') + C2 = ct.rss(1, 1, 1, name='C2') + + # Make sure default labels are as expected + cplt = ct.gangof4_response(P1, C1).plot() + cplt = ct.gangof4_response(P2, C2).plot() + axs = cplt.axes + legend = axs[0, 1].get_legend().get_texts() + assert legend[0].get_text() == 'P=P1, C=C1' + assert legend[1].get_text() == 'P=P2, C=C2' + plt.close() + + # Suffix truncation + cplt = ct.gangof4_response(P1, C1).plot() + cplt = ct.gangof4_response(P2, C1).plot() + axs = cplt.axes + legend = axs[0, 1].get_legend().get_texts() + assert legend[0].get_text() == 'P=P1' + assert legend[1].get_text() == 'P=P2' + plt.close() + + # Prefix turncation + cplt = ct.gangof4_response(P1, C1).plot() + cplt = ct.gangof4_response(P1, C2).plot() + axs = cplt.axes + legend = axs[0, 1].get_legend().get_texts() + assert legend[0].get_text() == 'C=C1' + assert legend[1].get_text() == 'C=C2' + plt.close() + + # Override labels + cplt = ct.gangof4_response(P1, C1).plot(label='xxx, line1, yyy') + cplt = ct.gangof4_response(P2, C2).plot(label='xxx, line2, yyy') + axs = cplt.axes + legend = axs[0, 1].get_legend().get_texts() + assert legend[0].get_text() == 'xxx, line1, yyy' + assert legend[1].get_text() == 'xxx, line2, yyy' + plt.close() + + +@pytest.mark.parametrize( + "plt_fcn", [ct.bode_plot, ct.singular_values_plot, ct.nyquist_plot]) +@pytest.mark.usefixtures("editsdefaults") +def test_freqplot_line_labels(plt_fcn): + sys1 = ct.rss(2, 1, 1, name='sys1') + sys2 = ct.rss(3, 1, 1, name='sys2') + + # Use figure frame for suptitle to speed things up + ct.set_defaults('freqplot', title_frame='figure') + + # Make sure default labels are as expected + cplt = plt_fcn([sys1, sys2]) + axs = cplt.axes + if axs.ndim == 1: + legend = axs[0].get_legend().get_texts() + else: + legend = axs[0, 0].get_legend().get_texts() + assert legend[0].get_text() == 'sys1' + assert legend[1].get_text() == 'sys2' + plt.close() + + # Override labels all at once + cplt = plt_fcn([sys1, sys2], label=['line1', 'line2']) + axs = cplt.axes + if axs.ndim == 1: + legend = axs[0].get_legend().get_texts() + else: + legend = axs[0, 0].get_legend().get_texts() + assert legend[0].get_text() == 'line1' + assert legend[1].get_text() == 'line2' + plt.close() + + # Override labels one at a time + cplt = plt_fcn(sys1, label='line1') + cplt = plt_fcn(sys2, label='line2') + axs = cplt.axes + if axs.ndim == 1: + legend = axs[0].get_legend().get_texts() + else: + legend = axs[0, 0].get_legend().get_texts() + assert legend[0].get_text() == 'line1' + assert legend[1].get_text() == 'line2' + plt.close() + + +@pytest.mark.skip(reason="line label override not yet implemented") +@pytest.mark.parametrize("kwargs, labels", [ + ({}, ['sys1', 'sys2']), + ({'overlay_outputs': True}, [ + 'x sys1 out1 y', 'x sys1 out2 y', 'x sys2 out1 y', 'x sys2 out2 y']), +]) +def test_line_labels_bode(kwargs, labels): + # Multi-dimensional data + sys1 = ct.rss(2, 2, 2) + sys2 = ct.rss(3, 2, 2) + + # Check out some errors first + with pytest.raises(ValueError, match="number of labels must match"): + ct.bode_plot([sys1, sys2], label=['line1']) + + cplt = ct.bode_plot([sys1, sys2], label=labels, **kwargs) + axs = cplt.axes + legend_texts = axs[0, -1].get_legend().get_texts() + for i, legend in enumerate(legend_texts): + assert legend.get_text() == labels[i] + plt.close() + + +@pytest.mark.parametrize( + "plt_fcn", [ + ct.bode_plot, ct.singular_values_plot, ct.nyquist_plot, + ct.nichols_plot]) +@pytest.mark.parametrize( + "ninputs, noutputs", [(1, 1), (1, 2), (2, 1), (2, 3)]) +@pytest.mark.usefixtures("editsdefaults") +def test_freqplot_ax_keyword(plt_fcn, ninputs, noutputs): + if plt_fcn in [ct.nyquist_plot, ct.nichols_plot] and \ + (ninputs != 1 or noutputs != 1): + pytest.skip("MIMO not implemented for Nyquist/Nichols") + + # Use figure frame for suptitle to speed things up + ct.set_defaults('freqplot', title_frame='figure') + + # System to use + sys = ct.rss(4, ninputs, noutputs) + + # Create an initial figure + cplt1 = plt_fcn(sys) + + # Draw again on the same figure, using array + axs = cplt1.axes + cplt2 = plt_fcn(sys, ax=axs) + np.testing.assert_equal(cplt1.axes, cplt2.axes) + + # Pass things in as a list instead + axs_list = axs.tolist() + cplt3 = plt_fcn(sys, ax=axs) + np.testing.assert_equal(cplt1.axes, cplt3.axes) + + # Flatten the list + axs_list = axs.squeeze().tolist() + cplt4 = plt_fcn(sys, ax=axs_list) + np.testing.assert_equal(cplt1.axes, cplt4.axes) + + +def test_mixed_systypes(): + s = ct.tf('s') + sys_tf = ct.tf( + (0.02 * s**3 - 0.1 * s) / (s**4 + s**3 + s**2 + 0.25 * s + 0.04), + name='tf') + sys_ss = ct.ss(sys_tf * 2, name='ss') + sys_frd1 = ct.frd(sys_tf / 2, np.logspace(-1, 1, 15), name='frd1') + sys_frd2 = ct.frd(sys_tf / 4, np.logspace(-3, 2, 20), name='frd2') + + # Simple case: compute responses separately and plot + resp_tf = ct.frequency_response(sys_tf) + resp_ss = ct.frequency_response(sys_ss) + plt.figure() + cplt = ct.bode_plot( + [resp_tf, resp_ss, sys_frd1, sys_frd2], plot_phase=False) + cplt.set_plot_title("bode_plot([resp_tf, resp_ss, sys_frd1, sys_frd2])") + + # Same thing, but using frequency response + plt.figure() + resp = ct.frequency_response([sys_tf, sys_ss, sys_frd1, sys_frd2]) + cplt = resp.plot(plot_phase=False) + cplt.set_plot_title( + "frequency_response([sys_tf, sys_ss, sys_frd1, sys_frd2])") + + # Same thing, but using bode_plot + plt.figure() + cplt = ct.bode_plot([sys_tf, sys_ss, sys_frd1, sys_frd2], plot_phase=False) + cplt.set_plot_title("bode_plot([sys_tf, sys_ss, sys_frd1, sys_frd2])") + + +def test_suptitle(): + sys = ct.rss(2, 2, 2, strictly_proper=True) + + # Default location: center of axes + cplt = ct.bode_plot(sys) + assert plt.gcf()._suptitle._x != 0.5 + + # Try changing the the title + cplt.set_plot_title("New title") + assert plt.gcf()._suptitle._text == "New title" + + # Change the location of the title + cplt.set_plot_title("New title", frame='figure') + assert plt.gcf()._suptitle._x == 0.5 + + # Change the location of the title back + cplt.set_plot_title("New title", frame='axes') + assert plt.gcf()._suptitle._x != 0.5 + + # Bad frame + with pytest.raises(ValueError, match="unknown"): + cplt.set_plot_title("New title", frame='nowhere') + + # Bad keyword + with pytest.raises( + TypeError, match="unexpected keyword|no property"): + cplt.set_plot_title("New title", unknown=None) + + # Make sure title is still there if we display margins underneath + sys = ct.rss(2, 1, 1, name='sys') + cplt = ct.bode_plot(sys, display_margins=True) + assert re.match(r"^Bode plot for sys$", cplt.figure._suptitle._text) + assert re.match(r"^sys: Gm = .*, Pm = .*$", cplt.axes[0, 0].get_title()) + + @pytest.mark.parametrize("plt_fcn", [ct.bode_plot, ct.singular_values_plot]) def test_freqplot_errors(plt_fcn): if plt_fcn == ct.bode_plot: @@ -366,6 +624,95 @@ def test_freqplot_errors(plt_fcn): plt_fcn(response, omega_limits=[1e2, 1e-2]) +def test_freqresplist_unknown_kw(): + sys1 = ct.rss(2, 1, 1) + sys2 = ct.rss(2, 1, 1) + resp = ct.frequency_response([sys1, sys2]) + assert isinstance(resp, ct.FrequencyResponseList) + + with pytest.raises(AttributeError, match="unexpected keyword"): + resp.plot(unknown=True) + +@pytest.mark.parametrize("nsys, display_margins, gridkw, match", [ + (1, True, {}, None), + (1, False, {}, None), + (1, False, {}, None), + (1, True, {'grid': True}, None), + (1, 'overlay', {}, None), + (1, 'overlay', {'grid': True}, None), + (1, 'overlay', {'grid': False}, None), + (2, True, {}, None), + (2, 'overlay', {}, "not supported for multi-trace plots"), + (2, True, {'grid': 'overlay'}, None), + (3, True, {'grid': True}, None), +]) +def test_display_margins(nsys, display_margins, gridkw, match): + sys1 = ct.tf([10], [1, 1, 1, 1], name='sys1') + sys2 = ct.tf([20], [2, 2, 2, 1], name='sys2') + sys3 = ct.tf([30], [2, 3, 3, 1], name='sys3') + + sysdata = [sys1, sys2, sys3][0:nsys] + + plt.figure() + if match is None: + cplt = ct.bode_plot(sysdata, display_margins=display_margins, **gridkw) + else: + with pytest.raises(NotImplementedError, match=match): + ct.bode_plot(sysdata, display_margins=display_margins, **gridkw) + return + + cplt.set_plot_title( + cplt.figure._suptitle._text + f" [d_m={display_margins}, {gridkw=}") + + # Make sure the grid is there if it should be + if gridkw.get('grid') or not display_margins: + assert all( + [line.get_visible() for line in cplt.axes[0, 0].get_xgridlines()]) + else: + assert not any( + [line.get_visible() for line in cplt.axes[0, 0].get_xgridlines()]) + + # Make sure margins are displayed + if display_margins == True: + ax_title = cplt.axes[0, 0].get_title() + assert len(ax_title.split('\n')) == nsys + elif display_margins == 'overlay': + assert cplt.axes[0, 0].get_title() == '' + + +def test_singular_values_plot_colors(): + # Define some systems for testing + sys1 = ct.rss(4, 2, 2, strictly_proper=True) + sys2 = ct.rss(4, 2, 2, strictly_proper=True) + + # Get the default color cycle + color_cycle = plt.rcParams['axes.prop_cycle'].by_key()['color'] + + # Plot the systems individually and make sure line colors are OK + cplt = ct.singular_values_plot(sys1) + assert cplt.lines.size == 1 + assert len(cplt.lines[0]) == 2 + assert cplt.lines[0][0].get_color() == color_cycle[0] + assert cplt.lines[0][1].get_color() == color_cycle[0] + + cplt = ct.singular_values_plot(sys2) + assert cplt.lines.size == 1 + assert len(cplt.lines[0]) == 2 + assert cplt.lines[0][0].get_color() == color_cycle[1] + assert cplt.lines[0][1].get_color() == color_cycle[1] + plt.close('all') + + # Plot the systems as a list and make sure colors are OK + cplt = ct.singular_values_plot([sys1, sys2]) + assert cplt.lines.size == 2 + assert len(cplt.lines[0]) == 2 + assert len(cplt.lines[1]) == 2 + assert cplt.lines[0][0].get_color() == color_cycle[0] + assert cplt.lines[0][1].get_color() == color_cycle[0] + assert cplt.lines[1][0].get_color() == color_cycle[1] + assert cplt.lines[1][1].get_color() == color_cycle[1] + + if __name__ == "__main__": # # Interactive mode: generate plots for manual viewing @@ -405,6 +752,9 @@ def test_freqplot_errors(plt_fcn): for args in test_cases: test_response_plots(*args, ovlinp=False, ovlout=False, clear=False) + # Reset title_frame to the default value + ct.reset_defaults() + # Define and run a selected set of interesting tests # TODO: TBD (see timeplot_test.py for format) @@ -415,5 +765,7 @@ def test_freqplot_errors(plt_fcn): # Run a few more special cases to show off capabilities (and save some # of them for use in the documentation). # - - pass + test_mixed_systypes() + test_display_margins(2, True, {}) + test_display_margins(2, 'overlay', {}) + test_display_margins(2, True, {'grid': True}) diff --git a/control/tests/freqresp_test.py b/control/tests/freqresp_test.py index 18c59384d..a268d38eb 100644 --- a/control/tests/freqresp_test.py +++ b/control/tests/freqresp_test.py @@ -60,7 +60,7 @@ def test_freqresp_siso(ss_siso): ctrl.frequency_response(ss_siso, omega) -@pytest.mark.filterwarnings("ignore:freqresp is deprecated") +@pytest.mark.filterwarnings(r"ignore:freqresp\(\) is deprecated") @slycotonly def test_freqresp_mimo_legacy(ss_mimo): """Test MIMO frequency response calls""" @@ -112,7 +112,7 @@ def test_nyquist_basic(ss_siso): # Check known warnings happened as expected assert len(record) == 2 assert re.search("encirclements was a non-integer", str(record[0].message)) - assert re.search("return values .* deprecated", str(record[1].message)) + assert re.search("return value .* deprecated", str(record[1].message)) response = nyquist_response(tf_siso, omega=np.logspace(-1, 1, 10)) assert len(response.contour) == 10 @@ -276,7 +276,7 @@ def dsystem_type(request, dsystem_dt): @pytest.mark.parametrize("dsystem_type", ['sssiso', 'ssmimo', 'tf'], indirect=True) def test_discrete(dsystem_type): - """Test discrete time frequency response""" + """Test discrete-time frequency response""" dsys = dsystem_type # Set frequency range to just below Nyquist freq (for Bode) omega_ok = np.linspace(10e-4, 0.99, 100) * np.pi / dsys.dt @@ -673,7 +673,7 @@ def test_singular_values_plot(tsystem): sys = tsystem.sys for omega_ref, sigma_ref in zip(tsystem.omegas, tsystem.sigmas): response = singular_values_response(sys, omega_ref) - sigma = np.real(response.fresp[:, 0, :]) + sigma = np.real(response.frdata[:, 0, :]) np.testing.assert_almost_equal(sigma, sigma_ref) @@ -709,3 +709,25 @@ def test_singular_values_plot_mpl_superimpose_nyq(ss_mimo_ct, ss_mimo_dt): assert(len(nyquist_line[0]) == 2) assert(nyquist_line[0][0] == nyquist_line[0][1]) assert(nyquist_line[0][0] == np.pi/sys_dt.dt) + + +def test_freqresp_omega_limits(): + sys = ctrl.rss(4, 1, 1) + + # Generate a standard frequency response (no limits specified) + resp0 = ctrl.frequency_response(sys) + + # Regenerate the response using omega_limits + resp1 = ctrl.frequency_response( + sys, omega_limits=[resp0.omega[0], resp0.omega[-1]]) + np.testing.assert_equal(resp0.omega, resp1.omega) + + # Regenerate the response using omega as a list of two elements + resp2 = ctrl.frequency_response(sys, [resp0.omega[0], resp0.omega[-1]]) + np.testing.assert_equal(resp0.omega, resp2.omega) + assert resp2.omega.size > 100 + + # Make sure that generating response using array does the right thing + resp3 = ctrl.frequency_response( + sys, np.array([resp0.omega[0], resp0.omega[-1]])) + np.testing.assert_equal(resp3.omega, [resp0.omega[0], resp0.omega[-1]]) diff --git a/control/tests/interconnect_test.py b/control/tests/interconnect_test.py index 285e9d096..aea3cbbc6 100644 --- a/control/tests/interconnect_test.py +++ b/control/tests/interconnect_test.py @@ -15,7 +15,7 @@ import pytest import numpy as np -import scipy as sp +import math import control as ct @@ -45,15 +45,15 @@ def test_summing_junction(inputs, output, dimension, D): def test_summation_exceptions(): # Bad input description with pytest.raises(ValueError, match="could not parse input"): - sumblk = ct.summing_junction(np.pi, 'y') + ct.summing_junction(np.pi, 'y') # Bad output description with pytest.raises(ValueError, match="could not parse output"): - sumblk = ct.summing_junction('u', np.pi) + ct.summing_junction('u', np.pi) # Bad input dimension with pytest.raises(ValueError, match="unrecognized dimension"): - sumblk = ct.summing_junction('u', 'y', dimension=False) + ct.summing_junction('u', 'y', dimension=False) @pytest.mark.parametrize("dim", [1, 3]) @@ -345,7 +345,7 @@ def test_interconnect_exceptions(): # NonlinearIOSytem with pytest.raises(TypeError, match="unrecognized keyword"): - nlios = ct.NonlinearIOSystem( + ct.NonlinearIOSystem( None, lambda t, x, u, params: u*u, input_count=1, output_count=1) # Summing junction @@ -659,3 +659,62 @@ def test_interconnect_rewrite(): outputs=['y', 'z']) assert icsys.input_labels == ['u[0]', 'u[1]', 'w[0]', 'w[1]'] + + +def test_interconnect_params(): + # Create a nominally unstable system + sys1 = ct.nlsys( + lambda t, x, u, params: params['a'] * x[0] + u[0], + states=1, inputs='u', outputs='y', params={'a': 2, 'c':2}) + + # Simple system for serial interconnection + sys2 = ct.nlsys( + None, lambda t, x, u, params: u[0], + inputs='r', outputs='u', params={'a': 4, 'b': 3}) + + # Make sure default parameters get set as expected + sys = ct.interconnect([sys1, sys2], inputs='r', outputs='y') + assert sys.params == {'a': 4, 'c': 2, 'b': 3} + assert sys.dynamics(0, [1], [0]).item() == 4 + + # Make sure we can override the parameters + sys = ct.interconnect( + [sys1, sys2], inputs='r', outputs='y', params={'b': 1}) + assert sys.params == {'b': 1} + assert sys.dynamics(0, [1], [0]).item() == 2 + assert sys.dynamics(0, [1], [0], params={'a': 5}).item() == 5 + + # Create final series interconnection, with proper parameter values + sys = ct.interconnect( + [sys1, sys2], inputs='r', outputs='y', params={'a': 1}) + assert sys.params == {'a': 1} + + # Make sure we can call the update function + sys.updfcn(0, [0], [0], {}) + + # Make sure the serial interconnection is unstable to start + assert sys.linearize([0], [0]).poles()[0].real == 1 + + # Change the parameter and make sure it takes + assert sys.linearize([0], [0], params={'a': -1}).poles()[0].real == -1 + + # Now try running a simulation + timepts = np.linspace(0, 10) + resp = ct.input_output_response(sys, timepts, 0, params={'a': -1}) + assert resp.states[0, -1].item() < 2 * math.exp(-10) + + +# Bug identified in issue #1015 +def test_parallel_interconnect(): + sys1 = ct.rss(2, 1, 1, name='S1') + sys2 = ct.rss(2, 1, 1, name='S2') + + sys_bd = sys1 + sys2 + sys_ic = ct.interconnect( + [sys1, sys2], + inplist=[['S1.u[0]', 'S2.u[0]']], + outlist=[['S1.y[0]', 'S2.y[0]']]) + np.testing.assert_allclose(sys_bd.A, sys_ic.A) + np.testing.assert_allclose(sys_bd.B, sys_ic.B) + np.testing.assert_allclose(sys_bd.C, sys_ic.C) + np.testing.assert_allclose(sys_bd.D, sys_ic.D) diff --git a/control/tests/iosys_test.py b/control/tests/iosys_test.py index f3693cf00..5d741ae83 100644 --- a/control/tests/iosys_test.py +++ b/control/tests/iosys_test.py @@ -10,13 +10,14 @@ import re import warnings -import pytest +from math import sqrt import numpy as np -from math import sqrt +import pytest +import scipy import control as ct - +import control.flatsys as fs class TestIOSys: @@ -77,7 +78,7 @@ def test_tf2io(self, tsys): # Create a transfer function from the state space system linsys = tsys.siso_linsys tfsys = ct.ss2tf(linsys) - with pytest.warns(DeprecationWarning, match="use tf2ss"): + with pytest.warns(FutureWarning, match="use tf2ss"): iosys = ct.tf2io(tfsys) # Verify correctness via simulation @@ -90,13 +91,13 @@ def test_tf2io(self, tsys): # Make sure that non-proper transfer functions generate an error tfsys = ct.tf('s') with pytest.raises(ValueError): - with pytest.warns(DeprecationWarning, match="use tf2ss"): + with pytest.warns(FutureWarning, 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"): + with pytest.warns(FutureWarning, match="use ss"): iosys = ct.ss2io(linsys) np.testing.assert_allclose(linsys.A, iosys.A) np.testing.assert_allclose(linsys.B, iosys.B) @@ -104,7 +105,7 @@ def test_ss2io(self, tsys): np.testing.assert_allclose(linsys.D, iosys.D) # Try adding names to things - with pytest.warns(DeprecationWarning, match="use ss"): + with pytest.warns(FutureWarning, 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 @@ -231,11 +232,20 @@ def test_linearize(self, tsys, kincar): linearized.C, [[1, 0, 0], [0, 1, 0]]) np.testing.assert_array_almost_equal(linearized.D, np.zeros((2,2))) + # Pass fewer than the required elements + padded = iosys.linearize([0, 0], np.array([0])) + assert padded.nstates == linearized.nstates + assert padded.ninputs == linearized.ninputs + + # Check for warning if last element before padding is nonzero + with pytest.warns(UserWarning, match="x0 too short; padding"): + padded = iosys.linearize([0, 1], np.array([0])) + @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_names=True, - name='linearized') + linearized = kincar.linearize( + [0, 0, 0], [0, 0], copy_names=True, name='linearized') assert linearized.name == 'linearized' assert linearized.find_input('v') == 0 assert linearized.find_input('phi') == 1 @@ -256,8 +266,8 @@ 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], - name='linearized', + 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 @@ -269,6 +279,11 @@ def test_linearize_named_signals(self, kincar): assert linearized_newnames.find_output('x') is None assert linearized_newnames.find_output('y') is None + # if system name is provided but copy_names is false, override name + linearized_newsysname = kincar.linearize( + [0, 0, 0], [0, 0], name='newname', copy_names=False) + assert linearized_newsysname.name == 'newname' + # Test legacy version as well with pytest.warns(UserWarning, match="NumPy matrix class no longer"): ct.use_legacy_defaults('0.8.4') @@ -726,7 +741,7 @@ def test_nonsquare_bdalg(self, tsys): ct.series(*args) def test_discrete(self, tsys): - """Test discrete time functionality""" + """Test discrete-time functionality""" # Create some linear and nonlinear systems to play with linsys = ct.StateSpace( [[-1, 1], [0, -2]], [[0], [1]], [[1, 0]], [[0]], True) @@ -758,7 +773,7 @@ def test_discrete(self, tsys): np.testing.assert_allclose(ios_y, lin_y,atol=0.002,rtol=0.) def test_discrete_iosys(self, tsys): - """Create a discrete time system from scratch""" + """Create a discrete-time system from scratch""" linsys = ct.StateSpace( [[-1, 1], [0, -2]], [[0], [1]], [[1, 0]], [[0]], True) @@ -915,6 +930,8 @@ def test_params(self, tsys): ios_secord_update = ct.NonlinearIOSystem( secord_update, secord_output, inputs=1, outputs=1, states=2, params={'omega0':2, 'zeta':0}) + lin_secord_update = ct.linearize(ios_secord_update, [0, 0], [0]) + w_update, v_update = np.linalg.eig(lin_secord_update.A) # Make sure the default parameters haven't changed lin_secord_check = ct.linearize(ios_secord_default, [0, 0], [0]) @@ -944,7 +961,7 @@ def test_params(self, tsys): 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])))) + w, np.concatenate([w_update, w_update])) # Show that we can change the parameters at linearization lin_series_override = ct.linearize( @@ -1394,7 +1411,7 @@ def test_operand_incompatible(self, Pout, Pin, C, op): C = ct.rss(2, 2, 3) with pytest.raises(ValueError, match="incompatible"): - PC = op(P, C) + op(P, C) @pytest.mark.parametrize( "C, op", [ @@ -1417,7 +1434,7 @@ def test_operand_badtype(self, C, op): def test_neg_badsize(self): # Create a system of unspecified size sys = ct.NonlinearIOSystem(lambda t, x, u, params: -x) - with pytest.raises(ValueError, match="Can't determine"): + with pytest.raises(ValueError, match="Can't determine number"): -sys def test_bad_signal_list(self): @@ -1564,7 +1581,7 @@ def test_linear_interconnection(): # Make sure call works properly response = io_connect.frequency_response(1) np.testing.assert_allclose( - response.fresp[:, :, 0], io_connect.C @ np.linalg.inv( + response.frdata[:, :, 0], io_connect.C @ np.linalg.inv( 1j * np.eye(io_connect.nstates) - io_connect.A) @ io_connect.B + \ io_connect.D) @@ -1691,9 +1708,9 @@ def test_interconnect_unused_input(): with pytest.warns( UserWarning, match=r"Unused input\(s\) in InterconnectedSystem"): - h = ct.interconnect([g,s,k], - inputs=['r'], - outputs=['y']) + ct.interconnect([g,s,k], + inputs=['r'], + outputs=['y']) with warnings.catch_warnings(): # no warning if output explicitly ignored, various argument forms @@ -1701,45 +1718,43 @@ def test_interconnect_unused_input(): # strip out matrix warnings warnings.filterwarnings("ignore", "the matrix subclass", category=PendingDeprecationWarning) - h = ct.interconnect([g,s,k], - inputs=['r'], - outputs=['y'], - ignore_inputs=['n']) + ct.interconnect([g,s,k], + inputs=['r'], + outputs=['y'], + ignore_inputs=['n']) - h = ct.interconnect([g,s,k], - inputs=['r'], - outputs=['y'], - ignore_inputs=['s.n']) + ct.interconnect([g,s,k], + inputs=['r'], + outputs=['y'], + ignore_inputs=['s.n']) # no warning if auto-connect disabled - h = ct.interconnect([g,s,k], - connections=False) + ct.interconnect([g,s,k], + connections=False) # warn if explicity ignored input in fact used with pytest.warns( UserWarning, - match=r"Input\(s\) specified as ignored is \(are\) used:") \ - as record: - h = ct.interconnect([g,s,k], - inputs=['r'], - outputs=['y'], - ignore_inputs=['u','n']) + match=r"Input\(s\) specified as ignored is \(are\) used:"): + ct.interconnect([g,s,k], + inputs=['r'], + outputs=['y'], + ignore_inputs=['u','n']) with pytest.warns( UserWarning, - match=r"Input\(s\) specified as ignored is \(are\) used:") \ - as record: - h = ct.interconnect([g,s,k], - inputs=['r'], - outputs=['y'], - ignore_inputs=['k.e','n']) + match=r"Input\(s\) specified as ignored is \(are\) used:"): + ct.interconnect([g,s,k], + inputs=['r'], + outputs=['y'], + ignore_inputs=['k.e','n']) # error if ignored signal doesn't exist with pytest.raises(ValueError): - h = ct.interconnect([g,s,k], - inputs=['r'], - outputs=['y'], - ignore_inputs=['v']) + ct.interconnect([g,s,k], + inputs=['r'], + outputs=['y'], + ignore_inputs=['v']) def test_interconnect_unused_output(): @@ -1761,10 +1776,10 @@ def test_interconnect_unused_output(): with pytest.warns( UserWarning, - match=r"Unused output\(s\) in InterconnectedSystem:") as record: - h = ct.interconnect([g,s,k], - inputs=['r'], - outputs=['y']) + match=r"Unused output\(s\) in InterconnectedSystem:"): + ct.interconnect([g,s,k], + inputs=['r'], + outputs=['y']) # no warning if output explicitly ignored @@ -1773,43 +1788,43 @@ def test_interconnect_unused_output(): # strip out matrix warnings warnings.filterwarnings("ignore", "the matrix subclass", category=PendingDeprecationWarning) - h = ct.interconnect([g,s,k], - inputs=['r'], - outputs=['y'], - ignore_outputs=['dy']) + ct.interconnect([g,s,k], + inputs=['r'], + outputs=['y'], + ignore_outputs=['dy']) - h = ct.interconnect([g,s,k], - inputs=['r'], - outputs=['y'], - ignore_outputs=['g.dy']) + ct.interconnect([g,s,k], + inputs=['r'], + outputs=['y'], + ignore_outputs=['g.dy']) # no warning if auto-connect disabled - h = ct.interconnect([g,s,k], - connections=False) + ct.interconnect([g,s,k], + connections=False) # warn if explicity ignored output in fact used with pytest.warns( UserWarning, match=r"Output\(s\) specified as ignored is \(are\) used:"): - h = ct.interconnect([g,s,k], - inputs=['r'], - outputs=['y'], - ignore_outputs=['dy','u']) + ct.interconnect([g,s,k], + inputs=['r'], + outputs=['y'], + ignore_outputs=['dy','u']) with pytest.warns( UserWarning, match=r"Output\(s\) specified as ignored is \(are\) used:"): - h = ct.interconnect([g,s,k], - inputs=['r'], - outputs=['y'], - ignore_outputs=['dy', ('k.u')]) + ct.interconnect([g,s,k], + inputs=['r'], + outputs=['y'], + ignore_outputs=['dy', ('k.u')]) # error if ignored signal doesn't exist with pytest.raises(ValueError): - h = ct.interconnect([g,s,k], - inputs=['r'], - outputs=['y'], - ignore_outputs=['v']) + ct.interconnect([g,s,k], + inputs=['r'], + outputs=['y'], + ignore_outputs=['v']) def test_interconnect_add_unused(): @@ -1881,12 +1896,12 @@ def test_input_output_broadcasting(): np.testing.assert_equal(resp_cov0.states, resp_init.states) # Specify only some of the initial conditions - with pytest.warns(UserWarning, match="initial state too short; padding"): - resp_short = ct.input_output_response(sys, T, [U[0], [0, 1]], [X0, 1]) + with pytest.warns(UserWarning, match="X0 too short; padding"): + ct.input_output_response(sys, T, [U[0], [0, 1]], [X0, 1]) # Make sure that inconsistent settings don't work with pytest.raises(ValueError, match="inconsistent"): - resp_bad = ct.input_output_response( + ct.input_output_response( sys, T, (U[0, :], U[:2, :-1]), [X0, P0]) @pytest.mark.parametrize("nstates, ninputs, noutputs", [ @@ -1928,7 +1943,7 @@ def test_nonuniform_timepts(nstates, noutputs, ninputs): def test_ss_nonlinear(): """Test ss() for creating nonlinear systems""" - with pytest.warns(DeprecationWarning, match="use nlsys()"): + with pytest.warns(FutureWarning, match="use nlsys()"): secord = ct.ss(secord_update, secord_output, inputs='u', outputs='y', states = ['x1', 'x2'], name='secord') assert secord.name == 'secord' @@ -1949,12 +1964,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(DeprecationWarning, match="use nlsys()"): + with pytest.warns(FutureWarning, 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(DeprecationWarning, match="use nlsys()"): + with pytest.warns(FutureWarning, match="use nlsys()"): with pytest.raises(TypeError, match="unrecognized keyword"): ct.ss(secord_update, remove_useless_states=True) @@ -2072,6 +2087,102 @@ def test_find_eqpt(x0, ix, u0, iu, y0, iy, dx0, idx, dt, x_expect, u_expect): np.testing.assert_allclose(np.array(xeq), x_expect, atol=1e-6) np.testing.assert_allclose(np.array(ueq), u_expect, atol=1e-6) + +# Test out new operating point version of find_eqpt +def test_find_operating_point(): + dt = 1 + sys = ct.NonlinearIOSystem( + eqpt_rhs, eqpt_out, dt=dt, states=3, inputs=2, outputs=2) + + # Conditions that lead to no exact solution (from previous unit test) + x0 = 0; ix = None + u0 = [-1, 0]; iu = None + y0 = None; iy = None + dx0 = None; idx = None + + # Default version: no equilibrium solution => returns None + op_point = ct.find_operating_point( + sys, x0, u0, y0, ix=ix, iu=iu, iy=iy, dx0=dx0, idx=idx) + assert op_point.states is None + assert op_point.inputs is None + assert op_point.result.success is False + + # Change the method to Levenberg-Marquardt (gives nearest point) + op_point = ct.find_operating_point( + sys, x0, u0, y0, ix=ix, iu=iu, iy=iy, dx0=dx0, idx=idx, + root_method='lm') + assert op_point.states is not None + assert op_point.inputs is not None + assert op_point.result.success is True + + # Make sure we get a solution if we ask for the result explicitly + op_point = ct.find_operating_point( + sys, x0, u0, y0, ix=ix, iu=iu, iy=iy, dx0=dx0, idx=idx, + return_result=True) + assert op_point.states is not None + assert op_point.inputs is not None + assert op_point.result.success is False + + # Check to make sure unknown keywords are caught + with pytest.raises(TypeError, match="unrecognized keyword"): + ct.find_operating_point(sys, x0, u0, unknown=None) + + +def test_operating_point(): + dt = 1 + sys = ct.NonlinearIOSystem( + eqpt_rhs, eqpt_out, dt=dt, states=3, inputs=2, outputs=2) + + # Find the operating point near the origin + op_point = ct.find_operating_point(sys, 0, 0) + + # Linearize the old fashioned way + linsys_orig = ct.linearize(sys, op_point.states, op_point.inputs) + + # Linearize around the operating point + linsys_oppt = ct.linearize(sys, op_point) + + np.testing.assert_allclose(linsys_orig.A, linsys_oppt.A) + np.testing.assert_allclose(linsys_orig.B, linsys_oppt.B) + np.testing.assert_allclose(linsys_orig.C, linsys_oppt.C) + np.testing.assert_allclose(linsys_orig.D, linsys_oppt.D) + + # Call find_operating_point with method and keyword arguments + op_point = ct.find_operating_point( + sys, 0, 0, root_method='lm', root_kwargs={'tol': 1e-6}) + + # Make sure we can get back the right arguments in a tuple + op_point = ct.find_operating_point(sys, 0, 0, return_outputs=True) + assert len(op_point) == 3 + assert isinstance(op_point[0], np.ndarray) + assert isinstance(op_point[1], np.ndarray) + assert isinstance(op_point[2], np.ndarray) + + with pytest.warns( + (FutureWarning, PendingDeprecationWarning), match="return_outputs"): + op_point = ct.find_operating_point(sys, 0, 0, return_y=True) + assert len(op_point) == 3 + assert isinstance(op_point[0], np.ndarray) + assert isinstance(op_point[1], np.ndarray) + assert isinstance(op_point[2], np.ndarray) + + # Make sure we can get back the right arguments in a tuple + op_point = ct.find_operating_point(sys, 0, 0, return_result=True) + assert len(op_point) == 3 + assert isinstance(op_point[0], np.ndarray) + assert isinstance(op_point[1], np.ndarray) + assert isinstance(op_point[2], scipy.optimize.OptimizeResult) + + # Make sure we can get back the right arguments in a tuple + op_point = ct.find_operating_point( + sys, 0, 0, return_result=True, return_outputs=True) + assert len(op_point) == 4 + assert isinstance(op_point[0], np.ndarray) + assert isinstance(op_point[1], np.ndarray) + assert isinstance(op_point[2], np.ndarray) + assert isinstance(op_point[3], scipy.optimize.OptimizeResult) + + def test_iosys_sample(): csys = ct.rss(2, 1, 1) dsys = csys.sample(0.1) @@ -2082,3 +2193,229 @@ def test_iosys_sample(): dsys = ct.sample_system(csys, 0.1) assert isinstance(dsys, ct.StateSpace) assert dsys.dt == 0.1 + + +# Make sure that we can determine system sizes automatically +def test_find_size(): + # Create a nonlinear system with no size information + sys = ct.nlsys( + lambda t, x, u, params: -x + u, + lambda t, x, u, params: x[:1]) + + # Run a simulation with size set by parameters + timepts = np.linspace(0, 1) + resp = ct.input_output_response(sys, timepts, [0, 1], X0=[0, 0]) + assert resp.states.shape[0] == 2 + assert resp.inputs.shape[0] == 2 + assert resp.outputs.shape[0] == 1 + + # + # Make sure we get warnings if things are inconsistent + # + + # Define a system of fixed size + sys = ct.nlsys( + lambda t, x, u, params: -x + u, + lambda t, x, u, params: x[:1], + inputs=2, states=2) + + with pytest.raises(ValueError, match="inconsistent .* size of X0"): + resp = ct.input_output_response(sys, timepts, [0, 1], X0=[0, 0, 1]) + + with pytest.raises(ValueError, match=".*U.* Wrong shape"): + resp = ct.input_output_response(sys, timepts, [0, 1, 2], X0=[0, 0]) + + with pytest.raises(RuntimeError, match="inconsistent size of outputs"): + sys = ct.nlsys( + lambda t, x, u, params: -x + u, + lambda t, x, u, params: x[:1], + inputs=2, states=2, outputs=2) + resp = ct.input_output_response(sys, timepts, [0, 1], X0=[0, 0]) + + +def test_update_names(): + sys = ct.rss(['x1', 'x2'], 2, 2) + sys.update_names( + name='new', states=2, inputs=['u1', 'u2'], + outputs=2, output_prefix='yy') + assert sys.name == 'new' + assert sys.ninputs == 2 + assert sys.input_labels == ['u1', 'u2'] + assert sys.ninputs == 2 + assert sys.output_labels == ['yy[0]', 'yy[1]'] + assert sys.state_labels == ['x[0]', 'x[1]'] + + # Generate some error conditions + with pytest.raises(ValueError, match="number of inputs does not match"): + sys.update_names(inputs=3) + + with pytest.raises(ValueError, match="number of outputs does not match"): + sys.update_names(outputs=3) + + with pytest.raises(ValueError, match="number of states does not match"): + sys.update_names(states=3) + + with pytest.raises(ValueError, match="number of states does not match"): + siso = ct.tf([1], [1, 2, 1]) + ct.tf(siso).update_names(states=2) + + with pytest.raises(TypeError, match="unrecognized keywords"): + sys.update_names(dt=1) + + with pytest.raises(TypeError, match=".* takes 1 positional argument"): + sys.update_names(5) + + +def test_signal_indexing(): + # Response with two outputs, no traces + resp = ct.initial_response(ct.rss(4, 2, 1, strictly_proper=True)) + assert resp.outputs['y[0]'].shape == resp.outputs.shape[1:] + assert resp.outputs[0, 0].item() == 0 + + # Implicitly squeezed response + resp = ct.step_response(ct.rss(4, 1, 1, strictly_proper=True)) + for key in [ ['y[0]', 'y[0]'], ('y[0]', 'u[0]') ]: + with pytest.raises(IndexError, match=r"signal name\(s\) not valid"): + resp.outputs.__getitem__(key) + + # Explicitly squeezed response + resp = ct.step_response( + ct.rss(4, 2, 1, strictly_proper=True), squeeze=True) + assert resp.outputs['y[0]'].shape == resp.outputs.shape[1:] + with pytest.raises(IndexError, match=r"signal name\(s\) not valid"): + resp.outputs['y[0]', 'u[0]'] + + +@pytest.mark.parametrize("fcn, spec, expected, missing", [ + (ct.ss, {}, "states=4, outputs=3, inputs=2", r"dt|name"), + (ct.tf, {}, "outputs=3, inputs=2", r"dt|states|name"), + (ct.frd, {}, "outputs=3, inputs=2", r"dt|states|name"), + (ct.ss, {'dt': 0.1}, ".*\ndt=0.1,\nstates=4, outputs=3, inputs=2", r"name"), + (ct.tf, {'dt': 0.1}, ".*\ndt=0.1,\noutputs=3, inputs=2", r"states|name"), + (ct.frd, {'dt': 0.1}, ".*\ndt=0.1,\noutputs=3, inputs=2", r"states|name"), + (ct.ss, {'dt': True}, "\ndt=True,\nstates=4, outputs=3, inputs=2", r"name"), + (ct.ss, {'dt': None}, "\ndt=None,\nstates=4, outputs=3, inputs=2", r"name"), + (ct.ss, {'dt': 0}, "states=4, outputs=3, inputs=2", r"dt|name"), + (ct.ss, {'name': 'mysys'}, "\nname='mysys'", r"dt"), + (ct.tf, {'name': 'mysys'}, "\nname='mysys'", r"dt|states"), + (ct.frd, {'name': 'mysys'}, "\nname='mysys'", r"dt|states"), + (ct.ss, {'inputs': ['u1']}, + r"[\n]states=4, outputs=3, inputs=\['u1'\]", r"dt|name"), + (ct.tf, {'inputs': ['u1']}, + r"[\n]outputs=3, inputs=\['u1'\]", r"dt|name"), + (ct.frd, {'inputs': ['u1'], 'name': 'sampled'}, + r"[\n]name='sampled', outputs=3, inputs=\['u1'\]", r"dt"), + (ct.ss, {'outputs': ['y1']}, + r"[\n]states=4, outputs=\['y1'\], inputs=2", r"dt|name"), + (ct.ss, {'name': 'mysys', 'inputs': ['u1']}, + r"[\n]name='mysys', states=4, outputs=3, inputs=\['u1'\]", r"dt"), + (ct.ss, {'name': 'mysys', 'states': [ + 'long_state_1', 'long_state_2', 'long_state_3']}, + r"[\n]name='.*', states=\[.*\],\noutputs=3, inputs=2\)", r"dt"), +]) +@pytest.mark.parametrize("format", ['info', 'eval']) +def test_iosys_repr(fcn, spec, expected, missing, format): + spec['outputs'] = spec.get('outputs', 3) + spec['inputs'] = spec.get('inputs', 2) + if fcn is ct.ss: + spec['states'] = spec.get('states', 4) + + sys = ct.rss(**spec) + match fcn: + case ct.frd: + omega = np.logspace(-1, 1) + sys = fcn(sys, omega, name=spec.get('name')) + case ct.tf: + sys = fcn(sys, name=spec.get('name')) + assert sys.shape == (sys.noutputs, sys.ninputs) + + # Construct the 'info' format + info_expected = f"<{sys.__class__.__name__} {sys.name}: " \ + f"{sys.input_labels} -> {sys.output_labels}" + if sys.dt != 0: + info_expected += f", dt={sys.dt}>" + else: + info_expected += ">" + + # Make sure the default format is OK + out = repr(sys) + if ct.config.defaults['iosys.repr_format'] == 'info': + assert out == info_expected + else: + assert re.search(expected, out) != None + + # Now set the format to the given type and make sure things look right + sys.repr_format = format + out = repr(sys) + if format == 'eval': + assert re.search(expected, out) is not None + + if missing is not None: + assert re.search(missing, out) is None + + elif format == 'info': + assert out == info_expected + + # Make sure we can change back to the default format + sys.repr_format = None + + # Make sure the default format is OK + out = repr(sys) + if ct.config.defaults['iosys.repr_format'] == 'info': + assert out == info_expected + elif ct.config.defaults['iosys.repr_format'] == 'eval': + assert re.search(expected, out) != None + + +@pytest.mark.parametrize("fcn", [ct.ss, ct.tf, ct.frd, ct.nlsys, fs.flatsys]) +def test_relabeling(fcn): + sys = ct.rss(1, 1, 1, name="sys") + + # Rename the inputs, outputs, (states,) system + match fcn: + case ct.tf: + sys = fcn(sys, inputs='u', outputs='y', name='new') + case ct.frd: + sys = fcn(sys, [0.1, 1, 10], inputs='u', outputs='y', name='new') + case _: + sys = fcn(sys, inputs='u', outputs='y', states='x', name='new') + + assert sys.input_labels == ['u'] + assert sys.output_labels == ['y'] + if sys.nstates: + assert sys.state_labels == ['x'] + assert sys.name == 'new' + + +@pytest.mark.parametrize("fcn", [ct.ss, ct.tf, ct.frd, ct.nlsys, fs.flatsys]) +def test_signal_prefixing(fcn): + sys = ct.rss(2, 1, 1) + + # Recreate the system in different forms, with non-standard prefixes + match fcn: + case ct.ss: + sys = ct.ss( + sys.A, sys.B, sys.C, sys.D, state_prefix='xx', + input_prefix='uu', output_prefix='yy') + case ct.tf: + sys = ct.tf(sys) + sys = fcn(sys.num, sys.den, input_prefix='uu', output_prefix='yy') + case ct.frd: + freq = [0.1, 1, 10] + data = [sys(w * 1j) for w in freq] + sys = fcn(data, freq, input_prefix='uu', output_prefix='yy') + case ct.nlsys: + sys = ct.nlsys(sys) + sys = fcn( + sys.updfcn, sys.outfcn, inputs=1, outputs=1, states=2, + state_prefix='xx', input_prefix='uu', output_prefix='yy') + case fs.flatsys: + sys = fs.flatsys(sys) + sys = fcn( + sys.forward, sys.reverse, inputs=1, outputs=1, states=2, + state_prefix='xx', input_prefix='uu', output_prefix='yy') + + assert sys.input_labels == ['uu[0]'] + assert sys.output_labels == ['yy[0]'] + if sys.nstates: + assert sys.state_labels == ['xx[0]', 'xx[1]'] diff --git a/control/tests/kwargs_test.py b/control/tests/kwargs_test.py index 8180ff418..566b35a28 100644 --- a/control/tests/kwargs_test.py +++ b/control/tests/kwargs_test.py @@ -11,23 +11,29 @@ # is a unit test that checks for unrecognized keywords. import inspect -import pytest import warnings -import matplotlib.pyplot as plt + +import pytest + +import numpy as np import control import control.flatsys - +import control.tests.descfcn_test as descfcn_test # List of all of the test modules where kwarg unit tests are defined import control.tests.flatsys_test as flatsys_test import control.tests.frd_test as frd_test +import control.tests.freqplot_test as freqplot_test import control.tests.interconnect_test as interconnect_test +import control.tests.iosys_test as iosys_test import control.tests.optimal_test as optimal_test +import control.tests.statesp_test as statesp_test import control.tests.statefbk_test as statefbk_test import control.tests.stochsys_test as stochsys_test -import control.tests.trdata_test as trdata_test import control.tests.timeplot_test as timeplot_test -import control.tests.descfcn_test as descfcn_test +import control.tests.timeresp_test as timeresp_test +import control.tests.trdata_test as trdata_test + @pytest.mark.parametrize("module, prefix", [ (control, ""), (control.flatsys, "flatsys."), @@ -53,8 +59,9 @@ def test_kwarg_search(module, prefix): # Get the signature for the function sig = inspect.signature(obj) - # Skip anything that is inherited - if inspect.isclass(module) and obj.__name__ not in module.__dict__: + # Skip anything that is inherited or hidden + if inspect.isclass(module) and obj.__name__ not in module.__dict__ \ + or obj.__name__.startswith('_'): continue # See if there is a variable keyword argument @@ -91,20 +98,26 @@ def test_kwarg_search(module, prefix): @pytest.mark.parametrize( "function, nsssys, ntfsys, moreargs, kwargs", - [(control.dlqe, 1, 0, ([[1]], [[1]]), {}), + [(control.append, 2, 0, (), {}), + (control.combine_tf, 0, 0, ([[1, 0], [0, 1]], ), {}), + (control.dlqe, 1, 0, ([[1]], [[1]]), {}), (control.dlqr, 1, 0, ([[1, 0], [0, 1]], [[1]]), {}), (control.drss, 0, 0, (2, 1, 1), {}), + (control.feedback, 2, 0, (), {}), (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]]), {}), (control.linearize, 1, 0, (0, 0), {}), + (control.negate, 1, 0, (), {}), (control.nlsys, 0, 0, (lambda t, x, u, params: np.array([0]),), {}), + (control.parallel, 2, 0, (), {}), (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.series, 2, 0, (), {}), (control.set_defaults, 0, 0, ('control',), {'default_dt': True}), (control.ss, 0, 0, (0, 0, 0, 0), {'dt': 1}), (control.ss2io, 1, 0, (), {}), @@ -121,6 +134,7 @@ def test_kwarg_search(module, prefix): (control.LTI, 0, 0, (), {'inputs': 1, 'outputs': 1, 'states': 1}), (control.flatsys.LinearFlatSystem, 1, 0, (), {}), + (control.InputOutputSystem.update_names, 1, 0, (), {}), (control.NonlinearIOSystem.linearize, 1, 0, (0, 0), {}), (control.StateSpace.sample, 1, 0, (0.1,), {}), (control.StateSpace, 0, 0, @@ -160,6 +174,7 @@ def test_unrecognized_kwargs(function, nsssys, ntfsys, moreargs, kwargs, (control.phase_plane_plot, 1, ([-1, 1, -1, 1], 1), {}), (control.phaseplot.streamlines, 1, ([-1, 1, -1, 1], 1), {}), (control.phaseplot.vectorfield, 1, ([-1, 1, -1, 1], ), {}), + (control.phaseplot.streamplot, 1, ([-1, 1, -1, 1], ), {}), (control.phaseplot.equilpoints, 1, ([-1, 1, -1, 1], ), {}), (control.phaseplot.separatrices, 1, ([-1, 1, -1, 1], ), {}), (control.singular_values_plot, 1, (), {})] @@ -193,9 +208,9 @@ def test_matplotlib_kwargs(function, nsysargs, moreargs, kwargs, mplcleanup): def test_response_plot_kwargs(data_fcn, plot_fcn, mimo): # Create a system for testing if mimo: - response = data_fcn(control.rss(4, 2, 2)) + response = data_fcn(control.rss(4, 2, 2, strictly_proper=True)) else: - response = data_fcn(control.rss(4, 1, 1)) + response = data_fcn(control.rss(4, 1, 1, strictly_proper=True)) # Make sure that calling the data function with unknown keyword errs with pytest.raises( @@ -231,8 +246,11 @@ def test_response_plot_kwargs(data_fcn, plot_fcn, mimo): # kwarg_unittest = { + 'append': test_unrecognized_kwargs, 'bode': test_response_plot_kwargs, 'bode_plot': test_response_plot_kwargs, + 'LTI.bode_plot': test_response_plot_kwargs, # tested via bode_plot + 'combine_tf': test_unrecognized_kwargs, 'create_estimator_iosystem': stochsys_test.test_estimator_errors, 'create_statefbk_iosystem': statefbk_test.TestStatefbk.test_statefbk_errors, 'describing_function_plot': test_matplotlib_kwargs, @@ -241,35 +259,56 @@ def test_response_plot_kwargs(data_fcn, plot_fcn, mimo): 'dlqe': test_unrecognized_kwargs, 'dlqr': test_unrecognized_kwargs, 'drss': test_unrecognized_kwargs, + 'feedback': test_unrecognized_kwargs, + 'find_eqpt': iosys_test.test_find_operating_point, + 'find_operating_point': iosys_test.test_find_operating_point, 'flatsys.flatsys': test_unrecognized_kwargs, + 'forced_response': timeresp_test.test_timeresp_aliases, + 'frd': frd_test.TestFRD.test_unrecognized_keyword, 'gangof4': test_matplotlib_kwargs, 'gangof4_plot': test_matplotlib_kwargs, + 'impulse_response': timeresp_test.test_timeresp_aliases, + 'initial_response': timeresp_test.test_timeresp_aliases, 'input_output_response': test_unrecognized_kwargs, 'interconnect': interconnect_test.test_interconnect_exceptions, 'time_response_plot': timeplot_test.test_errors, 'linearize': test_unrecognized_kwargs, 'lqe': test_unrecognized_kwargs, 'lqr': test_unrecognized_kwargs, + 'LTI.forced_response': statesp_test.test_convenience_aliases, + 'LTI.impulse_response': statesp_test.test_convenience_aliases, + 'LTI.initial_response': statesp_test.test_convenience_aliases, + 'LTI.step_response': statesp_test.test_convenience_aliases, + 'negate': test_unrecognized_kwargs, 'nichols_plot': test_matplotlib_kwargs, + 'LTI.nichols_plot': test_matplotlib_kwargs, # tested via nichols_plot 'nichols': test_matplotlib_kwargs, 'nlsys': test_unrecognized_kwargs, 'nyquist': test_matplotlib_kwargs, 'nyquist_response': test_response_plot_kwargs, 'nyquist_plot': test_matplotlib_kwargs, + 'LTI.nyquist_plot': test_matplotlib_kwargs, # tested via nyquist_plot 'phase_plane_plot': test_matplotlib_kwargs, + 'parallel': test_unrecognized_kwargs, 'pole_zero_plot': test_unrecognized_kwargs, 'pzmap': test_unrecognized_kwargs, 'rlocus': test_unrecognized_kwargs, 'root_locus': test_unrecognized_kwargs, 'root_locus_plot': test_unrecognized_kwargs, 'rss': test_unrecognized_kwargs, + 'series': test_unrecognized_kwargs, 'set_defaults': test_unrecognized_kwargs, 'singular_values_plot': test_matplotlib_kwargs, 'ss': test_unrecognized_kwargs, + 'step_info': timeresp_test.test_timeresp_aliases, + 'step_response': timeresp_test.test_timeresp_aliases, + 'LTI.to_ss': test_unrecognized_kwargs, # tested via 'ss' 'ss2io': test_unrecognized_kwargs, 'ss2tf': test_unrecognized_kwargs, 'summing_junction': interconnect_test.test_interconnect_exceptions, + 'suptitle': freqplot_test.test_suptitle, 'tf': test_unrecognized_kwargs, + 'LTI.to_tf': test_unrecognized_kwargs, # tested via 'ss' 'tf2io' : test_unrecognized_kwargs, 'tf2ss' : test_unrecognized_kwargs, 'sample_system' : test_unrecognized_kwargs, @@ -277,34 +316,42 @@ def test_response_plot_kwargs(data_fcn, plot_fcn, mimo): 'zpk': test_unrecognized_kwargs, 'flatsys.point_to_point': flatsys_test.TestFlatSys.test_point_to_point_errors, + 'flatsys.solve_flat_optimal': + flatsys_test.TestFlatSys.test_solve_flat_ocp_errors, 'flatsys.solve_flat_ocp': flatsys_test.TestFlatSys.test_solve_flat_ocp_errors, 'flatsys.FlatSystem.__init__': test_unrecognized_kwargs, 'optimal.create_mpc_iosystem': optimal_test.test_mpc_iosystem_rename, + 'optimal.solve_optimal_trajectory': optimal_test.test_ocp_argument_errors, 'optimal.solve_ocp': optimal_test.test_ocp_argument_errors, + 'optimal.solve_optimal_estimate': optimal_test.test_oep_argument_errors, 'optimal.solve_oep': optimal_test.test_oep_argument_errors, + 'ControlPlot.set_plot_title': freqplot_test.test_suptitle, 'FrequencyResponseData.__init__': frd_test.TestFRD.test_unrecognized_keyword, 'FrequencyResponseData.plot': test_response_plot_kwargs, + 'FrequencyResponseList.plot': freqplot_test.test_freqresplist_unknown_kw, 'DescribingFunctionResponse.plot': descfcn_test.test_describing_function_exceptions, 'InputOutputSystem.__init__': test_unrecognized_kwargs, + 'InputOutputSystem.update_names': 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, + 'NyquistResponseList.plot': test_response_plot_kwargs, 'PoleZeroData.plot': test_response_plot_kwargs, + 'PoleZeroList.plot': test_response_plot_kwargs, 'InterconnectedSystem.__init__': interconnect_test.test_interconnect_exceptions, - 'StateSpace.__init__': - interconnect_test.test_interconnect_exceptions, - 'StateSpace.sample': test_unrecognized_kwargs, 'NonlinearIOSystem.__init__': interconnect_test.test_interconnect_exceptions, 'StateSpace.__init__': test_unrecognized_kwargs, + 'StateSpace.initial_response': timeresp_test.test_timeresp_aliases, 'StateSpace.sample': test_unrecognized_kwargs, 'TimeResponseData.__call__': trdata_test.test_response_copy, 'TimeResponseData.plot': timeplot_test.test_errors, + 'TimeResponseList.plot': timeplot_test.test_errors, 'TransferFunction.__init__': test_unrecognized_kwargs, 'TransferFunction.sample': test_unrecognized_kwargs, 'optimal.OptimalControlProblem.__init__': @@ -315,10 +362,13 @@ def test_response_plot_kwargs(data_fcn, plot_fcn, mimo): optimal_test.test_ocp_argument_errors, 'optimal.OptimalEstimationProblem.__init__': optimal_test.test_oep_argument_errors, + 'optimal.OptimalEstimationProblem.compute_estimate': + stochsys_test.test_oep, 'optimal.OptimalEstimationProblem.create_mhe_iosystem': optimal_test.test_oep_argument_errors, 'phaseplot.streamlines': test_matplotlib_kwargs, 'phaseplot.vectorfield': test_matplotlib_kwargs, + 'phaseplot.streamplot': test_matplotlib_kwargs, 'phaseplot.equilpoints': test_matplotlib_kwargs, 'phaseplot.separatrices': test_matplotlib_kwargs, } diff --git a/control/tests/lti_test.py b/control/tests/lti_test.py index 734bdb40b..17dc7796e 100644 --- a/control/tests/lti_test.py +++ b/control/tests/lti_test.py @@ -1,15 +1,17 @@ """lti_test.py""" +import re + import numpy as np import pytest -from .conftest import editsdefaults 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 -from control.tests.conftest import slycotonly +from control import NonlinearIOSystem, c2d, common_timebase, isctime, \ + isdtime, issiso, ss, tf, tf2ss from control.exception import slycot_check +from control.lti import LTI, bandwidth, damp, dcgain, evalfr, poles, zeros +from control.tests.conftest import slycotonly + class TestLTI: @pytest.mark.parametrize("fun, args", [ @@ -22,10 +24,10 @@ def test_poles(self, fun, args): np.testing.assert_allclose(poles(sys), 42) with pytest.raises(AttributeError, match="no attribute 'pole'"): - pole_list = sys.pole() + sys.pole() with pytest.raises(AttributeError, match="no attribute 'pole'"): - pole_list = ct.pole(sys) + ct.pole(sys) @pytest.mark.parametrize("fun, args", [ [tf, (126, [-1, 42])], @@ -37,10 +39,10 @@ def test_zeros(self, fun, args): np.testing.assert_allclose(zeros(sys), 42) with pytest.raises(AttributeError, match="no attribute 'zero'"): - zero_list = sys.zero() + sys.zero() with pytest.raises(AttributeError, match="no attribute 'zero'"): - zero_list = ct.zero(sys) + ct.zero(sys) def test_issiso(self): assert issiso(1) @@ -71,7 +73,7 @@ def test_issiso_mimo(self): assert not issiso(sys, strict=True) def test_damp(self): - # Test the continuous time case. + # Test the continuous-time case. zeta = 0.1 wn = 42 p = -wn * zeta + 1j * wn * np.sqrt(1 - zeta**2) @@ -80,7 +82,7 @@ def test_damp(self): np.testing.assert_allclose(sys.damp(), expected) np.testing.assert_allclose(damp(sys), expected) - # Also test the discrete time case. + # Also test the discrete-time case. dt = 0.001 sys_dt = c2d(sys, dt, method='matched') p_zplane = np.exp(p*dt) @@ -291,7 +293,7 @@ def test_squeeze_exceptions(self, fcn): sys = fcn(ct.rss(2, 1, 1)) with pytest.raises(ValueError, match="unknown squeeze value"): - resp = sys.frequency_response([1], squeeze='siso') + sys.frequency_response([1], squeeze='siso') with pytest.raises(ValueError, match="unknown squeeze value"): sys([1j], squeeze='siso') with pytest.raises(ValueError, match="unknown squeeze value"): @@ -303,3 +305,104 @@ 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]]) + + +@pytest.mark.parametrize( + "outdx, inpdx, key", + [('y[0]', 'u[1]', (0, 1)), + (['y[0]'], ['u[1]'], (0, 1)), + (slice(0, 1, 1), slice(1, 2, 1), (0, 1)), + (['y[0]', 'y[1]'], ['u[1]', 'u[2]'], ([0, 1], [1, 2])), + ([0, 'y[1]'], ['u[1]', 2], ([0, 1], [1, 2])), + (slice(0, 2, 1), slice(1, 3, 1), ([0, 1], [1, 2])), + (['y[2]', 'y[1]'], ['u[2]', 'u[0]'], ([2, 1], [2, 0])), + ]) +@pytest.mark.parametrize("fcn", [ct.ss, ct.tf, ct.frd]) +def test_subsys_indexing(fcn, outdx, inpdx, key): + # Construct the base system and subsystem + sys = ct.rss(4, 3, 3) + subsys = sys[key] + + # Construct the system to be tested + match fcn: + case ct.frd: + omega = np.logspace(-1, 1) + sys = fcn(sys, omega) + subsys_chk = fcn(subsys, omega) + case _: + sys = fcn(sys) + subsys_chk = fcn(subsys) + + # Construct the subsystem + subsys_fcn = sys[outdx, inpdx] + + # Check to make sure everythng matches up + match fcn: + case ct.frd: + np.testing.assert_almost_equal( + subsys_fcn.complex, subsys_chk.complex) + case ct.ss: + np.testing.assert_almost_equal(subsys_fcn.A, subsys_chk.A) + np.testing.assert_almost_equal(subsys_fcn.B, subsys_chk.B) + np.testing.assert_almost_equal(subsys_fcn.C, subsys_chk.C) + np.testing.assert_almost_equal(subsys_fcn.D, subsys_chk.D) + case ct.tf: + omega = np.logspace(-1, 1) + np.testing.assert_almost_equal( + subsys_fcn.frequency_response(omega).complex, + subsys_chk.frequency_response(omega).complex) + + +@pytest.mark.parametrize("op", [ + '__mul__', '__rmul__', '__add__', '__radd__', '__sub__', '__rsub__']) +@pytest.mark.parametrize("fcn", [ct.ss, ct.tf, ct.frd]) +def test_scalar_algebra(op, fcn): + sys_ss = ct.rss(4, 2, 2) + match fcn: + case ct.ss: + sys = sys_ss + case ct.tf: + sys = ct.tf(sys_ss) + case ct.frd: + sys = ct.frd(sys_ss, [0.1, 1, 10]) + + scaled = getattr(sys, op)(2) + np.testing.assert_almost_equal(getattr(sys(1j), op)(2), scaled(1j)) + + +@pytest.mark.parametrize( + "fcn, args, kwargs, suppress, " + + "repr_expected, str_expected, latex_expected", [ + (ct.ss, (-1e-12, 1, 2, 3), {}, False, + r"StateSpace\([\s]*array\(\[\[-1.e-12\]\]\).*", + None, # standard Numpy formatting + r"10\^\{-12\}"), + (ct.ss, (-1e-12, 1, 3, 3), {}, True, + r"StateSpace\([\s]*array\(\[\[-0\.\]\]\).*", + None, # standard Numpy formatting + r"-0"), + (ct.tf, ([1, 1e-12, 1], [1, 2, 1]), {}, False, + r"\[1\.e\+00, 1\.e-12, 1.e\+00\]", + r"s\^2 \+ 1e-12 s \+ 1", + r"1 \\times 10\^\{-12\}"), + (ct.tf, ([1, 1e-12, 1], [1, 2, 1]), {}, True, + r"\[1\., 0., 1.\]", + r"s\^2 \+ 1", + r"\{s\^2 \+ 1\}"), +]) +@pytest.mark.usefixtures("editsdefaults") +def test_printoptions( + fcn, args, kwargs, suppress, + repr_expected, str_expected, latex_expected): + sys = fcn(*args, **kwargs) + + with np.printoptions(suppress=suppress): + # Test loadable representation + assert re.search(repr_expected, ct.iosys_repr(sys, 'eval')) is not None + + # Test string representation + if str_expected is not None: + assert re.search(str_expected, str(sys)) is not None + + # Test LaTeX/HTML representation + assert re.search(latex_expected, sys._repr_html_()) is not None diff --git a/control/tests/margin_test.py b/control/tests/margin_test.py index 07e21114f..43cd68ae3 100644 --- a/control/tests/margin_test.py +++ b/control/tests/margin_test.py @@ -12,12 +12,9 @@ from numpy import inf, nan from numpy.testing import assert_allclose -from control.frdata import FrequencyResponseData -from control.margins import (margin, phase_crossover_frequencies, - stability_margins) -from control.statesp import StateSpace -from control.xferfcn import TransferFunction -from control.exception import ControlMIMONotImplemented +from control import ControlMIMONotImplemented, FrequencyResponseData, \ + StateSpace, TransferFunction, margin, phase_crossover_frequencies, \ + stability_margins s = TransferFunction.s @@ -111,7 +108,6 @@ def test_margin_3input(tsys): out = margin((mag, phase*180/np.pi, omega_)) assert_allclose(out, np.array(refout)[[0, 1, 3, 4]], atol=1.5e-3) - @pytest.mark.parametrize( 'tfargs, omega_ref, gain_ref', [(([1], [1, 2, 3, 4]), [1.7325, 0.], [-0.5, 0.25]), @@ -119,7 +115,10 @@ def test_margin_3input(tsys): (([2], [1, 3, 3, 1]), [1.732, 0.], [-0.25, 2.]), ((np.array([3, 11, 3]) * 1e-4, [1., -2.7145, 2.4562, -0.7408], .1), [1.6235, 0.], [-0.28598, 1.88889]), + (([200.0], [1.0, 21.0, 20.0, 0.0]), + [4.47213595, 0], [-0.47619048, inf]), ]) +@pytest.mark.filterwarnings("error") def test_phase_crossover_frequencies(tfargs, omega_ref, gain_ref): """Test phase_crossover_frequencies() function""" sys = TransferFunction(*tfargs) diff --git a/control/tests/matlab2_test.py b/control/tests/matlab2_test.py index 5eedfc2ec..f8b0d2b40 100644 --- a/control/tests/matlab2_test.py +++ b/control/tests/matlab2_test.py @@ -16,7 +16,6 @@ from control.matlab import ss, step, impulse, initial, lsim, dcgain, ss2tf from control.timeresp import _check_convert_array -from control.tests.conftest import slycotonly class TestControlMatlab: @@ -49,7 +48,6 @@ def MIMO_mats(self): D = zeros((2, 2)) return A, B, C, D - @slycotonly def test_dcgain_mimo(self, MIMO_mats): """Test function dcgain with MIMO systems""" #Test MIMO systems @@ -88,7 +86,7 @@ def test_dcgain_2(self, SISO_mats): Z, P, k = scipy.signal.tf2zpk(num[0][-1], den) sys_ss = ss(A, B, C, D) - #Compute the gain with ``dcgain`` + #Compute the gain with `dcgain` gain_abcd = dcgain(A, B, C, D) gain_zpk = dcgain(Z, P, k) gain_numden = dcgain(np.squeeze(num), den) @@ -110,7 +108,7 @@ def test_dcgain_2(self, SISO_mats): decimal=6) def test_step(self, SISO_mats, MIMO_mats, mplcleanup): - """Test function ``step``.""" + """Test function `step`.""" figure(); plot_shape = (1, 3) #Test SISO system @@ -154,7 +152,8 @@ def test_impulse(self, SISO_mats, mplcleanup): t, y = impulse(sys, T) plot(t, y, label='t=0..2') - #Test system with direct feed-though, the function should print a warning. + # Test system with direct feedthough, the function should + # print a warning. D = [[0.5]] sys_ft = ss(A, B, C, D) with pytest.warns(UserWarning, match="has direct feedthrough"): @@ -231,7 +230,7 @@ def test_check_convert_shape(self): assert isinstance(arr, np.ndarray) assert not isinstance(arr, matrix) - #Convert array-like objects to arrays + #Convert array_like objects to arrays #Input is matrix, shape (1,3), must convert to array arr = _check_convert_array(matrix("1. 2 3"), [(3,), (1,3)], 'Test: ') assert isinstance(arr, np.ndarray) @@ -321,12 +320,12 @@ def test_lsim(self, SISO_mats, MIMO_mats): #T is None; - special handling: Value error self.assertRaises(ValueError, lsim(sys, U=0, T=None, x0=0)) #T="hello" : Wrong type - #TODO: better wording of error messages of ``lsim`` and - # ``_check_convert_array``, when wrong type is given. + #TODO: better wording of error messages of `lsim` and + # `_check_convert_array`, when wrong type is given. # Current error message is too cryptic. self.assertRaises(TypeError, lsim(sys, U=0, T="hello", x0=0)) #T=0; - T can not be zero dimensional, it determines the size of the - # input vector ``U`` + # input vector `U` self.assertRaises(ValueError, lsim(sys, U=0, T=0, x0=0)) #T is not monotonically increasing self.assertRaises(ValueError, lsim(sys, U=0, T=[0., 1., 2., 2., 3.], x0=0)) @@ -334,7 +333,7 @@ def test_lsim(self, SISO_mats, MIMO_mats): def assert_systems_behave_equal(self, sys1, sys2): ''' - Test if the behavior of two LTI systems is equal. Raises ``AssertionError`` + Test if the behavior of two LTI systems is equal. Raises `AssertionError` if the systems are not equal. Works only for SISO systems. @@ -344,7 +343,7 @@ def assert_systems_behave_equal(self, sys1, sys2): #gain of both systems must be the same assert_array_almost_equal(dcgain(sys1), dcgain(sys2)) - #Results of ``step`` simulation must be the same too + #Results of `step` simulation must be the same too y1, t1 = step(sys1) y2, t2 = step(sys2, t1) assert_array_almost_equal(y1, y2) diff --git a/control/tests/matlab_test.py b/control/tests/matlab_test.py index 2ba3d5df8..c6a45e2a2 100644 --- a/control/tests/matlab_test.py +++ b/control/tests/matlab_test.py @@ -83,6 +83,7 @@ class tsystems: @pytest.mark.usefixtures("fixedseed") +@pytest.mark.filterwarnings("ignore::FutureWarning") class TestMatlab: """Test matlab style functions""" @@ -110,7 +111,7 @@ def siso(self): @pytest.fixture def mimo(self): - """Create MIMO system, contains ``siso_ss1`` twice""" + """Create MIMO system, contains `siso_ss1` twice""" m = tsystems() A = np.array([[1., -2., 0., 0.], [3., -4., 0., 0.], @@ -129,33 +130,33 @@ def mimo(self): def testParallel(self, siso): """Call parallel()""" - sys1 = parallel(siso.ss1, siso.ss2) - sys1 = parallel(siso.ss1, siso.tf2) - sys1 = parallel(siso.tf1, siso.ss2) - sys1 = parallel(1, siso.ss2) - sys1 = parallel(1, siso.tf2) - sys1 = parallel(siso.ss1, 1) - sys1 = parallel(siso.tf1, 1) + _sys1 = parallel(siso.ss1, siso.ss2) + _sys1 = parallel(siso.ss1, siso.tf2) + _sys1 = parallel(siso.tf1, siso.ss2) + _sys1 = parallel(1, siso.ss2) + _sys1 = parallel(1, siso.tf2) + _sys1 = parallel(siso.ss1, 1) + _sys1 = parallel(siso.tf1, 1) def testSeries(self, siso): """Call series()""" - sys1 = series(siso.ss1, siso.ss2) - sys1 = series(siso.ss1, siso.tf2) - sys1 = series(siso.tf1, siso.ss2) - sys1 = series(1, siso.ss2) - sys1 = series(1, siso.tf2) - sys1 = series(siso.ss1, 1) - sys1 = series(siso.tf1, 1) + _sys1 = series(siso.ss1, siso.ss2) + _sys1 = series(siso.ss1, siso.tf2) + _sys1 = series(siso.tf1, siso.ss2) + _sys1 = series(1, siso.ss2) + _sys1 = series(1, siso.tf2) + _sys1 = series(siso.ss1, 1) + _sys1 = series(siso.tf1, 1) def testFeedback(self, siso): """Call feedback()""" - sys1 = feedback(siso.ss1, siso.ss2) - sys1 = feedback(siso.ss1, siso.tf2) - sys1 = feedback(siso.tf1, siso.ss2) - sys1 = feedback(1, siso.ss2) - sys1 = feedback(1, siso.tf2) - sys1 = feedback(siso.ss1, 1) - sys1 = feedback(siso.tf1, 1) + _sys1 = feedback(siso.ss1, siso.ss2) + _sys1 = feedback(siso.ss1, siso.tf2) + _sys1 = feedback(siso.tf1, siso.ss2) + _sys1 = feedback(1, siso.ss2) + _sys1 = feedback(1, siso.tf2) + _sys1 = feedback(siso.ss1, 1) + _sys1 = feedback(siso.tf1, 1) def testPoleZero(self, siso): """Call pole() and zero()""" @@ -173,6 +174,7 @@ def testPZmap(self, siso, subsys, mplcleanup): # pzmap(siso.ss1); not implemented # pzmap(siso.ss2); not implemented pzmap(getattr(siso, subsys)) + # TODO: check to make sure a plot got generated pzmap(getattr(siso, subsys), plot=False) def testStep(self, siso): @@ -312,7 +314,7 @@ def testLsim(self, siso): yout, _t, _xout = lsim(siso.tf3, u, t) np.testing.assert_array_almost_equal(yout, youttrue, decimal=4) - # test with initial value and special algorithm for ``U=0`` + # test with initial value and special algorithm for `U=0` u = 0 x0 = np.array([[.5], [1.]]) youttrue = np.array([11., 8.1494, 5.9361, 4.2258, 2.9118, 1.9092, @@ -376,7 +378,7 @@ def testDcgain(self, siso): num, den = sp.signal.ss2tf(A, B, C, D) sys_ss = siso.ss1 - # Compute the gain with ``dcgain`` + # Compute the gain with `dcgain` gain_abcd = dcgain(A, B, C, D) gain_zpk = dcgain(Z, P, k) gain_numden = dcgain(np.squeeze(num), den) @@ -404,6 +406,7 @@ def testDcgain_mimo(self, mimo): def testBode(self, siso, mplcleanup): """Call bode()""" + # TODO: make sure plots are generated bode(siso.ss1) bode(siso.tf1) bode(siso.tf2) @@ -579,10 +582,11 @@ def testOpers(self, siso): # siso.tf1 / siso.ss2 def testUnwrap(self): - """Call unwrap()""" + # control.matlab.unwrap phase = np.array(range(1, 100)) / 10. wrapped = phase % (2 * np.pi) unwrapped = unwrap(wrapped) + np.testing.assert_array_almost_equal(phase, unwrapped) def testSISOssdata(self, siso): """Call ssdata() @@ -689,7 +693,7 @@ def testFRD(self): omega = np.logspace(-1, 2, 10) frd1 = frd(h, omega) assert isinstance(frd1, FRD) - frd2 = frd(frd1.fresp[0, 0, :], omega) + frd2 = frd(frd1.frdata[0, 0, :], omega) assert isinstance(frd2, FRD) @slycotonly diff --git a/control/tests/modelsimp_test.py b/control/tests/modelsimp_test.py index 49c2afd58..e09446073 100644 --- a/control/tests/modelsimp_test.py +++ b/control/tests/modelsimp_test.py @@ -3,14 +3,18 @@ RMM, 30 Mar 2011 (based on TestModelSimp from v0.4a) """ +import warnings + import numpy as np import pytest - -from control import StateSpace, forced_response, tf, rss, c2d -from control.exception import ControlMIMONotImplemented +import control as ct +from control import StateSpace, TimeResponseData, c2d, forced_response, \ + impulse_response, rss, step_response, tf +from control.exception import ControlArgument, ControlDimension +from control.modelsimp import balred, eigensys_realization, hsvd, markov, \ + modred from control.tests.conftest import slycotonly -from control.modelsimp import balred, hsvd, markov, modred class TestModelsimp: @@ -33,36 +37,149 @@ def testHSVD(self): assert not isinstance(hsv, np.matrix) def testMarkovSignature(self): - U = np.array([[1., 1., 1., 1., 1.]]) + U = np.array([[1., 1., 1., 1., 1., 1., 1.]]) Y = U + response = TimeResponseData(time=np.arange(U.shape[-1]), + outputs=Y, + output_labels='y', + inputs=U, + input_labels='u', + ) + + # setup m = 3 - H = markov(Y, U, m, transpose=False) - Htrue = np.array([[1., 0., 0.]]) - np.testing.assert_array_almost_equal(H, Htrue) + Htrue = np.array([1., 0., 0.]) + Htrue_l = np.array([1., 0., 0., 0., 0., 0., 0.]) + + # test not enough input arguments + with pytest.raises(ControlArgument): + H = markov(Y) + with pytest.raises(ControlArgument): + H = markov() - # Make sure that transposed data also works - H = markov(np.transpose(Y), np.transpose(U), m, transpose=True) - np.testing.assert_array_almost_equal(H, np.transpose(Htrue)) + # too many positional arguments + with pytest.raises(ControlArgument): + H = markov(Y,U,m,1) + with pytest.raises(ControlArgument): + H = markov(response,m,1) - # Generate Markov parameters without any arguments + # too many positional arguments + with pytest.raises(ControlDimension): + U2 = np.hstack([U,U]) + H = markov(Y,U2,m) + + # not enough data + with pytest.warns(Warning): + H = markov(Y,U,8) + + # Basic Usage, m=l + H = markov(Y, U) + np.testing.assert_array_almost_equal(H, Htrue_l) + + H = markov(response) + np.testing.assert_array_almost_equal(H, Htrue_l) + + # Basic Usage, m H = markov(Y, U, m) np.testing.assert_array_almost_equal(H, Htrue) + H = markov(response, m) + np.testing.assert_array_almost_equal(H, Htrue) + + H = markov(Y, U, m=m) + np.testing.assert_array_almost_equal(H, Htrue) + + H = markov(response, m=m) + np.testing.assert_array_almost_equal(H, Htrue) + + response.transpose=False + H = markov(response, m=m) + np.testing.assert_array_almost_equal(H, Htrue) + + # Make sure that transposed data also works, siso + HT = markov(Y.T, U.T, m, transpose=True) + np.testing.assert_array_almost_equal(HT, np.transpose(Htrue)) + + response.transpose = True + HT = markov(response, m) + np.testing.assert_array_almost_equal(HT, np.transpose(Htrue)) + response.transpose=False + # Test example from docstring + # TODO: There is a problem here, last markov parameter does not fit + # the approximation error could be to big + Htrue = np.array([0, 1., -0.5]) T = np.linspace(0, 10, 100) U = np.ones((1, 100)) T, Y = forced_response(tf([1], [1, 0.5], True), T, U) - H = markov(Y, U, 3, transpose=False) + H = markov(Y, U, 4, dt=True) + np.testing.assert_array_almost_equal(H[:3], Htrue[:3]) + + response = forced_response(tf([1], [1, 0.5], True), T, U) + H = markov(response, 4, dt=True) + np.testing.assert_array_almost_equal(H[:3], Htrue[:3]) # Test example from issue #395 inp = np.array([1, 2]) outp = np.array([2, 4]) mrk = markov(outp, inp, 1, transpose=False) + np.testing.assert_almost_equal(mrk, 2.) + + # Test mimo example + # Mechanical Vibrations: Theory and Application, SI Edition, 1st ed. + # Figure 6.5 / Example 6.7 + m1, k1, c1 = 1., 4., 1. + m2, k2, c2 = 2., 2., 1. + k3, c3 = 6., 2. + + A = np.array([ + [0., 0., 1., 0.], + [0., 0., 0., 1.], + [-(k1+k2)/m1, (k2)/m1, -(c1+c2)/m1, c2/m1], + [(k2)/m2, -(k2+k3)/m2, c2/m2, -(c2+c3)/m2] + ]) + B = np.array([[0.,0.],[0.,0.],[1/m1,0.],[0.,1/m2]]) + C = np.array([[1.0, 0.0, 0.0, 0.0],[0.0, 1.0, 0.0, 0.0]]) + D = np.zeros((2,2)) + + sys = StateSpace(A, B, C, D) + dt = 0.25 + sysd = sys.sample(dt, method='zoh') + + T = np.arange(0,100,dt) + U = np.random.randn(sysd.B.shape[-1], len(T)) + response = forced_response(sysd, U=U) + Y = response.outputs + + m = 100 + _, Htrue = impulse_response(sysd, T=dt*(m-1)) + + + # test array_like + H = markov(Y, U, m, dt=dt) + np.testing.assert_array_almost_equal(H, Htrue) + + # test array_like, truncate + H = markov(Y, U, m, dt=dt, truncate=True) + np.testing.assert_array_almost_equal(H, Htrue) + + # test array_like, transpose + HT = markov(Y.T, U.T, m, dt=dt, transpose=True) + np.testing.assert_array_almost_equal(HT, np.transpose(Htrue)) + + # test response data + H = markov(response, m, dt=dt) + np.testing.assert_array_almost_equal(H, Htrue) + + # test response data + H = markov(response, m, dt=dt, truncate=True) + np.testing.assert_array_almost_equal(H, Htrue) + + # test response data, transpose + response.transpose = True + HT = markov(response, m, dt=dt) + np.testing.assert_array_almost_equal(HT, np.transpose(Htrue)) - # Make sure MIMO generates an error - U = np.ones((2, 100)) # 2 inputs (Y unchanged, with 1 output) - with pytest.raises(ControlMIMONotImplemented): - markov(Y, U, m) # Make sure markov() returns the right answer @pytest.mark.parametrize("k, m, n", @@ -84,14 +201,14 @@ def testMarkovResults(self, k, m, n): # 0 for k > m-2 (see modelsimp.py). # - # Generate stable continuous time system + # Generate stable continuous-time system Hc = rss(k, 1, 1) # Choose sampling time based on fastest time constant / 10 w, _ = np.linalg.eig(Hc.A) Ts = np.min(-np.real(w)) / 10. - # Convert to a discrete time system via sampling + # Convert to a discrete-time system via sampling Hd = c2d(Hc, Ts, 'zoh') # Compute the Markov parameters from state space @@ -99,17 +216,112 @@ def testMarkovResults(self, k, m, n): Hd.C @ np.linalg.matrix_power(Hd.A, i) @ Hd.B for i in range(m-1)]) + Mtrue = np.squeeze(Mtrue) + # Generate input/output data T = np.array(range(n)) * Ts U = np.cos(T) + np.sin(T/np.pi) - _, Y = forced_response(Hd, T, U, squeeze=True) - Mcomp = markov(Y, U, m) + + ir_true = impulse_response(Hd,T) + Mtrue_scaled = ir_true[1][:m] # Compare to results from markov() # experimentally determined probability to get non matching results # with rtot=1e-6 and atol=1e-8 due to numerical errors # for k=5, m=n=10: 0.015 % + T, Y = forced_response(Hd, T, U, squeeze=True) + Mcomp = markov(Y, U, m, dt=True) + Mcomp_scaled = markov(Y, U, m, dt=Ts) + + np.testing.assert_allclose(Mtrue, Mcomp, rtol=1e-6, atol=1e-8) + np.testing.assert_allclose(Mtrue_scaled, Mcomp_scaled, rtol=1e-6, atol=1e-8) + + response = forced_response(Hd, T, U, squeeze=True) + Mcomp = markov(response, m, dt=True) + Mcomp_scaled = markov(response, m, dt=Ts) + np.testing.assert_allclose(Mtrue, Mcomp, rtol=1e-6, atol=1e-8) + np.testing.assert_allclose( + Mtrue_scaled, Mcomp_scaled, rtol=1e-6, atol=1e-8) + + def testERASignature(self): + + # test siso + # Katayama, Subspace Methods for System Identification + # Example 6.1, Fibonacci sequence + H_true = np.array([0.,1.,1.,2.,3.,5.,8.,13.,21.,34.]) + + # A realization of fibonacci impulse response + A = np.array([[0., 1.],[1., 1.,]]) + B = np.array([[1.],[1.,]]) + C = np.array([[1., 0.,]]) + D = np.array([[0.,]]) + + T = np.arange(0,10,1) + sysd_true = StateSpace(A,B,C,D,True) + ir_true = impulse_response(sysd_true,T=T) + + # test TimeResponseData + sysd_est, _ = eigensys_realization(ir_true,r=2) + ir_est = impulse_response(sysd_est, T=T) + _, H_est = ir_est + + np.testing.assert_allclose(H_true, H_est, rtol=1e-6, atol=1e-8) + + # test ndarray + _, YY_true = ir_true + sysd_est, _ = eigensys_realization(YY_true,r=2) + ir_est = impulse_response(sysd_est, T=T) + _, H_est = ir_est + + np.testing.assert_allclose(H_true, H_est, rtol=1e-6, atol=1e-8) + + # test mimo + # Mechanical Vibrations: Theory and Application, SI Edition, 1st ed. + # Figure 6.5 / Example 6.7 + # m q_dd + c q_d + k q = f + m1, k1, c1 = 1., 4., 1. + m2, k2, c2 = 2., 2., 1. + k3, c3 = 6., 2. + + A = np.array([ + [0., 0., 1., 0.], + [0., 0., 0., 1.], + [-(k1+k2)/m1, (k2)/m1, -(c1+c2)/m1, c2/m1], + [(k2)/m2, -(k2+k3)/m2, c2/m2, -(c2+c3)/m2] + ]) + B = np.array([[0.,0.],[0.,0.],[1/m1,0.],[0.,1/m2]]) + C = np.array([[1.0, 0.0, 0.0, 0.0],[0.0, 1.0, 0.0, 0.0]]) + D = np.zeros((2,2)) + + sys = StateSpace(A, B, C, D) + + dt = 0.1 + T = np.arange(0,10,dt) + sysd_true = sys.sample(dt, method='zoh') + ir_true = impulse_response(sysd_true, T=T) + + # test TimeResponseData + sysd_est, _ = eigensys_realization(ir_true,r=4,dt=dt) + + step_true = step_response(sysd_true) + step_est = step_response(sysd_est) + + np.testing.assert_allclose(step_true.outputs, + step_est.outputs, + rtol=1e-6, atol=1e-8) + + # test ndarray + _, YY_true = ir_true + sysd_est, _ = eigensys_realization(YY_true,r=4,dt=dt) + + step_true = step_response(sysd_true, T=T) + step_est = step_response(sysd_est, T=T) + + np.testing.assert_allclose(step_true.outputs, + step_est.outputs, + rtol=1e-6, atol=1e-8) + def testModredMatchDC(self): #balanced realization computed in matlab for the transfer function: @@ -134,7 +346,7 @@ def testModredMatchDC(self): np.testing.assert_array_almost_equal(rsys.D, Drtrue, decimal=2) def testModredUnstable(self): - """Check if an error is thrown when an unstable system is given""" + """Check if warning is issued when an unstable system is given""" A = np.array( [[4.5418, 3.3999, 5.0342, 4.3808], [0.3890, 0.3599, 0.4195, 0.1760], @@ -144,7 +356,16 @@ def testModredUnstable(self): 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]) + + # Make sure we get a warning message + with pytest.warns(UserWarning, match="System is unstable"): + newsys1 = modred(sys, [2, 3]) + + # Make sure we can turn the warning off + with warnings.catch_warnings(): + warnings.simplefilter('error') + newsys2 = ct.model_reduction(sys, [2, 3], warn_unstable=False) + np.testing.assert_equal(newsys1.A, newsys2.A) def testModredTruncate(self): #balanced realization computed in matlab for the transfer function: @@ -182,7 +403,7 @@ def testBalredTruncate(self): 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 rsys = balred(sys, orders, method='truncate') @@ -203,7 +424,7 @@ def testBalredTruncate(self): # 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) @@ -223,12 +444,12 @@ def testBalredMatchDC(self): 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 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], @@ -236,7 +457,7 @@ def testBalredMatchDC(self): Brtrue = np.array([[1.36235673], [1.03114388]]) Crtrue = np.array([[1.36235673, 1.03114388]]) Drtrue = np.array([[-0.08383902]]) - + # Look for possible changes in state in slycot T1 = np.array([[1, 0], [0, -1]]) T2 = np.array([[-1, 0], [0, 1]]) @@ -246,9 +467,46 @@ def testBalredMatchDC(self): # 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) + + +@pytest.mark.parametrize("kwargs, nstates, noutputs, ninputs", [ + ({'elim_states': [1, 3]}, 3, 3, 3), + ({'elim_inputs': [1, 2], 'keep_states': [1, 3]}, 2, 3, 1), + ({'elim_outputs': [1, 2], 'keep_inputs': [0, 1],}, 5, 1, 2), + ({'keep_states': [2, 0], 'keep_outputs': [0, 1]}, 2, 2, 3), + ({'keep_states': slice(0, 4, 2), 'keep_outputs': slice(None, 2)}, 2, 2, 3), + ({'keep_states': ['x[0]', 'x[3]'], 'keep_inputs': 'u[0]'}, 2, 3, 1), + ({'elim_inputs': [0, 1, 2]}, 5, 3, 0), # no inputs + ({'elim_outputs': [0, 1, 2]}, 5, 0, 3), # no outputs + ({'elim_states': [0, 1, 2, 3, 4]}, 0, 3, 3), # no states + ({'elim_states': [0, 1], 'keep_states': [1, 2]}, None, None, None), +]) +@pytest.mark.parametrize("method", ['truncate', 'matchdc']) +def test_model_reduction(method, kwargs, nstates, noutputs, ninputs): + sys = ct.rss(5, 3, 3) + + if nstates is None: + # Arguments should generate an error + with pytest.raises(ValueError, match="can't provide both"): + red = ct.model_reduction(sys, **kwargs, method=method) + return + else: + red = ct.model_reduction(sys, **kwargs, method=method) + + assert red.nstates == nstates + assert red.ninputs == ninputs + assert red.noutputs == noutputs + + if method == 'matchdc': + # Define a new system with truncated inputs and outputs + # (assumes we always keep the initial inputs and outputs) + chk = ct.ss( + sys.A, sys.B[:, :ninputs], sys.C[:noutputs, :], + sys.D[:noutputs, :][:, :ninputs]) + np.testing.assert_allclose(red(0), chk(0)) diff --git a/control/tests/namedio_test.py b/control/tests/namedio_test.py index f702e704b..ad74d27ba 100644 --- a/control/tests/namedio_test.py +++ b/control/tests/namedio_test.py @@ -8,7 +8,6 @@ created for that purpose. """ -import re from copy import copy import warnings @@ -34,8 +33,8 @@ 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 ct.InputOutputSystem.__repr__(sys) == \ - "['y[0]', 'y[1]']>" + assert ct.iosys_repr(sys, format='info') == \ + " ['y[0]', 'y[1]']>" # Pass the names as arguments sys = ct.ss( @@ -46,8 +45,8 @@ def test_named_ss(): assert sys.input_labels == ['u1', 'u2'] assert sys.output_labels == ['y1', 'y2'] assert sys.state_labels == ['x1', 'x2'] - assert ct.InputOutputSystem.__repr__(sys) == \ - "['y1', 'y2']>" + assert ct.iosys_repr(sys, format='info') == \ + " ['y1', 'y2']>" # Do the same with rss sys = ct.rss(['x1', 'x2', 'x3'], ['y1', 'y2'], 'u1', name='random') @@ -56,8 +55,8 @@ def test_named_ss(): assert sys.input_labels == ['u1'] assert sys.output_labels == ['y1', 'y2'] assert sys.state_labels == ['x1', 'x2', 'x3'] - assert ct.InputOutputSystem.__repr__(sys) == \ - "['y1', 'y2']>" + assert ct.iosys_repr(sys, format='info') == \ + " ['y1', 'y2']>" # List of classes that are expected @@ -285,7 +284,7 @@ def test_duplicate_sysname(): # strip out matrix warnings warnings.filterwarnings("ignore", "the matrix subclass", category=PendingDeprecationWarning) - res = sys * sys + sys * sys # Generate a warning if the system is named sys = ct.rss(4, 1, 1) @@ -293,7 +292,7 @@ def test_duplicate_sysname(): 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 + sys * sys # Finding signals @@ -332,10 +331,10 @@ def test_find_signals(): # 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) + 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") + ct.rss(4, inputs=1, outputs=1, name="system.subsys") # Negative system spect @@ -363,3 +362,20 @@ def test_negative_system_spec(): 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) + + +# Named signal representations +def test_named_signal_repr(): + sys = ct.rss( + states=2, inputs=['u1', 'u2'], outputs=['y1', 'y2'], + state_prefix='xi') + resp = sys.step_response(np.linspace(0, 1, 3)) + + for signal in ['inputs', 'outputs', 'states']: + sig_orig = getattr(resp, signal) + sig_eval = eval(repr(sig_orig), + None, + {'array': np.array, + 'NamedSignal': ct.NamedSignal}) + assert sig_eval.signal_labels == sig_orig.signal_labels + assert sig_eval.trace_labels == sig_orig.trace_labels diff --git a/control/tests/nlsys_test.py b/control/tests/nlsys_test.py index 1c2976c56..b14a619e0 100644 --- a/control/tests/nlsys_test.py +++ b/control/tests/nlsys_test.py @@ -7,14 +7,19 @@ """ -import pytest +import math +import re + import numpy as np +import pytest + 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 + l = params['l'] # wheelbase return np.array([ np.cos(x[2]) * u[0], # x velocity np.sin(x[2]) * u[0], # y velocity @@ -28,10 +33,11 @@ def kincar_output(t, x, u, params): kincar_update, kincar_output, states=['x', 'y', 'theta'], inputs=2, input_prefix='U', - outputs=2) + outputs=2, params={'l': 1}) assert kincar.input_labels == ['U[0]', 'U[1]'] assert kincar.output_labels == ['y[0]', 'y[1]'] assert kincar.state_labels == ['x', 'y', 'theta'] + assert kincar.params == {'l': 1} # Test nonlinear initial, step, and forced response @@ -45,6 +51,7 @@ def kincar_output(t, x, u, params): ]) def test_lti_nlsys_response(nin, nout, input, output): sys_ss = ct.rss(4, nin, nout, strictly_proper=True) + sys_ss.A = np.diag([-1, -2, -3, -4]) # avoid random numerical errors 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, @@ -91,4 +98,170 @@ def test_nlsys_impulse(): # Impulse_response (not implemented) with pytest.raises(ValueError, match="system must be LTI"): - resp_nl = ct.impulse_response(sys_nl, timepts) + ct.impulse_response(sys_nl, timepts) + + +# Test nonlinear systems that are missing inputs or outputs +def test_nlsys_empty_io(): + + # No inputs + sys_nl = ct.nlsys( + lambda t, x, u, params: -x, lambda t, x, u, params: x[0:2], + name="no inputs", states=3, inputs=0, outputs=2) + P = sys_nl.linearize(np.zeros(sys_nl.nstates), None) + assert P.A.shape == (3, 3) + assert P.B.shape == (3, 0) + assert P.C.shape == (2, 3) + assert P.D.shape == (2, 0) + + # Check that we can compute dynamics and outputs + x = np.array([1, 2, 3]) + np.testing.assert_equal(sys_nl.dynamics(0, x, None, {}), -x) + np.testing.assert_equal(P.dynamics(0, x, None), -x) + np.testing.assert_equal(sys_nl.output(0, x, None, {}), x[0:2]) + np.testing.assert_equal(P.output(0, x, None), x[0:2]) + + # Make sure initial response runs OK + resp = ct.initial_response(sys_nl, np.linspace(0, 1), x) + np.testing.assert_allclose( + resp.states[:, -1], x * math.exp(-1), atol=1e-3, rtol=1e-3) + + resp = ct.initial_response(P, np.linspace(0, 1), x) + np.testing.assert_allclose(resp.states[:, -1], x * math.exp(-1)) + + # No outputs + sys_nl = ct.nlsys( + lambda t, x, u, params: -x + np.array([1, 1, 1]) * u[0], None, + name="no outputs", states=3, inputs=1, outputs=0) + P = sys_nl.linearize(np.zeros(sys_nl.nstates), 0) + assert P.A.shape == (3, 3) + assert P.B.shape == (3, 1) + assert P.C.shape == (0, 3) + assert P.D.shape == (0, 1) + + # Check that we can compute dynamics + x = np.array([1, 2, 3]) + np.testing.assert_equal(sys_nl.dynamics(0, x, 1, {}), -x + 1) + np.testing.assert_equal(P.dynamics(0, x, 1), -x + 1) + + # Make sure initial response runs OK + resp = ct.initial_response(sys_nl, np.linspace(0, 1), x) + np.testing.assert_allclose( + resp.states[:, -1], x * math.exp(-1), atol=1e-3, rtol=1e-3) + + resp = ct.initial_response(P, np.linspace(0, 1), x) + np.testing.assert_allclose(resp.states[:, -1], x * math.exp(-1)) + + # Make sure forced response runs OK + resp = ct.forced_response(sys_nl, np.linspace(0, 1), 1) + np.testing.assert_allclose( + resp.states[:, -1], 1 - math.exp(-1), atol=1e-3, rtol=1e-3) + + resp = ct.forced_response(P, np.linspace(0, 1), 1) + np.testing.assert_allclose(resp.states[:, -1], 1 - math.exp(-1)) + + +def test_ss2io(): + sys = ct.rss( + states=4, inputs=['u1', 'u2'], outputs=['y1', 'y2'], name='sys') + + # Standard conversion + nlsys = ct.nlsys(sys) + for attr in ['nstates', 'ninputs', 'noutputs']: + assert getattr(nlsys, attr) == getattr(sys, attr) + assert nlsys.name == 'sys$converted' + np.testing.assert_allclose( + nlsys.dynamics(0, [1, 2, 3, 4], [0, 0], {}), + sys.A @ np.array([1, 2, 3, 4])) + + # Put names back to defaults + nlsys = ct.nlsys( + sys, inputs=sys.ninputs, outputs=sys.noutputs, states=sys.nstates) + for attr, prefix in zip( + ['state_labels', 'input_labels', 'output_labels'], + ['x', 'u', 'y']): + for i in range(len(getattr(nlsys, attr))): + assert getattr(nlsys, attr)[i] == f"{prefix}[{i}]" + assert re.match(r"sys\$converted", nlsys.name) + + # Override the names with something new + nlsys = ct.nlsys( + sys, inputs=['U1', 'U2'], outputs=['Y1', 'Y2'], + states=['X1', 'X2', 'X3', 'X4'], name='nlsys') + for attr, prefix in zip( + ['state_labels', 'input_labels', 'output_labels'], + ['X', 'U', 'Y']): + for i in range(len(getattr(nlsys, attr))): + assert getattr(nlsys, attr)[i] == f"{prefix}{i+1}" + assert nlsys.name == 'nlsys' + + # Make sure dimension checking works + for attr in ['states', 'inputs', 'outputs']: + with pytest.raises(ValueError, match=r"new .* doesn't match"): + kwargs = {attr: getattr(sys, 'n' + attr) - 1} + nlsys = ct.nlsys(sys, **kwargs) + + +def test_ICsystem_str(): + sys1 = ct.rss(2, 2, 3, name='sys1', strictly_proper=True) + sys2 = ct.rss(2, 3, 2, name='sys2', strictly_proper=True) + + with pytest.warns(UserWarning, match="Unused") as record: + sys = ct.interconnect( + [sys1, sys2], inputs=['r1', 'r2'], outputs=['y1', 'y2'], + connections=[ + ['sys1.u[0]', '-sys2.y[0]', 'sys2.y[1]'], + ['sys1.u[1]', 'sys2.y[0]', '-sys2.y[1]'], + ['sys2.u[0]', 'sys2.y[0]', (0, 0, -1)], + ['sys2.u[1]', (1, 1, -2), (0, 1, -2)], + ], + inplist=['sys1.u[0]', 'sys1.u[1]'], + outlist=['sys2.y[0]', 'sys2.y[1]']) + assert len(record) == 2 + assert str(record[0].message).startswith("Unused input") + assert str(record[1].message).startswith("Unused output") + + ref = \ + r": sys\[[\d]+\]" + "\n" + \ + r"Inputs \(2\): \['r1', 'r2'\]" + "\n" + \ + r"Outputs \(2\): \['y1', 'y2'\]" + "\n" + \ + r"States \(4\): \['sys1_x\[0\].*'sys2_x\[1\]'\]" + "\n" + \ + "\n" + \ + r"Subsystems \(2\):" + "\n" + \ + r" \* \['y\[0\]', 'y\[1\]']>" + "\n" + \ + r" \* \[.*\]>" + "\n" + \ + "\n" + \ + r"Connections:" + "\n" + \ + r" \* sys1.u\[0\] <- -sys2.y\[0\] \+ sys2.y\[1\] \+ r1" + "\n" + \ + r" \* sys1.u\[1\] <- sys2.y\[0\] - sys2.y\[1\] \+ r2" + "\n" + \ + r" \* sys1.u\[2\] <-" + "\n" + \ + r" \* sys2.u\[0\] <- -sys1.y\[0\] \+ sys2.y\[0\]" + "\n" + \ + r" \* sys2.u\[1\] <- -2.0 \* sys1.y\[1\] - 2.0 \* sys2.y\[1\]" + \ + "\n\n" + \ + r"Outputs:" + "\n" + \ + r" \* y1 <- sys2.y\[0\]" + "\n" + \ + r" \* y2 <- sys2.y\[1\]" + \ + "\n\n" + \ + r"A = \[\[.*\]\]" + "\n\n" + \ + r"B = \[\[.*\]\]" + "\n\n" + \ + r"C = \[\[.*\]\]" + "\n\n" + \ + r"D = \[\[.*\]\]" + + assert re.match(ref, str(sys), re.DOTALL) + + +# Make sure nlsys str() works as expected +@pytest.mark.parametrize("params, expected", [ + ({}, r"States \(1\): \['x\[0\]'\]" + "\n\n"), + ({'a': 1}, r"States \(1\): \['x\[0\]'\]" + "\n" + + r"Parameters: \['a'\]" + "\n\n"), + ({'a': 1, 'b': 1}, r"States \(1\): \['x\[0\]'\]" + "\n" + + r"Parameters: \['a', 'b'\]" + "\n\n"), +]) +def test_nlsys_params_str(params, expected): + sys = ct.nlsys( + lambda t, x, u, params: -x, inputs=1, outputs=1, states=1, + params=params) + out = str(sys) + + assert re.search(expected, out) is not None diff --git a/control/tests/nyquist_test.py b/control/tests/nyquist_test.py index a687ee61b..42bb210c4 100644 --- a/control/tests/nyquist_test.py +++ b/control/tests/nyquist_test.py @@ -132,18 +132,17 @@ def test_nyquist_basic(): # Nyquist plot with poles on imaginary axis, omega specified # (can miss encirclements due to the imaginary poles at +/- 1j) sys = ct.tf([1], [1, 3, 2]) * ct.tf([1], [1, 0, 1]) - with pytest.warns(UserWarning, match="does not match") as records: + with warnings.catch_warnings(record=True) as records: count = ct.nyquist_response(sys, np.linspace(1e-3, 1e1, 1000)) - if len(records) == 0: - assert _Z(sys) == count + _P(sys) - - # Nyquist plot with poles on imaginary axis, omega specified, with contour - sys = ct.tf([1], [1, 3, 2]) * ct.tf([1], [1, 0, 1]) - with pytest.warns(UserWarning, match="does not match") as records: - count, contour = ct.nyquist_response( - sys, np.linspace(1e-3, 1e1, 1000), return_contour=True) - if len(records) == 0: - assert _Z(sys) == count + _P(sys) + if len(records) == 0: + # No warnings (it happens) => make sure count is correct + assert _Z(sys) == count + _P(sys) + elif len(records) == 1: + # Expected case: make sure warning is the right one + assert issubclass(records[0].category, UserWarning) + assert "encirclements does not match" in str(records[0].message) + else: + pytest.fail("multiple warnings in nyquist_response (?)") # Nyquist plot with poles on imaginary axis, return contour sys = ct.tf([1], [1, 3, 2]) * ct.tf([1], [1, 0, 1]) @@ -162,38 +161,40 @@ def test_nyquist_fbs_examples(): """Run through various examples from FBS2e to compare plots""" 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)) response = ct.nyquist_response(sys) - response.plot() + cplt = response.plot() + cplt.set_plot_title("Figure 10.4: L(s) = 1.4 e^{-s}/(s+1)^2") assert _Z(sys) == response.count + _P(sys) plt.figure() - plt.title("Figure 10.4: L(s) = 1/(s + a)^2 with a = 0.6") sys = 1/(s + 0.6)**3 response = ct.nyquist_response(sys) - response.plot() + cplt = response.plot() + cplt.set_plot_title("Figure 10.4: L(s) = 1/(s + a)^2 with a = 0.6") assert _Z(sys) == response.count + _P(sys) plt.figure() - plt.title("Figure 10.6: L(s) = 1/(s (s+1)^2) - pole at the origin") sys = 1/(s * (s+1)**2) response = ct.nyquist_response(sys) - response.plot() + cplt = response.plot() + cplt.set_plot_title( + "Figure 10.6: L(s) = 1/(s (s+1)^2) - pole at the origin") assert _Z(sys) == response.count + _P(sys) plt.figure() - plt.title("Figure 10.10: L(s) = 3 (s+6)^2 / (s (s+1)^2)") sys = 3 * (s+6)**2 / (s * (s+1)**2) response = ct.nyquist_response(sys) - response.plot() + cplt = response.plot() + cplt.set_plot_title("Figure 10.10: L(s) = 3 (s+6)^2 / (s (s+1)^2)") assert _Z(sys) == response.count + _P(sys) plt.figure() - 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"): response = ct.nyquist_response(sys, omega_limits=[1.5, 1e3]) - response.plot() + cplt = response.plot() + cplt.set_plot_title( + "Figure 10.10: L(s) = 3 (s+6)^2 / (s (s+1)^2) [zoom]") # Frequency limits for zoom give incorrect encirclement count # assert _Z(sys) == response.count + _P(sys) assert response.count == -1 @@ -208,12 +209,28 @@ def test_nyquist_fbs_examples(): def test_nyquist_arrows(arrows): sys = ct.tf([1.4], [1, 2, 1]) * ct.tf(*ct.pade(1, 4)) plt.figure(); - plt.title("L(s) = 1.4 e^{-s}/(s+1)^2 / arrows = %s" % arrows) response = ct.nyquist_response(sys) - response.plot(arrows=arrows) + cplt = response.plot(arrows=arrows) + cplt.set_plot_title("L(s) = 1.4 e^{-s}/(s+1)^2 / arrows = %s" % arrows) assert _Z(sys) == response.count + _P(sys) +def test_sensitivity_circles(): + A = np.array([ + [-3.56355873, -1.22980795, -1.5626527 , -0.4626829], + [-8.52361371, -3.60331459, -3.71574266, -0.43839201], + [-2.50458726, -0.72361335, -1.77795489, -0.4038419], + [-0.281183 , 0.23391825, 0.19096003, -0.9771515]]) + B = np.array([[-0.], [-1.42827213], [ 0.76806551], [-1.07987454]]) + C = np.array([[-0., 0.35557249, 0.35941791, -0.]]) + D = np.array([[0]]) + sys1 = ct.ss(A, B, C, D) + sys2 = ct.ss(A, B, C, D, dt=0.1) + plt.figure() + ct.nyquist_plot(sys1, unit_circle=True, mt_circles=[0.9,1,1.1,1.2], ms_circles=[0.9,1,1.1,1.2]) + ct.nyquist_plot(sys2, unit_circle=True, mt_circles=[0.9,1,1.1,1.2], ms_circles=[0.9,1,1.1,1.2]) + + def test_nyquist_encirclements(): # Example 14.14: effect of friction in a cart-pendulum system s = ct.tf('s') @@ -221,14 +238,14 @@ def test_nyquist_encirclements(): plt.figure(); response = ct.nyquist_response(sys) - response.plot() - plt.title("Stable system; encirclements = %d" % response.count) + cplt = response.plot() + cplt.set_plot_title("Stable system; encirclements = %d" % response.count) assert _Z(sys) == response.count + _P(sys) plt.figure(); response = ct.nyquist_response(sys * 3) - response.plot() - plt.title("Unstable system; encirclements = %d" %response.count) + cplt = response.plot() + cplt.set_plot_title("Unstable system; encirclements = %d" %response.count) assert _Z(sys * 3) == response.count + _P(sys * 3) # System with pole at the origin @@ -236,8 +253,9 @@ def test_nyquist_encirclements(): plt.figure(); response = ct.nyquist_response(sys) - response.plot() - plt.title("Pole at the origin; encirclements = %d" %response.count) + cplt = response.plot() + cplt.set_plot_title( + "Pole at the origin; encirclements = %d" %response.count) assert _Z(sys) == response.count + _P(sys) # Non-integer number of encirclements @@ -250,8 +268,9 @@ def test_nyquist_encirclements(): # strip out matrix warnings response = ct.nyquist_response( sys, omega_limits=[0.5, 1e3], encirclement_threshold=0.2) - response.plot() - plt.title("Non-integer number of encirclements [%g]" %response.count) + cplt = response.plot() + cplt.set_plot_title( + "Non-integer number of encirclements [%g]" %response.count) @pytest.fixture @@ -265,8 +284,8 @@ def indentsys(): def test_nyquist_indent_default(indentsys): plt.figure(); response = ct.nyquist_response(indentsys) - response.plot() - plt.title("Pole at origin; indent_radius=default") + cplt = response.plot() + cplt.set_plot_title("Pole at origin; indent_radius=default") assert _Z(indentsys) == response.count + _P(indentsys) @@ -276,7 +295,7 @@ def test_nyquist_indent_dont(indentsys): with pytest.warns() as record: count, contour = ct.nyquist_response( indentsys, omega=[0, 0.2, 0.3, 0.4], indent_radius=.1007, - plot=False, return_contour=True) + return_contour=True) np.testing.assert_allclose(contour[0], .1007+0.j) # second value of omega_vector is larger than indent_radius: not indented assert np.all(contour.real[2:] == 0.) @@ -292,20 +311,30 @@ def test_nyquist_indent_do(indentsys): 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) + cplt = response.plot() + cplt.set_plot_title( + "Pole at origin; indent_radius=0.01; encirclements = %d" % count) assert _Z(indentsys) == count + _P(indentsys) # indent radius is smaller than the start of the default omega vector # check that a quarter circle around the pole at origin has been added. np.testing.assert_allclose(contour[:50].real**2 + contour[:50].imag**2, 0.01**2) + # Make sure that the command also works if called directly as _plot() + plt.figure() + with pytest.warns(FutureWarning, match=".* use nyquist_response()"): + count, contour = ct.nyquist_plot( + indentsys, indent_radius=0.01, return_contour=True) + assert _Z(indentsys) == count + _P(indentsys) + np.testing.assert_allclose( + contour[:50].real**2 + contour[:50].imag**2, 0.01**2) + def test_nyquist_indent_left(indentsys): plt.figure(); response = ct.nyquist_response(indentsys, indent_direction='left') - response.plot() - plt.title( + cplt = response.plot() + cplt.set_plot_title( "Pole at origin; indent_direction='left'; encirclements = %d" % response.count) assert _Z(indentsys) == response.count + _P(indentsys, indent='left') @@ -318,15 +347,15 @@ def test_nyquist_indent_im(): # Imaginary poles with standard indentation plt.figure(); response = ct.nyquist_response(sys) - response.plot() - plt.title("Imaginary poles; encirclements = %d" % response.count) + cplt = response.plot() + cplt.set_plot_title("Imaginary poles; encirclements = %d" % response.count) assert _Z(sys) == response.count + _P(sys) # Imaginary poles with indentation to the left plt.figure(); response = ct.nyquist_response(sys, indent_direction='left') - response.plot(label_freq=300) - plt.title( + cplt = response.plot(label_freq=300) + cplt.set_plot_title( "Imaginary poles; indent_direction='left'; encirclements = %d" % response.count) assert _Z(sys) == response.count + _P(sys, indent='left') @@ -336,8 +365,8 @@ def test_nyquist_indent_im(): with pytest.warns(UserWarning, match="encirclements does not match"): response = ct.nyquist_response( sys, np.linspace(0, 1e3, 1000), indent_direction='none') - response.plot() - plt.title( + cplt = response.plot() + cplt.set_plot_title( "Imaginary poles; indent_direction='none'; encirclements = %d" % response.count) assert _Z(sys) == response.count + _P(sys) @@ -375,17 +404,17 @@ def test_linestyle_checks(): sys = ct.tf([100], [1, 1, 1]) # Set the line styles - lines = ct.nyquist_plot( + cplt = ct.nyquist_plot( sys, primary_style=[':', ':'], mirror_style=[':', ':']) - assert all([line.get_linestyle() == ':' for line in lines[0]]) + assert all([line.get_linestyle() == ':' for line in cplt.lines[0]]) # Set the line colors - lines = ct.nyquist_plot(sys, color='g') - assert all([line.get_color() == 'g' for line in lines[0]]) + cplt = ct.nyquist_plot(sys, color='g') + assert all([line.get_color() == 'g' for line in cplt.lines[0]]) # Turn off the mirror image - lines = ct.nyquist_plot(sys, mirror_style=False) - assert lines[0][2:] == [None, None] + cplt = ct.nyquist_plot(sys, mirror_style=False) + assert cplt.lines[0][2:] == [None, None] with pytest.raises(ValueError, match="invalid 'primary_style'"): ct.nyquist_plot(sys, primary_style=False) @@ -407,12 +436,14 @@ 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"): - response = ct.nyquist_plot(sys) + ct.nyquist_plot(sys) def test_discrete_nyquist(): - # Make sure we can handle discrete time systems with negative poles + # TODO: add tests to make sure plots make sense + + # 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_response(sys, plot=False) + ct.nyquist_response(sys) # system with a pole at the origin sys = ct.zpk([1,], [.3, 0], 1, dt=True) @@ -429,6 +460,72 @@ def test_discrete_nyquist(): ct.nyquist_response(sys) +def test_freqresp_omega_limits(): + sys = ct.rss(4, 1, 1) + + # Generate a standard frequency response (no limits specified) + resp0 = ct.nyquist_response(sys) + assert resp0.contour.size > 2 + + # Regenerate the response using omega_limits + resp1 = ct.nyquist_response( + sys, omega_limits=[resp0.contour[1].imag, resp0.contour[-1].imag]) + assert resp1.contour.size > 2 + assert np.isclose(resp1.contour[0], resp0.contour[1]) + assert np.isclose(resp1.contour[-1], resp0.contour[-1]) + + # Regenerate the response using omega as a list of two elements + resp2 = ct.nyquist_response( + sys, [resp0.contour[1].imag, resp0.contour[-1].imag]) + np.testing.assert_equal(resp1.contour, resp2.contour) + + # Make sure that generating response using array does the right thing + resp3 = ct.nyquist_response( + sys, np.array([resp0.contour[1].imag, resp0.contour[-1].imag])) + np.testing.assert_equal( + resp3.contour, + np.array([resp0.contour[1], resp0.contour[-1]])) + + +def test_nyquist_frd(): + sys = ct.rss(4, 1, 1) + sys1 = ct.frd(sys, np.logspace(-1, 1, 10), name='sys1') + sys2 = ct.frd(sys, np.logspace(-2, 2, 10), name='sys2') + sys3 = ct.frd(sys, np.logspace(-2, 2, 10), smooth=True, name='sys3') + + # Turn off warnings about number of encirclements + warnings.filterwarnings( + 'ignore', message="number of encirclements was a non-integer value", + category=UserWarning) + + # OK to specify frequency with FRD sys if frequencies match + nyqresp = ct.nyquist_response(sys1, np.logspace(-1, 1, 10)) + np.testing.assert_allclose(nyqresp.contour, np.logspace(-1, 1, 10) * 1j) + + # If a fixed FRD omega is used, generate an error on mismatch + with pytest.raises(ValueError, match="not all frequencies .* in .* list"): + nyqresp = ct.nyquist_response(sys2, np.logspace(-1, 1, 10)) + + # OK to specify frequency with FRD sys if interpolating FRD is used + nyqresp = ct.nyquist_response(sys3, np.logspace(-1, 1, 12)) + np.testing.assert_allclose(nyqresp.contour, np.logspace(-1, 1, 12) * 1j) + + # Computing Nyquist response w/ different frequencies OK if given as a list + nyqresp = ct.nyquist_response([sys1, sys2]) + nyqresp.plot() + + warnings.resetwarnings() + + +def test_no_indent_pole(): + s = ct.tf('s') + sys = ((1 + 5/s)/(1 + 0.5/s))**2 # Double-Lag-Compensator + + with pytest.raises(RuntimeError, match="evaluate at a pole"): + ct.nyquist_response( + sys, warn_encirclements=False, indent_direction='none') + + if __name__ == "__main__": # # Interactive mode: generate plots for manual viewing @@ -452,6 +549,9 @@ def test_discrete_nyquist(): test_nyquist_arrows(3) test_nyquist_arrows([0.1, 0.5, 0.9]) + print("Test sensitivity circles") + test_sensitivity_circles() + print("Stability checks") test_nyquist_encirclements() @@ -472,19 +572,26 @@ def test_discrete_nyquist(): print("Unusual Nyquist plot") sys = ct.tf([1], [1, 3, 2]) * ct.tf([1], [1, 0, 1]) plt.figure() - plt.title("Poles: %s" % - np.array2string(sys.poles(), precision=2, separator=',')) response = ct.nyquist_response(sys) - response.plot() + cplt = response.plot() + cplt.set_plot_title("Poles: %s" % + np.array2string(sys.poles(), precision=2, separator=',')) assert _Z(sys) == response.count + _P(sys) print("Discrete time systems") sys = ct.c2d(sys, 0.01) plt.figure() - plt.title("Discrete-time; poles: %s" % - np.array2string(sys.poles(), precision=2, separator=',')) response = ct.nyquist_response(sys) - response.plot() - - + cplt = response.plot() + cplt.set_plot_title("Discrete-time; poles: %s" % + np.array2string(sys.poles(), precision=2, separator=',')) + print("Frequency response data (FRD) systems") + sys = ct.tf( + (0.02 * s**3 - 0.1 * s) / (s**4 + s**3 + s**2 + 0.25 * s + 0.04), + name='tf') + sys1 = ct.frd(sys, np.logspace(-1, 1, 15), name='frd1') + sys2 = ct.frd(sys, np.logspace(-2, 2, 20), name='frd2') + plt.figure() + cplt = ct.nyquist_plot([sys, sys1, sys2]) + cplt.set_plot_title("Mixed FRD, tf data") diff --git a/control/tests/optimal_test.py b/control/tests/optimal_test.py index f746db7d5..fa8fcb941 100644 --- a/control/tests/optimal_test.py +++ b/control/tests/optimal_test.py @@ -42,7 +42,7 @@ def test_continuous_lqr(method, npts): Tf = 10 timepts = np.linspace(0, Tf, npts) - res = opt.solve_ocp( + res = opt.solve_optimal_trajectory( sys, timepts, x0, traj_cost, constraints, terminal_cost=term_cost, trajectory_method=method ) @@ -56,7 +56,7 @@ def test_continuous_lqr(method, npts): @pytest.mark.parametrize("method", ['shooting']) # TODO: add 'collocation' def test_finite_horizon_simple(method): - # Define a (discrete time) linear system with constraints + # Define a (discrete-time) linear system with constraints # Source: https://www.mpt3.org/UI/RegulationProblem # LTI prediction model (discrete time) @@ -77,11 +77,11 @@ def test_finite_horizon_simple(method): x0 = [4, 0] # Retrieve the full open-loop predictions - res = opt.solve_ocp( + res = opt.solve_optimal_trajectory( 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 + _t, u_openloop = res.time, res.inputs np.testing.assert_almost_equal( u_openloop, [-1, -1, 0.1393, 0.3361, -5.204e-16], decimal=4) @@ -152,7 +152,7 @@ def test_discrete_lqr(): ] # Re-solve - res2 = opt.solve_ocp( + res2 = opt.solve_optimal_trajectory( sys, time, x0, integral_cost, trajectory_constraints, terminal_cost=terminal_cost, initial_guess=lqr_u) @@ -186,7 +186,6 @@ def test_mpc_iosystem_aircraft(): # 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])] @@ -216,7 +215,7 @@ def test_mpc_iosystem_aircraft(): def test_mpc_iosystem_rename(): - # Create a discrete time system (double integrator) + cost function + # 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) @@ -264,7 +263,7 @@ def test_mpc_iosystem_continuous(): # Continuous time MPC controller not implemented with pytest.raises(NotImplementedError): - ctrl = opt.create_mpc_iosystem(sys, T, cost) + opt.create_mpc_iosystem(sys, T, cost) # Test various constraint combinations; need to use a somewhat convoluted @@ -315,7 +314,7 @@ def test_constraint_specification(constraint_list): # Compute optimal control and compare against MPT3 solution x0 = [4, 0] res = optctrl.compute_trajectory(x0, squeeze=True) - t, u_openloop = res.time, res.inputs + _t, u_openloop = res.time, res.inputs np.testing.assert_almost_equal( u_openloop, [-1, -1, 0.1393, 0.3361, -5.204e-16], decimal=3) @@ -352,7 +351,7 @@ def test_terminal_constraints(sys_args): # Find a path to the origin x0 = np.array([4, 3]) res = optctrl.compute_trajectory(x0, squeeze=True, return_x=True) - t, u1, x1 = res.time, res.inputs, res.states + _t, u1, x1 = res.time, res.inputs, res.states # Bug prior to SciPy 1.6 will result in incorrect results if NumpyVersion(sp.__version__) < '1.6.0': @@ -379,7 +378,7 @@ def test_terminal_constraints(sys_args): 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( + res = opt.solve_optimal_trajectory( sys, time, x0, cost, terminal_constraints=final_point, basis=flat.BezierFamily(8, Tf)) @@ -401,7 +400,7 @@ def test_terminal_constraints(sys_args): # Find a path to the origin res = optctrl.compute_trajectory( x0, squeeze=True, return_x=True, initial_guess=u1) - t, u2, x2 = res.time, res.inputs, res.states + _t, u2, x2 = res.time, res.inputs, res.states # Not all configurations are able to converge (?) if res.success: @@ -416,7 +415,7 @@ def test_terminal_constraints(sys_args): optctrl = opt.OptimalControlProblem( sys, time, cost, constraints, terminal_constraints=final_point) res = optctrl.compute_trajectory(x0, squeeze=True, return_x=True) - t, u3, x3 = res.time, res.inputs, res.states + _t, u3, x3 = res.time, res.inputs, res.states # Check the answers only if we converged if res.success: @@ -448,7 +447,7 @@ def test_optimal_logging(capsys): # Solve it, with logging turned on (with warning due to mixed constraints) with pytest.warns(sp.optimize.OptimizeWarning, match="Equality and inequality .* same element"): - res = opt.solve_ocp( + opt.solve_optimal_trajectory( sys, time, x0, cost, input_constraint, terminal_cost=cost, terminal_constraints=state_constraint, log=True) @@ -513,21 +512,21 @@ def test_ocp_argument_errors(): # Trajectory constraints not in the right form with pytest.raises(TypeError, match="constraints must be a list"): - res = opt.solve_ocp(sys, time, x0, cost, np.eye(2)) + opt.solve_optimal_trajectory(sys, time, x0, cost, np.eye(2)) # Terminal constraints not in the right form with pytest.raises(TypeError, match="constraints must be a list"): - res = opt.solve_ocp( + opt.solve_optimal_trajectory( sys, time, x0, cost, constraints, terminal_constraints=np.eye(2)) # Initial guess in the wrong shape with pytest.raises(ValueError, match="initial guess is the wrong shape"): - res = opt.solve_ocp( + opt.solve_optimal_trajectory( sys, time, x0, cost, constraints, initial_guess=np.zeros((4,1,1))) # Unrecognized arguments with pytest.raises(TypeError, match="unrecognized keyword"): - res = opt.solve_ocp( + opt.solve_optimal_trajectory( sys, time, x0, cost, constraints, terminal_constraint=None) with pytest.raises(TypeError, match="unrecognized keyword"): @@ -541,21 +540,21 @@ 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 trajectory constraint type"): - res = opt.solve_ocp( + opt.solve_optimal_trajectory( sys, time, x0, cost, trajectory_constraints=constraints) # Unrecognized terminal constraint type with pytest.raises(TypeError, match="unknown terminal constraint type"): - res = opt.solve_ocp( + opt.solve_optimal_trajectory( 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( + opt.solve_optimal_trajectory( sys, time, x0, cost, solve_ivp_method='LSODA') with pytest.raises(TypeError, match="solve_ivp method, kwargs not allowed"): - res = opt.solve_ocp( + opt.solve_optimal_trajectory( sys, time, x0, cost, solve_ivp_kwargs={'eps': 0.1}) @@ -583,7 +582,7 @@ def test_optimal_basis_simple(basis): x0 = [4, 0] # Basic optimal control problem - res1 = opt.solve_ocp( + res1 = opt.solve_optimal_trajectory( sys, time, x0, cost, constraints, terminal_cost=cost, basis=basis, return_x=True) assert res1.success @@ -594,14 +593,14 @@ def test_optimal_basis_simple(basis): np.testing.assert_array_less(np.abs(res1.inputs[0]), 1 + 1e-6) # Pass an initial guess and rerun - res2 = opt.solve_ocp( + res2 = opt.solve_optimal_trajectory( sys, time, x0, cost, constraints, initial_guess=0.99*res1.inputs, 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( + res3 = opt.solve_optimal_trajectory( sys, time, x0, cost, constraints, terminal_cost=cost, basis=basis, return_x=True, log=True) assert res3.success @@ -629,7 +628,7 @@ def test_equality_constraints(): # Find a path to the origin x0 = np.array([4, 3]) res = optctrl.compute_trajectory(x0, squeeze=True, return_x=True) - t, u1, x1 = res.time, res.inputs, res.states + _t, u1, x1 = res.time, res.inputs, res.states # Bug prior to SciPy 1.6 will result in incorrect results if NumpyVersion(sp.__version__) < '1.6.0': @@ -649,7 +648,7 @@ def final_point_eval(x, u): # Find a path to the origin x0 = np.array([4, 3]) res = optctrl.compute_trajectory(x0, squeeze=True, return_x=True) - t, u2, x2 = res.time, res.inputs, res.states + _t, u2, x2 = res.time, res.inputs, res.states np.testing.assert_almost_equal(x2[:,-1], 0, decimal=4) np.testing.assert_almost_equal(u1, u2) np.testing.assert_almost_equal(x1, x2) @@ -732,8 +731,6 @@ def vehicle_output(t, x, u, params): 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]) @@ -748,7 +745,7 @@ def vehicle_output(t, x, u, params): with warnings.catch_warnings(): warnings.filterwarnings( 'ignore', message="unable to solve", category=UserWarning) - result = opt.solve_ocp( + result = opt.solve_optimal_trajectory( vehicle, timepts, x0, traj_cost, constraints, terminal_cost=term_cost, initial_guess=initial_guess, trajectory_method=method, @@ -794,7 +791,7 @@ def test_oep_argument_errors(): # Unrecognized arguments with pytest.raises(TypeError, match="unrecognized keyword"): - res = opt.solve_oep(sys, timepts, Y, U, cost, unknown=True) + opt.solve_optimal_estimate(sys, timepts, Y, U, cost, unknown=True) with pytest.raises(TypeError, match="unrecognized keyword"): oep = opt.OptimalEstimationProblem(sys, timepts, cost, unknown=True) @@ -807,4 +804,4 @@ def test_oep_argument_errors(): # 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']) + oep.create_mhe_iosystem(estimate_labels=['x1', 'x2', 'x3']) diff --git a/control/tests/phaseplot_test.py b/control/tests/phaseplot_test.py index a01ab2aea..fc4edcbea 100644 --- a/control/tests/phaseplot_test.py +++ b/control/tests/phaseplot_test.py @@ -9,14 +9,17 @@ the figures so that you can check them visually. """ +import warnings +from math import pi +import matplotlib as mpl import matplotlib.pyplot as plt import numpy as np -from numpy import pi import pytest -from control import phase_plot + import control as ct import control.phaseplot as pp +from control import phase_plot # Legacy tests @@ -114,18 +117,20 @@ def oscillator_ode(self, x, t, m=1., b=1, k=1, extra=None): [ct.phaseplot.separatrices, [5], {'params': {}, 'gridspec': [5, 5]}], [ct.phaseplot.separatrices, [5], {'color': ('r', 'g')}], ]) +@pytest.mark.usefixtures('mplcleanup') def test_helper_functions(func, args, kwargs): # Test with system sys = ct.nlsys( lambda t, x, u, params: [x[0] - 3*x[1], -3*x[0] + x[1]], states=2, inputs=0) - out = func(sys, [-1, 1, -1, 1], *args, **kwargs) + _out = func(sys, [-1, 1, -1, 1], *args, **kwargs) # Test with function rhsfcn = lambda t, x: sys.dynamics(t, x, 0, {}) - out = func(rhsfcn, [-1, 1, -1, 1], *args, **kwargs) + _out = func(rhsfcn, [-1, 1, -1, 1], *args, **kwargs) +@pytest.mark.usefixtures('mplcleanup') def test_system_types(): # Sample dynamical systems - inverted pendulum def invpend_ode(t, x, m=0, l=0, b=0, g=0): @@ -133,32 +138,133 @@ def invpend_ode(t, x, m=0, l=0, b=0, g=0): # Use callable form, with parameters (if not correct, will get /0 error) ct.phase_plane_plot( - invpend_ode, [-5, 5, 2, 2], params={'args': (1, 1, 0.2, 1)}) + invpend_ode, [-5, 5, -2, 2], params={'args': (1, 1, 0.2, 1)}, + plot_streamlines=True) # Linear I/O system ct.phase_plane_plot( - ct.ss([[0, 1], [-1, -1]], [[0], [1]], [[1, 0]], 0)) + ct.ss([[0, 1], [-1, -1]], [[0], [1]], [[1, 0]], 0), + plot_streamlines=True) +@pytest.mark.usefixtures('mplcleanup') def test_phaseplane_errors(): with pytest.raises(ValueError, match="invalid grid specification"): - ct.phase_plane_plot(ct.rss(2, 1, 1), gridspec='bad') - + ct.phase_plane_plot(ct.rss(2, 1, 1), gridspec='bad', + plot_streamlines=True) + with pytest.raises(ValueError, match="unknown grid type"): - ct.phase_plane_plot(ct.rss(2, 1, 1), gridtype='bad') - + ct.phase_plane_plot(ct.rss(2, 1, 1), gridtype='bad', + plot_streamlines=True) + with pytest.raises(ValueError, match="system must be planar"): - ct.phase_plane_plot(ct.rss(3, 1, 1)) + ct.phase_plane_plot(ct.rss(3, 1, 1), + plot_streamlines=True) with pytest.raises(ValueError, match="params must be dict with key"): def invpend_ode(t, x, m=0, l=0, b=0, g=0): return (x[1], -b/m*x[1] + (g*l/m) * np.sin(x[0])) ct.phase_plane_plot( - invpend_ode, [-5, 5, 2, 2], params={'stuff': (1, 1, 0.2, 1)}) - + invpend_ode, [-5, 5, 2, 2], params={'stuff': (1, 1, 0.2, 1)}, + plot_streamlines=True) + with pytest.raises(ValueError, match="gridtype must be 'meshgrid' when using streamplot"): + ct.phase_plane_plot(ct.rss(2, 1, 1), plot_streamlines=False, + plot_streamplot=True, gridtype='boxgrid') + # Warning messages for invalid solutions: nonlinear spring mass system + sys = ct.nlsys( + lambda t, x, u, params: np.array( + [x[1], -0.25 * (x[0] - 0.01 * x[0]**3) - 0.1 * x[1]]), + states=2, inputs=0) + with pytest.warns( + UserWarning, match=r"initial_state=\[.*\], solve_ivp failed"): + ct.phase_plane_plot( + sys, [-12, 12, -10, 10], 15, gridspec=[2, 9], + plot_separatrices=False, plot_streamlines=True) + # Turn warnings off + with warnings.catch_warnings(): + warnings.simplefilter("error") + ct.phase_plane_plot( + sys, [-12, 12, -10, 10], 15, gridspec=[2, 9], + plot_streamlines=True, plot_separatrices=False, + suppress_warnings=True) + +@pytest.mark.usefixtures('mplcleanup') +def test_phase_plot_zorder(): + # some of these tests are a bit akward since the streamlines and separatrices + # are stored in the same list, so we separate them by color + key_color = "tab:blue" # must not be 'k', 'r', 'b' since they are used by separatrices + + def get_zorders(cplt): + max_zorder = lambda items: max([line.get_zorder() for line in items]) + assert isinstance(cplt.lines[0], list) + streamline_lines = [line for line in cplt.lines[0] if line.get_color() == key_color] + separatrice_lines = [line for line in cplt.lines[0] if line.get_color() != key_color] + streamlines = max_zorder(streamline_lines) if streamline_lines else None + separatrices = max_zorder(separatrice_lines) if separatrice_lines else None + assert cplt.lines[1] == None or isinstance(cplt.lines[1], mpl.quiver.Quiver) + quiver = cplt.lines[1].get_zorder() if cplt.lines[1] else None + assert cplt.lines[2] == None or isinstance(cplt.lines[2], list) + equilpoints = max_zorder(cplt.lines[2]) if cplt.lines[2] else None + assert cplt.lines[3] == None or isinstance(cplt.lines[3], mpl.streamplot.StreamplotSet) + streamplot = max(cplt.lines[3].lines.get_zorder(), cplt.lines[3].arrows.get_zorder()) if cplt.lines[3] else None + return streamlines, quiver, streamplot, separatrices, equilpoints + + def assert_orders(streamlines, quiver, streamplot, separatrices, equilpoints): + print(streamlines, quiver, streamplot, separatrices, equilpoints) + if streamlines is not None: + assert streamlines < separatrices < equilpoints + if quiver is not None: + assert quiver < separatrices < equilpoints + if streamplot is not None: + assert streamplot < separatrices < equilpoints + + def sys(t, x): + return np.array([4*x[1], -np.sin(4*x[0])]) + + # ensure correct zordering for all three flow types + res_streamlines = ct.phase_plane_plot(sys, plot_streamlines=dict(color=key_color)) + assert_orders(*get_zorders(res_streamlines)) + res_vectorfield = ct.phase_plane_plot(sys, plot_vectorfield=True) + assert_orders(*get_zorders(res_vectorfield)) + res_streamplot = ct.phase_plane_plot(sys, plot_streamplot=True) + assert_orders(*get_zorders(res_streamplot)) + + # ensure that zorder can still be overwritten + res_reversed = ct.phase_plane_plot(sys, plot_streamlines=dict(color=key_color, zorder=50), plot_vectorfield=dict(zorder=40), + plot_streamplot=dict(zorder=30), plot_separatrices=dict(zorder=20), plot_equilpoints=dict(zorder=10)) + streamlines, quiver, streamplot, separatrices, equilpoints = get_zorders(res_reversed) + assert streamlines > quiver > streamplot > separatrices > equilpoints + + +@pytest.mark.usefixtures('mplcleanup') +def test_stream_plot_magnitude(): + def sys(t, x): + return np.array([4*x[1], -np.sin(4*x[0])]) + + # plt context with linewidth + with plt.rc_context({'lines.linewidth': 4}): + res = ct.phase_plane_plot(sys, plot_streamplot=dict(vary_linewidth=True)) + linewidths = res.lines[3].lines.get_linewidths() + # linewidths are scaled to be between 0.25 and 2 times default linewidth + # but the extremes may not exist if there is no line at that point + assert min(linewidths) < 2 and max(linewidths) > 7 + + # make sure changing the colormap works + res = ct.phase_plane_plot(sys, plot_streamplot=dict(vary_color=True, cmap='viridis')) + assert res.lines[3].lines.get_cmap().name == 'viridis' + res = ct.phase_plane_plot(sys, plot_streamplot=dict(vary_color=True, cmap='turbo')) + assert res.lines[3].lines.get_cmap().name == 'turbo' + + # make sure changing the norm at least doesn't throw an error + ct.phase_plane_plot(sys, plot_streamplot=dict(vary_color=True, norm=mpl.colors.LogNorm())) + + + + +@pytest.mark.usefixtures('mplcleanup') def test_basic_phase_plots(savefigs=False): sys = ct.nlsys( lambda t, x, u, params: np.array([[0, 1], [-1, -1]]) @ x, @@ -167,7 +273,7 @@ def test_basic_phase_plots(savefigs=False): plt.figure() axis_limits = [-1, 1, -1, 1] T = 8 - ct.phase_plane_plot(sys, axis_limits, T) + ct.phase_plane_plot(sys, axis_limits, T, plot_streamlines=True) if savefigs: plt.savefig('phaseplot-dampedosc-default.png') @@ -180,7 +286,7 @@ def invpend_update(t, x, u, params): ct.phase_plane_plot( invpend, [-2*pi, 2*pi, -2, 2], 5, gridtype='meshgrid', gridspec=[5, 8], arrows=3, - plot_separatrices={'gridspec': [12, 9]}, + plot_separatrices={'gridspec': [12, 9]}, plot_streamlines=True, params={'m': 1, 'l': 1, 'b': 0.2, 'g': 1}) plt.xlabel(r"$\theta$ [rad]") plt.ylabel(r"$\dot\theta$ [rad/sec]") @@ -195,7 +301,8 @@ def oscillator_update(t, x, u, params): oscillator_update, states=2, inputs=0, name='nonlinear oscillator') plt.figure() - ct.phase_plane_plot(oscillator, [-1.5, 1.5, -1.5, 1.5], 0.9) + ct.phase_plane_plot(oscillator, [-1.5, 1.5, -1.5, 1.5], 0.9, + plot_streamlines=True) pp.streamlines( oscillator, np.array([[0, 0]]), 1.5, gridtype='circlegrid', gridspec=[0.5, 6], dir='both') @@ -205,6 +312,18 @@ def oscillator_update(t, x, u, params): if savefigs: plt.savefig('phaseplot-oscillator-helpers.png') + plt.figure() + ct.phase_plane_plot( + invpend, [-2*pi, 2*pi, -2, 2], + plot_streamplot=dict(vary_color=True, vary_density=True), + gridspec=[60, 20], params={'m': 1, 'l': 1, 'b': 0.2, 'g': 1} + ) + plt.xlabel(r"$\theta$ [rad]") + plt.ylabel(r"$\dot\theta$ [rad/sec]") + + if savefigs: + plt.savefig('phaseplot-invpend-streamplot.png') + if __name__ == "__main__": # diff --git a/control/tests/pzmap_test.py b/control/tests/pzmap_test.py index ce8adf6e7..64bbdee3e 100644 --- a/control/tests/pzmap_test.py +++ b/control/tests/pzmap_test.py @@ -16,7 +16,7 @@ from control import TransferFunction, config, pzmap -@pytest.mark.filterwarnings("ignore:.*return values.*:DeprecationWarning") +@pytest.mark.filterwarnings("ignore:.*return value.*:FutureWarning") @pytest.mark.parametrize("kwargs", [pytest.param(dict(), id="default"), pytest.param(dict(plot=False), id="plot=False"), @@ -53,7 +53,8 @@ def test_pzmap(kwargs, setdefaults, dt, editsdefaults, mplcleanup): if kwargs.get('plot', None) is None: pzkwargs['plot'] = True # use to get legacy return values - P, Z = pzmap(T, **pzkwargs) + with pytest.warns(FutureWarning, match="return value .* is deprecated"): + P, Z = pzmap(T, **pzkwargs) np.testing.assert_allclose(P, Pref, rtol=1e-3) np.testing.assert_allclose(Z, Zref, rtol=1e-3) @@ -96,7 +97,7 @@ def test_polezerodata(): # Legacy return format for plot in [True, False]: - with pytest.warns(DeprecationWarning, match=".* values .* deprecated"): + with pytest.warns(FutureWarning, match=".* value .* deprecated"): poles, zeros = ct.pole_zero_plot(pzdata, plot=False) np.testing.assert_equal(poles, sys.poles()) np.testing.assert_equal(zeros, sys.zeros()) @@ -110,16 +111,16 @@ def test_pzmap_raises(): sys1 = ct.rss(2, 1, 1) sys2 = sys1.sample(0.1) with pytest.raises(ValueError, match="incompatible time bases"): - pzdata = ct.pole_zero_plot([sys1, sys2], grid=True) + ct.pole_zero_plot([sys1, sys2], grid=True) with pytest.warns(UserWarning, match="axis already exists"): - fig, ax = plt.figure(), plt.axes() + _fig, ax = plt.figure(), plt.axes() ct.pole_zero_plot(sys1, ax=ax, grid='empty') def test_pzmap_limits(): sys = ct.tf([1, 2], [1, 2, 3]) - out = ct.pole_zero_plot(sys, xlim=[-1, 1], ylim=[-1, 1]) - ax = ct.get_plot_axes(out)[0, 0] + cplt = ct.pole_zero_plot(sys, xlim=[-1, 1], ylim=[-1, 1]) + ax = cplt.axes[0, 0] assert ax.get_xlim() == (-1, 1) assert ax.get_ylim() == (-1, 1) diff --git a/control/tests/response_test.py b/control/tests/response_test.py new file mode 100644 index 000000000..2b55ad103 --- /dev/null +++ b/control/tests/response_test.py @@ -0,0 +1,79 @@ +# response_test.py - test response/plot design pattern +# RMM, 13 Jan 2025 +# +# The standard pattern for control plots is to call a _response() or _map() +# function and then use the plot() method. However, it is also allowed to +# call the _plot() function directly, in which case the _response()/_map() +# function is called internally. +# +# If there are arguments that are allowed in _plot() that need to be +# processed by _response(), then we need to make sure that arguments are +# properly passed from _plot() to _response(). The unit tests in this file +# make sure that this functionality is implemented properly across all +# *relevant* _response/_map/plot pairs. +# +# Response/map function Plotting function Comments +# --------------------- ----------------- -------- +# describing_function_response describing_function_plot no passthru args +# forced_response time_response_plot no passthru args +# frequency_response bode_plot included below +# frequency_response nichols_plot included below +# gangof4_response gangof4_plot included below +# impulse_response time_response_plot no passthru args +# initial_response time_response_plot no passthru args +# input_output_response time_response_plot no passthru args +# nyquist_response nyquist_plot included below +# pole_zero_map pole_zero_plot no passthru args +# root_locus_map root_locus_plot included below +# singular_values_response singular_values_plot included below +# step_response time_response_plot no passthru args + +import matplotlib.pyplot as plt +import numpy as np +import pytest + +import control as ct + + +# List of parameters that should be processed by response function +@pytest.mark.parametrize("respfcn, plotfcn, respargs", [ + (ct.frequency_response, ct.bode_plot, + {'omega_limits': [1e-2, 1e2], 'omega_num': 50, 'Hz': True}), + (ct.frequency_response, ct.bode_plot, {'omega': np.logspace(2, 2)}), + (ct.frequency_response, ct.nichols_plot, {'omega': np.logspace(2, 2)}), + (ct.gangof4_response, ct.gangof4_plot, {'omega': np.logspace(2, 2)}), + (ct.gangof4_response, ct.gangof4_plot, + {'omega_limits': [1e-2, 1e2], 'omega_num': 50, 'Hz': True}), + (ct.nyquist_response, ct.nyquist_plot, + {'indent_direction': 'right', 'indent_radius': 0.1, 'indent_points': 100, + 'omega_num': 50, 'warn_nyquist': False}), + (ct.root_locus_map, ct.root_locus_plot, {'gains': np.linspace(1, 10, 5)}), + (ct.singular_values_response, ct.singular_values_plot, + {'omega_limits': [1e-2, 1e2], 'omega_num': 50, 'Hz': True}), + (ct.singular_values_response, ct.singular_values_plot, + {'omega': np.logspace(2, 2)}), +]) +@pytest.mark.usefixtures('mplcleanup') +def test_response_plot(respfcn, plotfcn, respargs): + if respfcn is ct.gangof4_response: + # Two arguments required + args = (ct.rss(4, 1, 1, strictly_proper=True), ct.rss(1, 1, 1)) + else: + # Single argument is enough + args = (ct.rss(4, 1, 1, strictly_proper=True), ) + + # Standard calling pattern - generate response, then plot + plt.figure() + resp = respfcn(*args, **respargs) + if plotfcn is ct.nichols_plot: + cplt_resp = resp.plot(plot_type='nichols') + else: + cplt_resp = resp.plot() + + # Alternative calling pattern - call plotting function directly + plt.figure() + cplt_plot = plotfcn(*args, **respargs) + + # Make sure the plots have the same elements + assert cplt_resp.lines.shape == cplt_plot.lines.shape + assert cplt_resp.axes.shape == cplt_plot.axes.shape diff --git a/control/tests/rlocus_test.py b/control/tests/rlocus_test.py index 5511f5b82..4d3a08206 100644 --- a/control/tests/rlocus_test.py +++ b/control/tests/rlocus_test.py @@ -45,7 +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") + @pytest.mark.filterwarnings("ignore:.*return value.*:FutureWarning") def testRootLocus(self, sys): """Basic root locus (no plot)""" klist = [-1, 0, 1] @@ -61,7 +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") + @pytest.mark.filterwarnings("ignore:.*return value.*:FutureWarning") def test_without_gains(self, sys): roots, kvect = root_locus(sys, plot=False) self.check_cl_poles(sys, roots, kvect) @@ -95,7 +95,7 @@ def test_root_locus_plot_grid(self, sys, grid, method): if grid == 'empty': assert n_gridlines == 0 assert not isinstance(ax, AA.Axes) - elif grid is False or method == 'pzmap' and grid is None: + elif grid is False: assert n_gridlines == 2 if sys.isctime() else 3 assert not isinstance(ax, AA.Axes) elif sys.isdtime(strict=True): @@ -109,7 +109,7 @@ def test_root_locus_plot_grid(self, sys, grid, method): # TODO: check validity of grid - @pytest.mark.filterwarnings("ignore:.*return values.*:DeprecationWarning") + @pytest.mark.filterwarnings("ignore:.*return value.*:FutureWarning") 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"): @@ -134,7 +134,7 @@ def test_root_locus_zoom(self): ax_rlocus.set_xlim((-10.813628105112421, 14.760795435937652)) ax_rlocus.set_ylim((-35.61713798641108, 33.879716621220311)) plt.get_current_fig_manager().toolbar.mode = 'zoom rect' - _RLClickDispatcher(event, system, fig, ax_rlocus, '-') + _RLClickDispatcher(event, system, fig, ax_rlocus, '-') # noqa: F821 zoom_x = ax_rlocus.lines[-2].get_data()[0][0:5] zoom_y = ax_rlocus.lines[-2].get_data()[1][0:5] @@ -147,7 +147,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.filterwarnings("ignore:.*return value.*:FutureWarning") @pytest.mark.timeout(2) def test_rlocus_default_wn(self): """Check that default wn calculation works properly""" @@ -161,7 +161,6 @@ def test_rlocus_default_wn(self): # that will take a long time to do the calculation (minutes). # import scipy as sp - import signal # Define a system that exhibits this behavior sys = ct.tf(*sp.signal.zpk2tf( @@ -174,13 +173,24 @@ def test_rlocus_default_wn(self): "sys, grid, xlim, ylim, interactive", [ (ct.tf([1], [1, 2, 1]), None, None, None, False), ]) +@pytest.mark.usefixtures("mplcleanup") def test_root_locus_plots(sys, grid, xlim, ylim, interactive): ct.root_locus_map(sys).plot( grid=grid, xlim=xlim, ylim=ylim, interactive=interactive) # TODO: add tests to make sure everything "looks" OK +# Test deprecated keywords +@pytest.mark.parametrize("keyword", ["kvect", "k"]) +@pytest.mark.usefixtures("mplcleanup") +def test_root_locus_legacy(keyword): + sys = ct.rss(2, 1, 1) + with pytest.warns(FutureWarning, match=f"'{keyword}' is deprecated"): + ct.root_locus_plot(sys, **{keyword: [0, 1, 2]}) + + # Generate plots used in documentation +@pytest.mark.usefixtures("mplcleanup") def test_root_locus_documentation(savefigs=False): plt.figure() sys = ct.tf([1, 2], [1, 2, 3], name='SISO transfer function') @@ -196,9 +206,9 @@ def test_root_locus_documentation(savefigs=False): # TODO: generate event in order to generate real title plt.figure() - out = ct.root_locus_map(sys).plot(initial_gain=3.506) - ax = ct.get_plot_axes(out)[0, 0] - freqplot_rcParams = ct.config._get_param('freqplot', 'rcParams') + cplt = ct.root_locus_map(sys).plot(initial_gain=3.506) + ax = cplt.axes[0, 0] + freqplot_rcParams = ct.config._get_param('ctrlplot', 'rcParams') with plt.rc_context(freqplot_rcParams): ax.set_title( "Clicked at: -2.729+1.511j gain = 3.506 damping = 0.8748") @@ -219,6 +229,21 @@ def test_root_locus_documentation(savefigs=False): plt.savefig('rlocus-siso_multiple-nogrid.png') +# https://github.com/python-control/python-control/issues/1063 +def test_rlocus_singleton(): + # Generate a root locus map for a singleton + L = ct.tf([1, 1], [1, 2, 3]) + rldata = ct.root_locus_map(L, 1) + np.testing.assert_equal(rldata.gains, np.array([1])) + assert rldata.loci.shape == (1, 2) + + # Generate the root locus plot (no loci) + cplt = rldata.plot() + assert len(cplt.lines[0, 0]) == 1 # poles (one set of markers) + assert len(cplt.lines[0, 1]) == 1 # zeros + assert len(cplt.lines[0, 2]) == 2 # loci (two 0-length lines) + + if __name__ == "__main__": # # Interactive mode: generate plots for manual viewing @@ -270,6 +295,9 @@ def test_root_locus_documentation(savefigs=False): plt.figure() test_root_locus_plots( sys, grid=grid, xlim=xlim, ylim=ylim, interactive=interactive) + ct.suptitle( + f"sys={sys.name}, {grid=}, {xlim=}, {ylim=}, {interactive=}", + frame='figure') # Run tests that generate plots for the documentation test_root_locus_documentation(savefigs=True) diff --git a/control/tests/robust_test.py b/control/tests/robust_test.py index 146ae9e41..fc9c9570d 100644 --- a/control/tests/robust_test.py +++ b/control/tests/robust_test.py @@ -37,7 +37,7 @@ def testH2syn(self): """Test h2syn""" p = ss(-1, [[1, 1]], [[1], [1]], [[0, 1], [1, 0]]) k = h2syn(p, 1, 1) - # from Octave, which also uses SB10HD for H-2 synthesis: + # from Octave, which also uses SB10HD for H2 synthesis: # a= -1; b1= 1; b2= 1; c1= 1; c2= 1; d11= 0; d12= 1; d21= 1; d22= 0; # g = ss(a,[b1,b2],[c1;c2],[d11,d12;d21,d22]); # k = h2syn(g,1,1); @@ -48,6 +48,7 @@ def testH2syn(self): np.testing.assert_array_almost_equal(k.D, [[0]]) +@pytest.mark.filterwarnings("ignore:connect:FutureWarning") class TestAugw: # tolerance for system equality @@ -324,6 +325,7 @@ def testErrors(self): augw(g1by1, w3=g2by2) +@pytest.mark.filterwarnings("ignore:connect:FutureWarning") class TestMixsyn: """Test control.robust.mixsyn""" diff --git a/control/tests/sisotool_test.py b/control/tests/sisotool_test.py index 325b9c180..1fc744daa 100644 --- a/control/tests/sisotool_test.py +++ b/control/tests/sisotool_test.py @@ -153,6 +153,7 @@ def test_sisotool_initial_gain(self, tsys): with pytest.warns(FutureWarning): sisotool(tsys, kvect=1.2) + @pytest.mark.filterwarnings("ignore:connect:FutureWarning") def test_sisotool_mimo(self, sys222, sys221): # a 2x2 should not raise an error: sisotool(sys222) @@ -196,6 +197,7 @@ def test_pid_designer_1(self, plant, gain, sign, input_signal, Kp0, Ki0, Kd0, de {'input_signal':'r', '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}]) + @pytest.mark.filterwarnings("ignore:connect:FutureWarning") def test_pid_designer_2(self, plant, kwargs): rootlocus_pid_designer(plant, **kwargs) diff --git a/control/tests/statefbk_test.py b/control/tests/statefbk_test.py index 4a0472de7..3f4b4849a 100644 --- a/control/tests/statefbk_test.py +++ b/control/tests/statefbk_test.py @@ -7,15 +7,15 @@ import pytest import itertools import warnings -from math import pi, atan +from math import pi import control as ct -from control import lqe, dlqe, poles, rss, ss, tf +from control import poles, rss, ss, tf from control.exception import ControlDimension, ControlSlycot, \ ControlArgument, slycot_check from control.mateqn import care, dare from control.statefbk import (ctrb, obsv, place, place_varga, lqr, dlqr, - gram, acker) + gram, place_acker) from control.tests.conftest import slycotonly @@ -56,7 +56,27 @@ def testCtrbT(self): Wctrue = np.array([[5., 6.], [7., 8.]]) Wc = ctrb(A, B, t=t) np.testing.assert_array_almost_equal(Wc, Wctrue) - + + def testCtrbNdim1(self): + # gh-1097: treat 1-dim B as nx1 + A = np.array([[1., 2.], [3., 4.]]) + B = np.array([5., 7.]) + Wctrue = np.array([[5., 19.], [7., 43.]]) + Wc = ctrb(A, B) + np.testing.assert_array_almost_equal(Wc, Wctrue) + + def testCtrbRejectMismatch(self): + # gh-1097: check A, B for compatible shapes + with pytest.raises( + ControlDimension, match='.* A must be a square matrix'): + ctrb([[1,2]],[1]) + with pytest.raises( + ControlDimension, match='B has the wrong number of rows'): + ctrb([[1,2],[2,3]], 1) + with pytest.raises( + ControlDimension, match='B has the wrong number of rows'): + ctrb([[1,2],[2,3]], [[1,2]]) + def testObsvSISO(self): A = np.array([[1., 2.], [3., 4.]]) C = np.array([[5., 7.]]) @@ -70,7 +90,7 @@ 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.]]) @@ -79,6 +99,26 @@ def testObsvT(self): Wo = obsv(A, C, t=t) np.testing.assert_array_almost_equal(Wo, Wotrue) + def testObsvNdim1(self): + # gh-1097: treat 1-dim C as 1xn + 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) + + def testObsvRejectMismatch(self): + # gh-1097: check A, C for compatible shapes + with pytest.raises( + ControlDimension, match='.* A must be a square matrix'): + obsv([[1,2]],[1]) + with pytest.raises( + ControlDimension, match='C has the wrong number of columns'): + obsv([[1,2],[2,3]], 1) + with pytest.raises( + ControlDimension, match='C has the wrong number of columns'): + obsv([[1,2],[2,3]], [[1],[2]]) + def testCtrbObsvDuality(self): A = np.array([[1.2, -2.3], [3.4, -4.5]]) B = np.array([[5.8, 6.9], [8., 9.1]]) @@ -128,15 +168,14 @@ def testGramRc(self): 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]]) + Rctrue = np.array([[4.30116263, 5.6961343], [0., 0.23249528]]) Rc = gram(sys, 'cf') np.testing.assert_array_almost_equal(Rc, Rctrue) sysd = ct.c2d(sys, 0.2) Rctrue = np.array([[1.91488054, 2.53468814], [0. , 0.10290372]]) Rc = gram(sysd, 'cf') - np.testing.assert_array_almost_equal(Rc, Rctrue) + np.testing.assert_array_almost_equal(Rc, Rctrue) @slycotonly def testGramWo(self): @@ -149,7 +188,7 @@ def testGramWo(self): Wo = gram(sys, 'o') np.testing.assert_array_almost_equal(Wo, Wotrue) sysd = ct.c2d(sys, 0.2) - Wotrue = np.array([[ 1305.369179, -440.046414], + Wotrue = np.array([[ 1305.369179, -440.046414], [ -440.046414, 333.034844]]) Wo = gram(sysd, 'o') np.testing.assert_array_almost_equal(Wo, Wotrue) @@ -184,7 +223,7 @@ def testGramRo(self): Rotrue = np.array([[ 36.12989315, -12.17956588], [ 0. , 13.59018097]]) Ro = gram(sysd, 'of') - np.testing.assert_array_almost_equal(Ro, Rotrue) + np.testing.assert_array_almost_equal(Ro, Rotrue) def testGramsys(self): sys = tf([1.], [1., 1., 1.]) @@ -230,7 +269,7 @@ def testAcker(self, fixedseed): desired = poles(des) # Now place the poles using acker - K = acker(sys.A, sys.B, desired) + K = place_acker(sys.A, sys.B, desired) new = ss(sys.A - sys.B * K, sys.B, sys.C, sys.D) placed = poles(new) @@ -535,7 +574,7 @@ def test_dare(self, stabilizing): assert np.all(sgn * (np.abs(L) - 1) > 0) def test_lqr_discrete(self): - """Test overloading of lqr operator for discrete time systems""" + """Test overloading of lqr operator for discrete-time systems""" csys = ct.rss(2, 1, 1) dsys = ct.drss(2, 1, 1) Q = np.eye(2) @@ -548,7 +587,7 @@ def test_lqr_discrete(self): np.testing.assert_almost_equal(S_csys, S_expl) np.testing.assert_almost_equal(E_csys, E_expl) - # Calling lqr() with a discrete time system should call dlqr() + # Calling lqr() with a discrete-time system should call dlqr() K_lqr, S_lqr, E_lqr = ct.lqr(dsys, Q, R) K_dlqr, S_dlqr, E_dlqr = ct.dlqr(dsys, Q, R) np.testing.assert_almost_equal(K_lqr, K_dlqr) @@ -563,7 +602,7 @@ def test_lqr_discrete(self): np.testing.assert_almost_equal(S_asys, S_expl) np.testing.assert_almost_equal(E_asys, E_expl) - # Calling dlqr() with a continuous time system should raise an error + # Calling dlqr() with a continuous-time system should raise an error with pytest.raises(ControlArgument, match="dsys must be discrete"): K, S, E = ct.dlqr(csys, Q, R) @@ -744,7 +783,7 @@ def test_statefbk_iosys_unused(self): def test_lqr_integral_continuous(self): - # Generate a continuous time system for testing + # Generate a continuous-time system for testing sys = ct.rss(4, 4, 2, strictly_proper=True) sys.C = np.eye(4) # reset output to be full state C_int = np.eye(2, 4) # integrate outputs for first two states @@ -811,7 +850,7 @@ def test_lqr_integral_continuous(self): assert abs(ctrl_tf(1e-9)[1][1]) > 1e6 def test_lqr_integral_discrete(self): - # Generate a discrete time system for testing + # Generate a discrete-time system for testing sys = ct.drss(4, 4, 2, strictly_proper=True) sys.C = np.eye(4) # reset output to be full state C_int = np.eye(2, 4) # integrate outputs for first two states @@ -821,7 +860,7 @@ def test_lqr_integral_discrete(self): K, _, _ = ct.lqr( sys, np.eye(sys.nstates + nintegrators), np.eye(sys.ninputs), integral_action=C_int) - Kp, Ki = K[:, :sys.nstates], K[:, sys.nstates:] + Kp, _Ki = K[:, :sys.nstates], K[:, sys.nstates:] # Create an I/O system for the controller ctrl, clsys = ct.create_statefbk_iosystem( @@ -846,7 +885,7 @@ def test_lqr_integral_discrete(self): "rss_fun, lqr_fun", [(ct.rss, lqr), (ct.drss, dlqr)]) def test_lqr_errors(self, rss_fun, lqr_fun): - # Generate a discrete time system for testing + # Generate a discrete-time system for testing sys = rss_fun(4, 4, 2, strictly_proper=True) with pytest.raises(ControlArgument, match="must pass an array"): @@ -892,7 +931,7 @@ 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.warns(DeprecationWarning, match="'type' is deprecated"): + with pytest.warns(FutureWarning, match="'type' is deprecated"): ctrl, clsys = ct.create_statefbk_iosystem(sys, K, type='nonlinear') with pytest.raises(ControlArgument, match="duplicate keywords"): @@ -931,11 +970,11 @@ def unicycle_update(t, x, u, params): return ct.NonlinearIOSystem( unicycle_update, None, - inputs = ['v', 'phi'], - outputs = ['x', 'y', 'theta'], - states = ['x_', 'y_', 'theta_']) + inputs=['v', 'phi'], + outputs=['x', 'y', 'theta'], + states=['x_', 'y_', 'theta_'], + params={'a': 1}) # only used for testing params -from math import pi @pytest.mark.parametrize("method", ['nearest', 'linear', 'cubic']) def test_gainsched_unicycle(unicycle, method): @@ -1143,3 +1182,82 @@ def test_gainsched_errors(unicycle): ctrl, clsys = ct.create_statefbk_iosystem( unicycle, (gains, points), gainsched_indices=[3, 2], gainsched_method='unknown') + + +@pytest.mark.parametrize("ninputs, Kf", [ + (1, 1), + (1, None), + (2, np.diag([1, 1])), + (2, None), +]) +def test_refgain_pattern(ninputs, Kf): + sys = ct.rss(2, 2, ninputs, strictly_proper=True) + sys.C = np.eye(2) + + K, _, _ = ct.lqr(sys.A, sys.B, np.eye(sys.nstates), np.eye(sys.ninputs)) + if Kf is None: + # Make sure we get an error if we don't specify Kf + with pytest.raises(ControlArgument, match="'feedfwd_gain' required"): + ctrl, clsys = ct.create_statefbk_iosystem( + sys, K, Kf, feedfwd_pattern='refgain') + + # Now compute the gain to give unity zero frequency gain + C = np.eye(ninputs, sys.nstates) + Kf = -np.linalg.inv( + C @ np.linalg.inv(sys.A - sys.B @ K) @ sys.B) + ctrl, clsys = ct.create_statefbk_iosystem( + sys, K, Kf, feedfwd_pattern='refgain') + + np.testing.assert_almost_equal( + C @ clsys(0)[0:sys.nstates], np.eye(ninputs)) + + else: + ctrl, clsys = ct.create_statefbk_iosystem( + sys, K, Kf, feedfwd_pattern='refgain') + + manual = ct.feedback(sys, K) * Kf + np.testing.assert_almost_equal(clsys.A, manual.A) + np.testing.assert_almost_equal(clsys.B, manual.B) + np.testing.assert_almost_equal(clsys.C[:sys.nstates, :], manual.C) + np.testing.assert_almost_equal(clsys.D[:sys.nstates, :], manual.D) + + +def test_create_statefbk_errors(): + sys = ct.rss(2, 2, 1, strictly_proper=True) + sys.C = np.eye(2) + K = -np.ones((1, 4)) + Kf = 1 + + K, _, _ = ct.lqr(sys.A, sys.B, np.eye(sys.nstates), np.eye(sys.ninputs)) + with pytest.raises(NotImplementedError, match="unknown pattern"): + ct.create_statefbk_iosystem(sys, K, feedfwd_pattern='mypattern') + + with pytest.raises(ControlArgument, match="feedfwd_pattern != 'refgain'"): + ct.create_statefbk_iosystem(sys, K, Kf, feedfwd_pattern='trajgen') + + +def test_create_statefbk_params(unicycle): + Q = np.identity(unicycle.nstates) + R = np.identity(unicycle.ninputs) + gain, _, _ = ct.lqr(unicycle.linearize([0, 0, 0], [5, 0]), Q, R) + + # Create a linear controller + ctrl, clsys = ct.create_statefbk_iosystem(unicycle, gain) + assert [k for k in ctrl.params.keys()] == [] + assert [k for k in clsys.params.keys()] == ['a'] + assert clsys.params['a'] == 1 + + # Create a nonlinear controller + ctrl, clsys = ct.create_statefbk_iosystem( + unicycle, gain, controller_type='nonlinear') + assert [k for k in ctrl.params.keys()] == ['K'] + assert [k for k in clsys.params.keys()] == ['K', 'a'] + assert clsys.params['a'] == 1 + + # Override the default parameters + ctrl, clsys = ct.create_statefbk_iosystem( + unicycle, gain, controller_type='nonlinear', params={'a': 2, 'b': 1}) + assert [k for k in ctrl.params.keys()] == ['K'] + assert [k for k in clsys.params.keys()] == ['K', 'a', 'b'] + assert clsys.params['a'] == 2 + assert clsys.params['b'] == 1 diff --git a/control/tests/statesp_test.py b/control/tests/statesp_test.py index 59f441456..3c1411f04 100644 --- a/control/tests/statesp_test.py +++ b/control/tests/statesp_test.py @@ -1,4 +1,4 @@ -"""statesp_test.py - test state space class +"""Tests for the StateSpace class. RMM, 30 Mar 2011 based on TestStateSp from v0.4a) RMM, 14 Jun 2019 statesp_array_test.py coverted from statesp_test.py to test @@ -7,23 +7,22 @@ convert to pytest """ +import operator + import numpy as np -from numpy.testing import assert_array_almost_equal import pytest -import operator from numpy.linalg import solve +from numpy.testing import assert_array_almost_equal from scipy.linalg import block_diag, eigvals import control as ct from control.config import defaults 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, ss, rss, drss +from control.lti import LTI, evalfr +from control.statesp import StateSpace, _convert_to_statespace, \ + _rss_generate, _statesp_defaults, drss, linfnorm, rss, ss, tf2ss from control.xferfcn import TransferFunction, ss2tf - -from .conftest import editsdefaults, slycotonly - +from .conftest import assert_tf_close_coeff, slycotonly class TestStateSpace: """Tests for the StateSpace class.""" @@ -121,28 +120,27 @@ def test_constructor(self, sys322ABCD, dt, argfun): np.testing.assert_almost_equal(sys.D, sys322ABCD[3]) assert sys.dt == dtref - @pytest.mark.parametrize("args, exc, errmsg", - [((True, ), TypeError, - "(can only take in|sys must be) a StateSpace"), - ((1, 2), TypeError, "1, 4, or 5 arguments"), - ((np.ones((3, 2)), np.ones((3, 2)), - np.ones((2, 2)), np.ones((2, 2))), - ValueError, "A must be square"), - ((np.ones((3, 3)), np.ones((2, 2)), - np.ones((2, 3)), np.ones((2, 2))), - ValueError, "A and B"), - ((np.ones((3, 3)), np.ones((3, 2)), - np.ones((2, 2)), np.ones((2, 2))), - ValueError, "A and C"), - ((np.ones((3, 3)), np.ones((3, 2)), - np.ones((2, 3)), np.ones((2, 3))), - ValueError, "B and D"), - ((np.ones((3, 3)), np.ones((3, 2)), - np.ones((2, 3)), np.ones((3, 2))), - ValueError, "C and D"), - ]) + @pytest.mark.parametrize( + "args, exc, errmsg", + [((True, ), TypeError, "(can only take in|sys must be) a StateSpace"), + ((1, 2), TypeError, "1, 4, or 5 arguments"), + ((np.ones((3, 2)), np.ones((3, 2)), + np.ones((2, 2)), np.ones((2, 2))), ValueError, + r"A must be a square matrix"), + ((np.ones((3, 3)), np.ones((2, 2)), + np.ones((2, 3)), np.ones((2, 2))), ValueError, + r"Incompatible dimensions of B matrix; expected \(3, 2\)"), + ((np.ones((3, 3)), np.ones((3, 2)), + np.ones((2, 2)), np.ones((2, 2))), ValueError, + r"Incompatible dimensions of C matrix; expected \(2, 3\)"), + ((np.ones((3, 3)), np.ones((3, 2)), + np.ones((2, 3)), np.ones((2, 3))), ValueError, + r"Incompatible dimensions of D matrix; expected \(2, 2\)"), + (([1j], 2, 3, 0), TypeError, "real number, not 'complex'"), + ]) def test_constructor_invalid(self, args, exc, errmsg): """Test invalid input to StateSpace() constructor""" + with pytest.raises(exc, match=errmsg): StateSpace(*args) with pytest.raises(exc, match=errmsg): @@ -247,7 +245,6 @@ def test_zero_siso(self, sys222): np.testing.assert_almost_equal(true_z, z) - @slycotonly def test_zero_mimo_sys322_square(self, sys322): """Evaluate the zeros of a square MIMO system.""" @@ -255,7 +252,6 @@ def test_zero_mimo_sys322_square(self, sys322): true_z = np.sort([44.41465, -0.490252, -5.924398]) np.testing.assert_array_almost_equal(z, true_z) - @slycotonly def test_zero_mimo_sys222_square(self, sys222): """Evaluate the zeros of a square MIMO system.""" @@ -319,6 +315,335 @@ 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) + def test_add_sub_mimo_siso(self): + # Test SS with SS + ss_siso = StateSpace( + np.array([ + [1, 2], + [3, 4], + ]), + np.array([ + [1], + [4], + ]), + np.array([ + [1, 1], + ]), + np.array([ + [0], + ]), + ) + ss_siso_1 = StateSpace( + np.array([ + [1, 1], + [3, 1], + ]), + np.array([ + [3], + [-4], + ]), + np.array([ + [-1, 1], + ]), + np.array([ + [0.1], + ]), + ) + ss_siso_2 = StateSpace( + np.array([ + [1, 0], + [0, 1], + ]), + np.array([ + [0], + [2], + ]), + np.array([ + [0, 1], + ]), + np.array([ + [0], + ]), + ) + ss_mimo = ss_siso_1.append(ss_siso_2) + expected_add = ct.combine_tf([ + [ss2tf(ss_siso_1 + ss_siso), ss2tf(ss_siso)], + [ss2tf(ss_siso), ss2tf(ss_siso_2 + ss_siso)], + ]) + expected_sub = ct.combine_tf([ + [ss2tf(ss_siso_1 - ss_siso), -ss2tf(ss_siso)], + [-ss2tf(ss_siso), ss2tf(ss_siso_2 - ss_siso)], + ]) + for op, expected in [ + (StateSpace.__add__, expected_add), + (StateSpace.__radd__, expected_add), + (StateSpace.__sub__, expected_sub), + (StateSpace.__rsub__, -expected_sub), + ]: + result = op(ss_mimo, ss_siso) + assert_tf_close_coeff( + expected.minreal(), + ss2tf(result).minreal(), + ) + # Test SS with array + expected_add = ct.combine_tf([ + [ss2tf(1 + ss_siso), ss2tf(ss_siso)], + [ss2tf(ss_siso), ss2tf(1 + ss_siso)], + ]) + expected_sub = ct.combine_tf([ + [ss2tf(-1 + ss_siso), ss2tf(ss_siso)], + [ss2tf(ss_siso), ss2tf(-1 + ss_siso)], + ]) + for op, expected in [ + (StateSpace.__add__, expected_add), + (StateSpace.__radd__, expected_add), + (StateSpace.__sub__, expected_sub), + (StateSpace.__rsub__, -expected_sub), + ]: + result = op(ss_siso, np.eye(2)) + assert_tf_close_coeff( + expected.minreal(), + ss2tf(result).minreal(), + ) + + @slycotonly + @pytest.mark.parametrize( + "left, right, expected", + [ + ( + TransferFunction([2], [1, 0]), + TransferFunction( + [ + [[2], [1]], + [[-1], [4]], + ], + [ + [[10, 1], [20, 1]], + [[20, 1], [30, 1]], + ], + ), + TransferFunction( + [ + [[4], [2]], + [[-2], [8]], + ], + [ + [[10, 1, 0], [20, 1, 0]], + [[20, 1, 0], [30, 1, 0]], + ], + ), + ), + ( + TransferFunction( + [ + [[2], [1]], + [[-1], [4]], + ], + [ + [[10, 1], [20, 1]], + [[20, 1], [30, 1]], + ], + ), + TransferFunction([2], [1, 0]), + TransferFunction( + [ + [[4], [2]], + [[-2], [8]], + ], + [ + [[10, 1, 0], [20, 1, 0]], + [[20, 1, 0], [30, 1, 0]], + ], + ), + ), + ( + TransferFunction([2], [1, 0]), + np.eye(3), + TransferFunction( + [ + [[2], [0], [0]], + [[0], [2], [0]], + [[0], [0], [2]], + ], + [ + [[1, 0], [1], [1]], + [[1], [1, 0], [1]], + [[1], [1], [1, 0]], + ], + ), + ), + ] + ) + def test_mul_mimo_siso(self, left, right, expected): + result = tf2ss(left).__mul__(right) + assert_tf_close_coeff( + expected.minreal(), + ss2tf(result).minreal(), + ) + + @slycotonly + @pytest.mark.parametrize( + "left, right, expected", + [ + ( + TransferFunction([2], [1, 0]), + TransferFunction( + [ + [[2], [1]], + [[-1], [4]], + ], + [ + [[10, 1], [20, 1]], + [[20, 1], [30, 1]], + ], + ), + TransferFunction( + [ + [[4], [2]], + [[-2], [8]], + ], + [ + [[10, 1, 0], [20, 1, 0]], + [[20, 1, 0], [30, 1, 0]], + ], + ), + ), + ( + TransferFunction( + [ + [[2], [1]], + [[-1], [4]], + ], + [ + [[10, 1], [20, 1]], + [[20, 1], [30, 1]], + ], + ), + TransferFunction([2], [1, 0]), + TransferFunction( + [ + [[4], [2]], + [[-2], [8]], + ], + [ + [[10, 1, 0], [20, 1, 0]], + [[20, 1, 0], [30, 1, 0]], + ], + ), + ), + ( + np.eye(3), + TransferFunction([2], [1, 0]), + TransferFunction( + [ + [[2], [0], [0]], + [[0], [2], [0]], + [[0], [0], [2]], + ], + [ + [[1, 0], [1], [1]], + [[1], [1, 0], [1]], + [[1], [1], [1, 0]], + ], + ), + ), + ] + ) + def test_rmul_mimo_siso(self, left, right, expected): + result = tf2ss(right).__rmul__(left) + assert_tf_close_coeff( + expected.minreal(), + ss2tf(result).minreal(), + ) + + @slycotonly + @pytest.mark.parametrize("power", [0, 1, 3, -3]) + @pytest.mark.parametrize("sysname", ["sys222", "sys322"]) + def test_pow(self, request, sysname, power): + """Test state space powers.""" + sys = request.getfixturevalue(sysname) + result = sys**power + if power == 0: + expected = StateSpace([], [], [], np.eye(sys.ninputs), dt=0) + else: + sign = 1 if power > 0 else -1 + expected = sys**sign + for i in range(1,abs(power)): + expected *= sys**sign + np.testing.assert_allclose(expected.A, result.A) + np.testing.assert_allclose(expected.B, result.B) + np.testing.assert_allclose(expected.C, result.C) + np.testing.assert_allclose(expected.D, result.D) + + @slycotonly + @pytest.mark.parametrize("order", ["left", "right"]) + @pytest.mark.parametrize("sysname", ["sys121", "sys222", "sys322"]) + def test_pow_inv(self, request, sysname, order): + """Check for identity when multiplying by inverse. + + This holds approximately true for a few steps but is very + unstable due to numerical precision. Don't assume this in + real life. For testing purposes only! + """ + sys = request.getfixturevalue(sysname) + if order == "left": + combined = sys**-1 * sys + else: + combined = sys * sys**-1 + combined = combined.minreal() + np.testing.assert_allclose(combined.dcgain(), np.eye(sys.ninputs), + atol=1e-7) + T = np.linspace(0., 0.3, 100) + U = np.random.rand(sys.ninputs, len(T)) + R = combined.forced_response(T=T, U=U, squeeze=False) + # Check that the output is the same as the input + np.testing.assert_allclose(R.outputs, U) + + @slycotonly + def test_truediv(self, sys222, sys322): + """Test state space truediv""" + for sys in [sys222, sys322]: + # Divide by self + result = (sys.__truediv__(sys)).minreal() + expected = StateSpace([], [], [], np.eye(2), dt=0) + assert_tf_close_coeff( + ss2tf(expected).minreal(), + ss2tf(result).minreal(), + ) + # Divide by TF + result = sys.__truediv__(TransferFunction.s) + expected = ss2tf(sys) / TransferFunction.s + assert_tf_close_coeff( + expected.minreal(), + ss2tf(result).minreal(), + ) + + @slycotonly + def test_rtruediv(self, sys222, sys322): + """Test state space rtruediv""" + for sys in [sys222, sys322]: + result = (sys.__rtruediv__(sys)).minreal() + expected = StateSpace([], [], [], np.eye(2), dt=0) + assert_tf_close_coeff( + ss2tf(expected).minreal(), + ss2tf(result).minreal(), + ) + # Divide TF by SS + result = sys.__rtruediv__(TransferFunction.s) + expected = TransferFunction.s / sys + assert_tf_close_coeff( + expected.minreal(), + result.minreal(), + ) + # Divide array by SS + sys = tf2ss(TransferFunction([1, 2], [2, 1])) + result = sys.__rtruediv__(np.eye(2)) + expected = TransferFunction([2, 1], [1, 2]) * np.eye(2) + assert_tf_close_coeff( + expected.minreal(), + ss2tf(result).minreal(), + ) + @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.""" @@ -364,8 +689,6 @@ def test_call(self, dt, omega, resp): with pytest.raises(AttributeError): sys.evalfr(omega) - - @slycotonly def test_freq_resp(self): """Evaluate the frequency response at multiple frequencies.""" @@ -392,7 +715,7 @@ def test_freq_resp(self): np.testing.assert_almost_equal(omega, true_omega) # Deprecated version of the call (should return warning) - with pytest.warns(DeprecationWarning, match="will be removed"): + with pytest.warns(FutureWarning, match="will be removed"): mag, phase, omega = sys.freqresp(true_omega) np.testing.assert_almost_equal(mag, true_mag) @@ -463,28 +786,59 @@ def test_append_tf(self): np.testing.assert_array_almost_equal(sys3c.A[:3, 3:], np.zeros((3, 2))) np.testing.assert_array_almost_equal(sys3c.A[3:, :3], np.zeros((2, 3))) - def test_array_access_ss(self): - + def test_array_access_ss_failure(self): 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']) + with pytest.raises(IOError): + sys1[0] - sys1_01 = sys1[0, 1] - np.testing.assert_array_almost_equal(sys1_01.A, - sys1.A) - np.testing.assert_array_almost_equal(sys1_01.B, - sys1.B[:, 1:2]) - np.testing.assert_array_almost_equal(sys1_01.C, - sys1.C[0:1, :]) - np.testing.assert_array_almost_equal(sys1_01.D, - sys1.D[0, 1]) + @pytest.mark.parametrize( + "outdx, inpdx", + [(0, 1), + (slice(0, 1, 1), 1), + (0, slice(1, 2, 1)), + (slice(0, 1, 1), slice(1, 2, 1)), + (slice(None, None, -1), 1), + (0, slice(None, None, -1)), + (slice(None, 2, None), 1), + (slice(None, None, 1), slice(None, None, 2)), + (0, slice(1, 2, 1)), + (slice(0, 1, 1), slice(1, 2, 1)), + # ([0, 1], [0]), # lists of indices + ]) + @pytest.mark.parametrize("named", [False, True]) + def test_array_access_ss(self, outdx, inpdx, named): + sys1 = StateSpace( + [[1., 2.], [3., 4.]], + [[5., 6.], [7., 8.]], + [[9., 10.], [11., 12.]], + [[13., 14.], [15., 16.]], 1, + inputs=['u0', 'u1'], outputs=['y0', 'y1']) + + if named: + # Use names instead of numbers (and re-convert in statesp) + outnames = sys1.output_labels[outdx] + inpnames = sys1.input_labels[inpdx] + sys1_01 = sys1[outnames, inpnames] + else: + sys1_01 = sys1[outdx, inpdx] + + # Convert int to slice to ensure that numpy doesn't drop the dimension + if isinstance(outdx, int): outdx = slice(outdx, outdx+1, 1) + if isinstance(inpdx, int): inpdx = slice(inpdx, inpdx+1, 1) + + np.testing.assert_array_almost_equal(sys1_01.A, sys1.A) + np.testing.assert_array_almost_equal(sys1_01.B, sys1.B[:, inpdx]) + np.testing.assert_array_almost_equal(sys1_01.C, sys1.C[outdx, :]) + np.testing.assert_array_almost_equal(sys1_01.D, sys1.D[outdx, inpdx]) assert sys1.dt == sys1_01.dt - assert sys1_01.input_labels == ['u1'] - assert sys1_01.output_labels == ['y0'] + assert sys1_01.input_labels == sys1.input_labels[inpdx] + assert sys1_01.output_labels == sys1.output_labels[outdx] assert sys1_01.name == sys1.name + "$indexed" def test_dc_gain_cont(self): @@ -703,19 +1057,24 @@ def test_lft(self): def test_repr(self, sys322): """Test string representation""" - ref322 = "\n".join(["StateSpace(array([[-3., 4., 2.],", - " [-1., -3., 0.],", - " [ 2., 5., 3.]]), array([[ 1., 4.],", - " [-3., -3.],", - " [-2., 1.]]), array([[ 4., 2., -3.],", - " [ 1., 4., 3.]]), array([[-2., 4.],", - " [ 0., 1.]]){dt})"]) - assert repr(sys322) == ref322.format(dt='') + ref322 = """StateSpace( +array([[-3., 4., 2.], + [-1., -3., 0.], + [ 2., 5., 3.]]), +array([[ 1., 4.], + [-3., -3.], + [-2., 1.]]), +array([[ 4., 2., -3.], + [ 1., 4., 3.]]), +array([[-2., 4.], + [ 0., 1.]]), +name='sys322'{dt}, states=3, outputs=2, inputs=2)""" + assert ct.iosys_repr(sys322, format='eval') == ref322.format(dt='') sysd = StateSpace(sys322.A, sys322.B, sys322.C, sys322.D, 0.4) - assert repr(sysd), ref322.format(dt=" == 0.4") + assert ct.iosys_repr(sysd, format='eval'), ref322.format(dt=",\ndt=0.4") array = np.array # noqa - sysd2 = eval(repr(sysd)) + sysd2 = eval(ct.iosys_repr(sysd, format='eval')) np.testing.assert_allclose(sysd.A, sysd2.A) np.testing.assert_allclose(sysd.B, sysd2.B) np.testing.assert_allclose(sysd.C, sysd2.C) @@ -724,31 +1083,31 @@ def test_repr(self, sys322): def test_str(self, sys322): """Test that printing the system works""" tsys = sys322 - 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" - "B = [[ 1. 4.]\n" - " [-3. -3.]\n" - " [-2. 1.]]\n" - "\n" - "C = [[ 4. 2. -3.]\n" - " [ 1. 4. 3.]]\n" - "\n" - "D = [[-2. 4.]\n" - " [ 0. 1.]]\n") - assert str(tsys) == tref + tref = """: sys322 +Inputs (2): ['u[0]', 'u[1]'] +Outputs (2): ['y[0]', 'y[1]'] +States (3): ['x[0]', 'x[1]', 'x[2]']{dt} + +A = [[-3. 4. 2.] + [-1. -3. 0.] + [ 2. 5. 3.]] + +B = [[ 1. 4.] + [-3. -3.] + [-2. 1.]] + +C = [[ 4. 2. -3.] + [ 1. 4. 3.]] + +D = [[-2. 4.] + [ 0. 1.]]""" + assert str(tsys) == tref.format(dt='') tsysdtunspec = StateSpace( tsys.A, tsys.B, tsys.C, tsys.D, True, name=tsys.name) - assert str(tsysdtunspec) == tref + "\ndt = True\n" + assert str(tsysdtunspec) == tref.format(dt="\ndt = True") sysdt1 = StateSpace( tsys.A, tsys.B, tsys.C, tsys.D, 1., name=tsys.name) - assert str(sysdt1) == tref + "\ndt = {}\n".format(1.) + assert str(sysdt1) == tref.format(dt="\ndt = 1.0") def test_pole_static(self): """Regression: poles() of static gain is empty array.""" @@ -1017,7 +1376,7 @@ def test_statespace_defaults(self): "{} is {} but expected {}".format(k, defaults[k], v) -# test data for test_latex_repr below +# test data for test_html_repr below LTX_G1 = ([[np.pi, 1e100], [-1.23456789, 5e-23]], [[0], [1]], [[987654321, 0.001234]], @@ -1029,23 +1388,23 @@ def test_statespace_defaults(self): [[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': "<StateSpace sys: ['u[0]'] -> ['y[0]']{dt}>\n$$\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': "<StateSpace sys: ['u[0]'] -> ['y[0]']{dt}>\n$$\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': "<StateSpace sys: ['u[0]'] -> ['y[0]']{dt}>\n$$\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': "<StateSpace sys: ['u[0]'] -> ['y[0]']{dt}>\n$$\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': "<StateSpace sys: ['u[0]', 'u[1]'] -> ['y[0]', 'y[1]']{dt}>\n$$\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': "<StateSpace sys: ['u[0]', 'u[1]'] -> ['y[0]', 'y[1]']{dt}>\n$$\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': "<StateSpace sys: ['u[0]', 'u[1]'] -> ['y[0]', 'y[1]']{dt}>\n$$\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': "<StateSpace sys: ['u[0]', 'u[1]'] -> ['y[0]', 'y[1]']{dt}>\n$$\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'} @@ -1056,19 +1415,19 @@ def test_statespace_defaults(self): (LTX_G2, LTX_G2_REF)]) @pytest.mark.parametrize("dt, dtref", [(0, ""), - (None, ""), - (True, r"~,~dt=~\mathrm{{True}}"), - (0.1, r"~,~dt={dt:{fmt}}")]) + (None, ", dt=None"), + (True, ", dt=True"), + (0.1, ", dt={dt:{fmt}}")]) @pytest.mark.parametrize("repr_type", [None, "partitioned", "separate"]) @pytest.mark.parametrize("num_format", [None, ".3g", ".5g"]) -def test_latex_repr(gmats, ref, dt, dtref, repr_type, num_format, editsdefaults): - """Test `._latex_repr_` with different config values +def test_html_repr(gmats, ref, dt, dtref, repr_type, num_format, editsdefaults): + """Test `._html_repr_` with different config values This is a 'gold image' test, so if you change behaviour, you'll need to regenerate the reference results. Try something like: control.reset_defaults() - print(f'p3_p : {g1._repr_latex_()!r}') + print(f'p3_p : {g1._repr_html_()!r}') """ from control import set_defaults if num_format is not None: @@ -1077,11 +1436,12 @@ def test_latex_repr(gmats, ref, dt, dtref, repr_type, num_format, editsdefaults) if repr_type is not None: set_defaults('statesp', latex_repr_type=repr_type) - g = StateSpace(*(gmats+(dt,))) + g = StateSpace(*(gmats + (dt,)), name='sys') refkey = "{}_{}".format(refkey_n[num_format], refkey_r[repr_type]) - dt_latex = dtref.format(dt=dt, fmt=defaults['statesp.latex_num_format']) - ref_latex = ref[refkey][:-3] + dt_latex + ref[refkey][-3:] - assert g._repr_latex_() == ref_latex + dt_html = dtref.format(dt=dt, fmt=defaults['statesp.latex_num_format']) + ref_html = ref[refkey].format(dt=dt_html) + assert g._repr_html_() == ref_html + assert g._repr_html_() == g._repr_markdown_() @pytest.mark.parametrize( @@ -1104,8 +1464,8 @@ def test_xferfcn_ndarray_precedence(op, tf, arr): assert isinstance(result, ct.StateSpace) -def test_latex_repr_testsize(editsdefaults): - # _repr_latex_ returns None when size > maxsize +def test_html_repr_testsize(editsdefaults): + # _repr_html_ returns None when size > maxsize from control import set_defaults maxsize = defaults['statesp.latex_maxsize'] @@ -1117,23 +1477,23 @@ def test_latex_repr_testsize(editsdefaults): assert ninputs > 0 g = rss(nstates, ninputs, noutputs) - assert isinstance(g._repr_latex_(), str) + assert isinstance(g._repr_html_(), str) set_defaults('statesp', latex_maxsize=maxsize - 1) - assert g._repr_latex_() is None + assert g._repr_html_() is None set_defaults('statesp', latex_maxsize=-1) - assert g._repr_latex_() is None + assert g._repr_html_() is None gstatic = ss([], [], [], 1) - assert gstatic._repr_latex_() is None + assert gstatic._repr_html_() is None class TestLinfnorm: # these are simple tests; we assume ab13dd is correct # python-control specific behaviour is: - # - checking for continuous- and discrete-time - # - scaling fpeak for discrete-time + # - checking for continuous and discrete time + # - scaling fpeak for discrete time # - handling static gains # the underdamped gpeak and fpeak are found from @@ -1155,6 +1515,7 @@ def dt_siso(self, request): return ct.c2d(systype(*sysargs), dt), refgpeak, reffpeak @slycotonly + @pytest.mark.usefixtures('ignore_future_warning') def test_linfnorm_ct_siso(self, ct_siso): sys, refgpeak, reffpeak = ct_siso gpeak, fpeak = linfnorm(sys) @@ -1162,6 +1523,7 @@ def test_linfnorm_ct_siso(self, ct_siso): np.testing.assert_allclose(fpeak, reffpeak) @slycotonly + @pytest.mark.usefixtures('ignore_future_warning') def test_linfnorm_dt_siso(self, dt_siso): sys, refgpeak, reffpeak = dt_siso gpeak, fpeak = linfnorm(sys) @@ -1170,6 +1532,7 @@ def test_linfnorm_dt_siso(self, dt_siso): np.testing.assert_allclose(fpeak, reffpeak) @slycotonly + @pytest.mark.usefixtures('ignore_future_warning') def test_linfnorm_ct_mimo(self, ct_siso): siso, refgpeak, reffpeak = ct_siso sys = ct.append(siso, siso) @@ -1249,3 +1612,46 @@ def test_tf2ss_mimo(): else: with pytest.raises(ct.ControlMIMONotImplemented): sys_ss = ct.ss(sys_tf) + +def test_convenience_aliases(): + sys = ct.StateSpace(1, 1, 1, 1) + + # Make sure the functions can be used as member function: i.e. they + # support an instance of StateSpace as the first argument and that + # they at least return the correct type + assert isinstance(sys.to_ss(), StateSpace) + assert isinstance(sys.to_tf(), TransferFunction) + assert isinstance(sys.bode_plot(), ct.ControlPlot) + assert isinstance(sys.nyquist_plot(), ct.ControlPlot) + assert isinstance(sys.nichols_plot(), ct.ControlPlot) + assert isinstance(sys.forced_response([0, 1], [1, 1]), + (ct.TimeResponseData, ct.TimeResponseList)) + assert isinstance(sys.impulse_response(), + (ct.TimeResponseData, ct.TimeResponseList)) + assert isinstance(sys.step_response(), + (ct.TimeResponseData, ct.TimeResponseList)) + assert isinstance(sys.initial_response(X0=1), + (ct.TimeResponseData, ct.TimeResponseList)) + + # Make sure that unrecognized keywords for response functions are caught + for method in [LTI.impulse_response, LTI.initial_response, + LTI.step_response]: + with pytest.raises(TypeError, match="unrecognized keyword"): + method(sys, unknown=True) + with pytest.raises(TypeError, match="unrecognized keyword"): + LTI.forced_response(sys, [0, 1], [1, 1], unknown=True) + + +# Test LinearICSystem __call__ +def test_linearic_call(): + import cmath + + sys1 = ct.rss(2, 1, 1, strictly_proper=True, name='sys1') + sys2 = ct.rss(2, 1, 1, strictly_proper=True, name='sys2') + + sys_ic = ct.interconnect( + [sys1, sys2], connections=['sys1.u', 'sys2.y'], + inplist='sys2.u', outlist='sys1.y') + + for s in [0, 1, 1j]: + assert cmath.isclose(sys_ic(s), (sys1 * sys2)(s)) diff --git a/control/tests/stochsys_test.py b/control/tests/stochsys_test.py index 8b846d4a0..6fc87461b 100644 --- a/control/tests/stochsys_test.py +++ b/control/tests/stochsys_test.py @@ -6,7 +6,7 @@ import control as ct import control.optimal as opt -from control import lqe, dlqe, rss, drss, tf, ss, ControlArgument, slycot_check +from control import lqe, dlqe, rss, tf, ControlArgument, slycot_check from math import log, pi # Utility function to check LQE answer @@ -88,7 +88,7 @@ def test_DLQE(method): check_DLQE(L, P, poles, G, QN, RN) def test_lqe_discrete(): - """Test overloading of lqe operator for discrete time systems""" + """Test overloading of lqe operator for discrete-time systems""" csys = ct.rss(2, 1, 1) dsys = ct.drss(2, 1, 1) Q = np.eye(1) @@ -101,7 +101,7 @@ def test_lqe_discrete(): 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() + # 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) @@ -116,7 +116,7 @@ def test_lqe_discrete(): 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 + # 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) @@ -225,26 +225,25 @@ def test_estimator_iosys_ctime(sys_args): 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(TypeError, match="unrecognized keyword"): - estim = ct.create_estimator_iosystem(sys, QN, RN, unknown=True) + 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) + ct.create_estimator_iosystem(sys_tf, 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) + ct.create_estimator_iosystem(sys, QN, RN, C=C) with pytest.raises(ValueError, match="output is the wrong size"): sys_fs = ct.drss(4, 4, 2, strictly_proper=True) sys_fs.C = np.eye(4) C = np.eye(1, 4) - estim = ct.create_estimator_iosystem(sys_fs, QN, RN, C=C) + ct.create_estimator_iosystem(sys_fs, QN, RN, C=C) def test_white_noise(): @@ -404,6 +403,10 @@ def test_oep(dt): np.testing.assert_allclose( est3.states[:, -1], res3.states[:, -1], atol=meas_mag, rtol=meas_mag) + # Make sure unknown keywords generate an error + with pytest.raises(TypeError, match="unrecognized keyword"): + est3 = oep1.compute_estimate(Y3, U, unknown=True) + @pytest.mark.slow def test_mhe(): @@ -426,7 +429,6 @@ def test_mhe(): 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) @@ -478,7 +480,6 @@ def test_indices(ctrl_indices, dist_indices): 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 # Generate a system response with no disturbances diff --git a/control/tests/sysnorm_test.py b/control/tests/sysnorm_test.py index 68edad230..4b4c6c0e4 100644 --- a/control/tests/sysnorm_test.py +++ b/control/tests/sysnorm_test.py @@ -14,11 +14,11 @@ def test_norm_1st_order_stable_system(): """First-order stable continuous-time system""" s = ct.tf('s') - + G1 = 1/(s+1) assert np.allclose(ct.norm(G1, p='inf'), 1.0) # Comparison to norm computed in MATLAB assert np.allclose(ct.norm(G1, p=2), 0.707106781186547) # Comparison to norm computed in MATLAB - + Gd1 = ct.sample_system(G1, 0.1) assert np.allclose(ct.norm(Gd1, p='inf'), 1.0) # Comparison to norm computed in MATLAB assert np.allclose(ct.norm(Gd1, p=2), 0.223513699524858) # Comparison to norm computed in MATLAB @@ -27,12 +27,12 @@ def test_norm_1st_order_stable_system(): def test_norm_1st_order_unstable_system(): """First-order unstable continuous-time system""" s = ct.tf('s') - + G2 = 1/(1-s) assert np.allclose(ct.norm(G2, p='inf'), 1.0) # Comparison to norm computed in MATLAB with pytest.warns(UserWarning, match="System is unstable!"): assert ct.norm(G2, p=2) == float('inf') # Comparison to norm computed in MATLAB - + Gd2 = ct.sample_system(G2, 0.1) assert np.allclose(ct.norm(Gd2, p='inf'), 1.0) # Comparison to norm computed in MATLAB with pytest.warns(UserWarning, match="System is unstable!"): @@ -41,13 +41,13 @@ def test_norm_1st_order_unstable_system(): def test_norm_2nd_order_system_imag_poles(): """Second-order continuous-time system with poles on imaginary axis""" s = ct.tf('s') - + G3 = 1/(s**2+1) with pytest.warns(UserWarning, match="Poles close to, or on, the imaginary axis."): assert ct.norm(G3, p='inf') == float('inf') # Comparison to norm computed in MATLAB with pytest.warns(UserWarning, match="Poles close to, or on, the imaginary axis."): assert ct.norm(G3, p=2) == float('inf') # Comparison to norm computed in MATLAB - + Gd3 = ct.sample_system(G3, 0.1) with pytest.warns(UserWarning, match="Poles close to, or on, the complex unit circle."): assert ct.norm(Gd3, p='inf') == float('inf') # Comparison to norm computed in MATLAB @@ -68,7 +68,7 @@ def test_norm_3rd_order_mimo_system(): G4 = ct.ss(A,B,C,D) # Random system generated in MATLAB assert np.allclose(ct.norm(G4, p='inf'), 4.276759162964244) # Comparison to norm computed in MATLAB assert np.allclose(ct.norm(G4, p=2), 2.237461821810309) # Comparison to norm computed in MATLAB - + Gd4 = ct.sample_system(G4, 0.1) assert np.allclose(ct.norm(Gd4, p='inf'), 4.276759162964228) # Comparison to norm computed in MATLAB assert np.allclose(ct.norm(Gd4, p=2), 0.707434962289554) # Comparison to norm computed in MATLAB diff --git a/control/tests/timebase_test.py b/control/tests/timebase_test.py index a391d2fe7..c416d3fee 100644 --- a/control/tests/timebase_test.py +++ b/control/tests/timebase_test.py @@ -3,18 +3,36 @@ import numpy as np import control as ct +# Utility function to convert state space system to nlsys +def ss2io(sys): + return ct.nlsys( + sys.updfcn, sys.outfcn, states=sys.nstates, + inputs=sys.ninputs, outputs=sys.noutputs, dt=sys.dt) + @pytest.mark.parametrize( "dt1, dt2, dt3", [ (0, 0, 0), (0, 0.1, ValueError), (0, None, 0), + (0, 'float', 0), + (0, 'array', 0), + (None, 'array', None), + (None, 'array', None), (0, True, ValueError), (0.1, 0, ValueError), (0.1, 0.1, 0.1), (0.1, None, 0.1), (0.1, True, 0.1), + (0.1, 'array', 0.1), + (0.1, 'float', 0.1), (None, 0, 0), + ('float', 0, 0), + ('array', 0, 0), + ('float', None, None), + ('array', None, None), (None, 0.1, 0.1), + ('array', 0.1, 0.1), + ('float', 0.1, 0.1), (None, None, None), (None, True, True), (True, 0, ValueError), @@ -25,16 +43,28 @@ (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]) +@pytest.mark.parametrize("type", [ct.StateSpace, ct.ss, ct.tf, ss2io]) 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) + Karray = np.array([[1]]) + kfloat = 1 - # Convert to the desired form - sys1 = type(sys1) - sys2 = type(sys2) + # Define the system + if isinstance(dt1, (int, float)) or dt1 is None: + sys1 = ct.StateSpace(A, B, C, D, dt1) + sys1 = type(sys1) + elif dt1 == 'array': + sys1 = Karray + elif dt1 == 'float': + sys1 = kfloat + + if isinstance(dt2, (int, float)) or dt2 is None: + sys2 = ct.StateSpace(A, B, C, D, dt2) + sys2 = type(sys2) + elif dt2 == 'array': + sys2 = Karray + elif dt2 == 'float': + sys2 = kfloat if inspect.isclass(dt3) and issubclass(dt3, Exception): with pytest.raises(dt3, match="incompatible timebases"): @@ -67,3 +97,34 @@ def test_composition_override(dt): with pytest.raises(ValueError, match="incompatible timebases"): sys3 = ct.interconnect( [sys1, sys2], inputs='u1', outputs='y2', dt=dt) + + +# Make sure all system creation functions treat timebases uniformly +@pytest.mark.parametrize( + "fcn, args", [ + (ct.ss, [-1, 1, 1, 1]), + (ct.tf, [[1, 2], [3, 4, 5]]), + (ct.zpk, [[-1], [-2, -3], 1]), + (ct.frd, [[1, 1, 1], [1, 2, 3]]), + (ct.nlsys, [lambda t, x, u, params: -x, None]), + ]) +@pytest.mark.parametrize( + "kwargs, expected", [ + ({}, 0), + ({'dt': 0}, 0), + ({'dt': 0.1}, 0.1), + ({'dt': True}, True), + ({'dt': None}, None), + ]) +def test_default(fcn, args, kwargs, expected): + sys = fcn(*args, **kwargs) + assert sys.dt == expected + + # Some commands allow dt via extra argument + if fcn in [ct.ss, ct.tf, ct.zpk, ct.frd] and kwargs.get('dt'): + sys = fcn(*args, kwargs['dt']) + assert sys.dt == expected + + # Make sure an error is generated if dt is redundant + with pytest.warns(UserWarning, match="received multiple dt"): + sys = fcn(*args, kwargs['dt'], **kwargs) diff --git a/control/tests/timeplot_test.py b/control/tests/timeplot_test.py index 7cdde5c54..888ff9080 100644 --- a/control/tests/timeplot_test.py +++ b/control/tests/timeplot_test.py @@ -1,12 +1,12 @@ # timeplot_test.py - test out time response plots # RMM, 23 Jun 2023 -import pytest -import control as ct import matplotlib as mpl import matplotlib.pyplot as plt import numpy as np +import pytest +import control as ct from control.tests.conftest import slycotonly # Detailed test of (almost) all functionality @@ -67,6 +67,7 @@ True, True, False, False, False, False), ]) +@pytest.mark.usefixtures('mplcleanup') def test_response_plots( fcn, sys, pltinp, pltout, cmbsig, cmbtrc, trpose, secsys, clear=True): @@ -122,22 +123,22 @@ def test_response_plots( pltinp is False or response.ninputs == 0 or pltinp is None and response.plot_inputs is False): with pytest.raises(ValueError, match=".* no data to plot"): - out = response.plot(**kwargs) + cplt = response.plot(**kwargs) return None elif not pltout and pltinp == 'overlay': with pytest.raises(ValueError, match="can't overlay inputs"): - out = response.plot(**kwargs) + cplt = response.plot(**kwargs) return None elif pltinp in [True, 'overlay'] and response.ninputs == 0: with pytest.raises(ValueError, match=".* but no inputs"): - out = response.plot(**kwargs) + cplt = response.plot(**kwargs) return None - out = response.plot(**kwargs) + cplt = response.plot(**kwargs) # Make sure all of the outputs are of the right type nlines_plotted = 0 - for ax_lines in np.nditer(out, flags=["refs_ok"]): + for ax_lines in np.nditer(cplt.lines, flags=["refs_ok"]): for line in ax_lines.item(): assert isinstance(line, mpl.lines.Line2D) nlines_plotted += 1 @@ -178,7 +179,7 @@ def test_response_plots( assert len(ax.get_lines()) > 1 # Update the title so we can see what is going on - fig = out[0, 0][0].axes.figure + fig = cplt.figure fig.suptitle( fig._suptitle._text + f" [{sys.noutputs}x{sys.ninputs}, cs={cmbsig}, " @@ -190,47 +191,46 @@ def test_response_plots( plt.clf() +@pytest.mark.usefixtures('mplcleanup') def test_axes_setup(): - get_plot_axes = ct.timeplot.get_plot_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_plot_axes(out1), get_plot_axes(out2)) + cplt1 = ct.step_response(sys_2x3).plot() + cplt2 = ct.step_response(sys_2x3b).plot() + np.testing.assert_equal(cplt1.axes, cplt2.axes) plt.close() # Two plots of same net size leaves axes unchanged (unfortunately) - out1 = ct.step_response(sys_2x3).plot() - out2 = ct.step_response(sys_3x2).plot() + cplt1 = ct.step_response(sys_2x3).plot() + cplt2 = ct.step_response(sys_3x2).plot() np.testing.assert_equal( - get_plot_axes(out1).reshape(-1), get_plot_axes(out2).reshape(-1)) + cplt1.axes.reshape(-1), cplt2.axes.reshape(-1)) plt.close() # Plots of different shapes generate new plots - out1 = ct.step_response(sys_2x3).plot() - out2 = ct.step_response(sys_3x1).plot() - ax1_list = get_plot_axes(out1).reshape(-1).tolist() - ax2_list = get_plot_axes(out2).reshape(-1).tolist() + cplt1 = ct.step_response(sys_2x3).plot() + cplt2 = ct.step_response(sys_3x1).plot() + ax1_list = cplt1.axes.reshape(-1).tolist() + ax2_list = cplt2.axes.reshape(-1).tolist() for ax in ax1_list: assert ax not in ax2_list plt.close() # Passing a list of axes preserves those axes - out1 = ct.step_response(sys_2x3).plot() - out2 = ct.step_response(sys_3x1).plot() - out3 = ct.step_response(sys_2x3b).plot(ax=get_plot_axes(out1)) - np.testing.assert_equal(get_plot_axes(out1), get_plot_axes(out3)) + cplt1 = ct.step_response(sys_2x3).plot() + cplt2 = ct.step_response(sys_3x1).plot() + cplt3 = ct.step_response(sys_2x3b).plot(ax=cplt1.axes) + np.testing.assert_equal(cplt1.axes, cplt3.axes) plt.close() # Sending an axes array of the wrong size raises exception with pytest.raises(ValueError, match="not the right shape"): - out = ct.step_response(sys_2x3).plot() - ct.step_response(sys_3x1).plot(ax=get_plot_axes(out)) + cplt = ct.step_response(sys_2x3).plot() + ct.step_response(sys_3x1).plot(ax=cplt.axes) sys_2x3 = ct.rss(4, 2, 3) sys_2x3b = ct.rss(4, 2, 3) sys_3x2 = ct.rss(4, 3, 2) @@ -238,6 +238,7 @@ def test_axes_setup(): @slycotonly +@pytest.mark.usefixtures('mplcleanup') def test_legend_map(): sys_mimo = ct.tf2ss( [[[1], [0.1]], [[0.2], [1]]], @@ -250,11 +251,12 @@ def test_legend_map(): title='MIMO step response with custom legend placement') +@pytest.mark.usefixtures('mplcleanup') def test_combine_time_responses(): sys_mimo = ct.rss(4, 2, 2) timepts = np.linspace(0, 10, 100) - # Combine two response with ntrace = 0 + # Combine two responses with ntrace = 0 U = np.vstack([np.sin(timepts), np.cos(2*timepts)]) resp1 = ct.input_output_response(sys_mimo, timepts, U) @@ -289,6 +291,7 @@ def test_combine_time_responses(): combresp4 = ct.combine_time_responses( [resp1, resp2, resp3], trace_labels=labels) assert combresp4.trace_labels == labels + assert combresp4.trace_types == [None, None, 'step', 'step'] # Automatically generated trace label names and types resp5 = ct.step_response(sys_mimo, timepts) @@ -298,41 +301,97 @@ def test_combine_time_responses(): combresp5 = ct.combine_time_responses([resp1, resp5]) assert combresp5.trace_labels == [resp1.title] + \ ["test, trace 0", "test, trace 1"] - assert combresp4.trace_types == [None, None, 'step', 'step'] + assert combresp5.trace_types == [None, None, None] + + # ntraces = 0 with trace_types != None + # https://github.com/python-control/python-control/issues/1025 + resp6 = ct.forced_response(sys_mimo, timepts, U) + combresp6 = ct.combine_time_responses([resp1, resp6]) + assert combresp6.trace_types == [None, 'forced'] with pytest.raises(ValueError, match="must have the same number"): resp = ct.step_response(ct.rss(4, 2, 3), timepts) - combresp = ct.combine_time_responses([resp1, resp]) + ct.combine_time_responses([resp1, resp]) with pytest.raises(ValueError, match="trace labels does not match"): - combresp = ct.combine_time_responses( + 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_time_responses([resp1, resp]) + ct.combine_time_responses([resp1, resp]) + + +@pytest.mark.parametrize("resp_fcn", [ + ct.step_response, ct.initial_response, ct.impulse_response, + ct.forced_response, ct.input_output_response]) +@pytest.mark.usefixtures('mplcleanup') +def test_list_responses(resp_fcn): + sys1 = ct.rss(2, 2, 2, strictly_proper=True) + sys2 = ct.rss(2, 2, 2, strictly_proper=True) + + # Figure out the expected shape of the system + match resp_fcn: + case ct.step_response | ct.impulse_response: + shape = (2, 2) + kwargs = {} + case ct.initial_response: + shape = (2, 1) + kwargs = {} + case ct.forced_response | ct.input_output_response: + shape = (4, 1) # outputs and inputs both plotted + T = np.linspace(0, 10) + U = [np.sin(T), np.cos(T)] + kwargs = {'T': T, 'U': U} + + resp1 = resp_fcn(sys1, **kwargs) + resp2 = resp_fcn(sys2, **kwargs) + + # Sequential plotting results in colors rotating + plt.figure() + cplt1 = resp1.plot() + cplt2 = resp2.plot() + assert cplt1.shape == shape # legacy access (OK here) + assert cplt2.shape == shape # legacy access (OK here) + for row in range(2): # just look at the outputs + for col in range(shape[1]): + assert cplt1.lines[row, col][0].get_color() == 'tab:blue' + assert cplt2.lines[row, col][0].get_color() == 'tab:orange' + + plt.figure() + resp_combined = resp_fcn([sys1, sys2], **kwargs) + assert isinstance(resp_combined, ct.timeresp.TimeResponseList) + assert resp_combined[0].time[-1] == max(resp1.time[-1], resp2.time[-1]) + assert resp_combined[1].time[-1] == max(resp1.time[-1], resp2.time[-1]) + cplt = resp_combined.plot() + assert cplt.lines.shape == shape + for row in range(2): # just look at the outputs + for col in range(shape[1]): + assert cplt.lines[row, col][0].get_color() == 'tab:blue' + assert cplt.lines[row, col][1].get_color() == 'tab:orange' @slycotonly +@pytest.mark.usefixtures('mplcleanup') 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"]): + cplt = ct.step_response(sys_mimo).plot('k--', plot_inputs=True) + for ax in np.nditer(cplt.lines, flags=["refs_ok"]): for line in ax.item(): assert line.get_color() == 'k' assert line.get_linestyle() == '--' - out = ct.step_response(sys_mimo).plot( + cplt = ct.step_response(sys_mimo).plot( plot_inputs='overlay', overlay_signals=True, overlay_traces=True, output_props=[{'color': c} for c in ['blue', 'orange']], input_props=[{'color': c} for c in ['red', 'green']], trace_props=[{'linestyle': s} for s in ['-', '--']]) - assert out.shape == (1, 1) - lines = out[0, 0] + assert cplt.lines.shape == (1, 1) + lines = cplt.lines[0, 0] assert lines[0].get_color() == 'blue' and lines[0].get_linestyle() == '-' assert lines[1].get_color() == 'orange' and lines[1].get_linestyle() == '-' assert lines[2].get_color() == 'red' and lines[2].get_linestyle() == '-' @@ -343,32 +402,111 @@ def test_linestyles(): 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 +@pytest.mark.parametrize("resp_fcn", [ + ct.step_response, ct.initial_response, ct.impulse_response, + ct.forced_response, ct.input_output_response]) +@pytest.mark.usefixtures('editsdefaults', 'mplcleanup') +def test_timeplot_trace_labels(resp_fcn): + plt.close('all') + sys1 = ct.rss(2, 2, 2, strictly_proper=True, name='sys1') + sys2 = ct.rss(2, 2, 2, strictly_proper=True, name='sys2') + + # Figure out the expected shape of the system + match resp_fcn: + case ct.step_response | ct.impulse_response: + kwargs = {} + case ct.initial_response: + kwargs = {} + case ct.forced_response | ct.input_output_response: + T = np.linspace(0, 10) + U = [np.sin(T), np.cos(T)] + kwargs = {'T': T, 'U': U} + + # Use figure frame for suptitle to speed things up + ct.set_defaults('freqplot', title_frame='figure') + + # Make sure default labels are as expected + cplt = resp_fcn([sys1, sys2], **kwargs).plot() + axs = cplt.axes + if axs.ndim == 1: + legend = axs[0].get_legend().get_texts() + else: + legend = axs[0, -1].get_legend().get_texts() + assert legend[0].get_text() == 'sys1' + assert legend[1].get_text() == 'sys2' + plt.close() + + # Override labels all at once + cplt = resp_fcn([sys1, sys2], **kwargs).plot(label=['line1', 'line2']) + axs = cplt.axes + if axs.ndim == 1: + legend = axs[0].get_legend().get_texts() + else: + legend = axs[0, -1].get_legend().get_texts() + assert legend[0].get_text() == 'line1' + assert legend[1].get_text() == 'line2' + plt.close() + # Override labels one at a time + cplt = resp_fcn(sys1, **kwargs).plot(label='line1') + cplt = resp_fcn(sys2, **kwargs).plot(label='line2') + axs = cplt.axes + if axs.ndim == 1: + legend = axs[0].get_legend().get_texts() + else: + legend = axs[0, -1].get_legend().get_texts() + assert legend[0].get_text() == 'line1' + assert legend[1].get_text() == 'line2' + plt.close() + + +@pytest.mark.usefixtures('mplcleanup') +def test_full_label_override(): + sys1 = ct.rss(2, 2, 2, strictly_proper=True, name='sys1') + sys2 = ct.rss(2, 2, 2, strictly_proper=True, name='sys2') + + labels_2d = np.array([ + ["outsys1u1y1", "outsys1u1y2", "outsys1u2y1", "outsys1u2y2", + "outsys2u1y1", "outsys2u1y2", "outsys2u2y1", "outsys2u2y2"], + ["inpsys1u1y1", "inpsys1u1y2", "inpsys1u2y1", "inpsys1u2y2", + "inpsys2u1y1", "inpsys2u1y2", "inpsys2u2y1", "inpsys2u2y2"]]) + + + labels_4d = np.empty((2, 2, 2, 2), dtype=object) + for i, sys in enumerate(['sys1', 'sys2']): + for j, trace in enumerate(['u1', 'u2']): + for k, out in enumerate(['y1', 'y2']): + labels_4d[i, j, k, 0] = "out" + sys + trace + out + labels_4d[i, j, k, 1] = "inp" + sys + trace + out + + # Test 4D labels + cplt = ct.step_response([sys1, sys2]).plot( + overlay_signals=True, overlay_traces=True, plot_inputs=True, + label=labels_4d) + axs = cplt.axes + assert axs.shape == (2, 1) + legend_text = axs[0, 0].get_legend().get_texts() + for i, label in enumerate(labels_2d[0]): + assert legend_text[i].get_text() == label + legend_text = axs[1, 0].get_legend().get_texts() + for i, label in enumerate(labels_2d[1]): + assert legend_text[i].get_text() == label + + # Test 2D labels + cplt = ct.step_response([sys1, sys2]).plot( + overlay_signals=True, overlay_traces=True, plot_inputs=True, + label=labels_2d) + axs = cplt.axes + assert axs.shape == (2, 1) + legend_text = axs[0, 0].get_legend().get_texts() + for i, label in enumerate(labels_2d[0]): + assert legend_text[i].get_text() == label + legend_text = axs[1, 0].get_legend().get_texts() + for i, label in enumerate(labels_2d[1]): + assert legend_text[i].get_text() == label + + +@pytest.mark.usefixtures('mplcleanup') def test_relabel(): sys1 = ct.rss(2, inputs='u', outputs='y') sys2 = ct.rss(1, 1, 1) # uses default i/o labels @@ -377,8 +515,8 @@ def test_relabel(): ct.step_response(sys1).plot() # Generate a new plot, which overwrites labels - out = ct.step_response(sys2).plot() - ax = ct.get_plot_axes(out) + cplt = ct.step_response(sys2).plot() + ax = cplt.axes assert ax[0, 0].get_ylabel() == 'y[0]' # Regenerate the first plot @@ -386,9 +524,9 @@ def test_relabel(): ct.step_response(sys1).plot() # Generate a new plt, without relabeling - out = ct.step_response(sys2).plot(relabel=False) - ax = ct.get_plot_axes(out) - assert ax[0, 0].get_ylabel() == 'y' + with pytest.warns(FutureWarning, match="deprecated"): + cplt = ct.step_response(sys2).plot(relabel=False) + assert cplt.axes[0, 0].get_ylabel() == 'y' def test_errors(): @@ -408,8 +546,47 @@ def test_errors(): for kw in ['input_props', 'output_props', 'trace_props']: propkw = {kw: {'color': 'green'}} with pytest.warns(UserWarning, match="ignored since fmt string"): - out = stepresp.plot('k-', **propkw) - assert out[0, 0][0].get_color() == 'k' + cplt = stepresp.plot('k-', **propkw) + assert cplt.lines[0, 0][0].get_color() == 'k' + + # Make sure TimeResponseLists also work + stepresp = ct.step_response([sys, sys]) + with pytest.raises(AttributeError, + match="(has no property|unexpected keyword)"): + stepresp.plot(unknown=None) + + +def test_legend_customization(): + sys = ct.rss(4, 2, 1, name='sys') + timepts = np.linspace(0, 10) + U = np.sin(timepts) + resp = ct.input_output_response(sys, timepts, U) + + # Generic input/output plot + cplt = resp.plot(overlay_signals=True) + axs = cplt.axes + assert axs[0, 0].get_legend()._loc == 7 # center right + assert len(axs[0, 0].get_legend().get_texts()) == 2 + assert axs[1, 0].get_legend() == None + plt.close() + + # Hide legend + cplt = resp.plot(overlay_signals=True, show_legend=False) + axs = cplt.axes + assert axs[0, 0].get_legend() == None + assert axs[1, 0].get_legend() == None + plt.close() + + # Put legend in both axes + cplt = resp.plot( + overlay_signals=True, legend_map=[['center left'], ['center right']]) + axs = cplt.axes + assert axs[0, 0].get_legend()._loc == 6 # center left + assert len(axs[0, 0].get_legend().get_texts()) == 2 + assert axs[1, 0].get_legend()._loc == 7 # center right + assert len(axs[1, 0].get_legend().get_texts()) == 1 + plt.close() + if __name__ == "__main__": # @@ -503,9 +680,34 @@ def test_errors(): plt.savefig('timeplot-mimo_ioresp-mt_tr.png') plt.figure() - 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 ['-', '--']]) + cplt = ct.step_response(sys_mimo).plot( + plot_inputs='overlay', overlay_signals=True, overlay_traces=True, + output_props=[{'color': c} for c in ['blue', 'orange']], + input_props=[{'color': c} for c in ['red', 'green']], + trace_props=[{'linestyle': s} for s in ['-', '--']]) plt.savefig('timeplot-mimo_step-linestyle.png') + + sys1 = ct.rss(4, 2, 2) + sys2 = ct.rss(4, 2, 2) + resp_list = ct.step_response([sys1, sys2]) + + fig = plt.figure() + cplt = ct.combine_time_responses( + [ct.step_response(sys1, resp_list[0].time), + ct.step_response(sys2, resp_list[1].time)] + ).plot(overlay_traces=True) + cplt.set_plot_title("[Combine] " + fig._suptitle._text) + + fig = plt.figure() + ct.step_response(sys1).plot() + cplt = ct.step_response(sys2).plot() + cplt.set_plot_title("[Sequential] " + fig._suptitle._text) + + fig = plt.figure() + ct.step_response(sys1).plot(color='b') + cplt = ct.step_response(sys2).plot(color='r') + cplt.set_plot_title("[Seq w/color] " + fig._suptitle._text) + + fig = plt.figure() + cplt = ct.step_response([sys1, sys2]).plot() + cplt.set_plot_title("[List] " + fig._suptitle._text) diff --git a/control/tests/timeresp_test.py b/control/tests/timeresp_test.py index fb21180b3..8bbd27d73 100644 --- a/control/tests/timeresp_test.py +++ b/control/tests/timeresp_test.py @@ -1,18 +1,18 @@ """timeresp_test.py - test time response functions""" from copy import copy +from math import isclose import numpy as np import pytest -import scipy as sp import control as ct from control import StateSpace, TransferFunction, c2d, isctime, ss2tf, tf2ss -from control.exception import slycot_check, pandas_check +from control.exception import pandas_check, slycot_check from control.tests.conftest import slycotonly -from control.timeresp import (_default_time_vector, _ideal_tfinal_and_dt, - forced_response, impulse_response, - initial_response, step_info, step_response) +from control.timeresp import _default_time_vector, _ideal_tfinal_and_dt, \ + forced_response, impulse_response, initial_response, step_info, \ + step_response class TSys: @@ -67,7 +67,7 @@ def tsystem(self, request): siso_tf2 = copy(siso_ss1) siso_tf2.sys = ss2tf(siso_ss1.sys) - """MIMO system, contains ``siso_ss1`` twice""" + """MIMO system, contains `siso_ss1` twice""" mimo_ss1 = copy(siso_ss1) A = np.zeros((4, 4)) A[:2, :2] = siso_ss1.sys.A @@ -83,7 +83,7 @@ def tsystem(self, request): D[1:, 1:] = siso_ss1.sys.D mimo_ss1.sys = StateSpace(A, B, C, D) - """MIMO system, contains ``siso_ss2`` twice""" + """MIMO system, contains `siso_ss2` twice""" mimo_ss2 = copy(siso_ss2) A = np.zeros((4, 4)) A[:2, :2] = siso_ss2.sys.A @@ -173,15 +173,15 @@ def tsystem(self, request): # System Type 1 - Step response not stationary: G(s)=1/s(s+1) siso_tf_type1 = TSys(TransferFunction(1, [1, 1, 0])) siso_tf_type1.step_info = { - 'RiseTime': np.NaN, - 'SettlingTime': np.NaN, - 'SettlingMin': np.NaN, - 'SettlingMax': np.NaN, - 'Overshoot': np.NaN, - 'Undershoot': np.NaN, - 'Peak': np.Inf, - 'PeakTime': np.Inf, - 'SteadyStateValue': np.NaN} + 'RiseTime': np.nan, + 'SettlingTime': np.nan, + 'SettlingMin': np.nan, + 'SettlingMax': np.nan, + 'Overshoot': np.nan, + 'Undershoot': np.nan, + 'Peak': np.inf, + 'PeakTime': np.inf, + 'SteadyStateValue': np.nan} # SISO under shoot response and positive final value # G(s)=(-s+1)/(s²+s+1) @@ -335,15 +335,20 @@ def test_step_response_siso(self, tsystem, kwargs): @pytest.mark.parametrize("tsystem", ["mimo_ss1"], indirect=True) def test_step_response_mimo(self, tsystem): - """Test MIMO system, which contains ``siso_ss1`` twice.""" + """Test MIMO system, which contains `siso_ss1` twice.""" sys = tsystem.sys t = tsystem.t yref = tsystem.ystep _t, y_00 = step_response(sys, T=t, input=0, output=0) - _t, y_11 = step_response(sys, T=t, input=1, output=1) np.testing.assert_array_almost_equal(y_00, yref, decimal=4) + + _t, y_11 = step_response(sys, T=t, input=1, output=1) np.testing.assert_array_almost_equal(y_11, yref, decimal=4) + _t, y_01 = step_response( + sys, T=t, input_indices=[0], output_indices=[1]) + np.testing.assert_array_almost_equal(y_01, 0 * 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) @@ -353,11 +358,16 @@ def test_step_response_mimo(self, tsystem): np.testing.assert_allclose(response.u[0, 1, :], 0) np.testing.assert_allclose(response.u[1, 1, :], 1) + # Index lists not yet implemented + with pytest.raises(NotImplementedError, match="list of .* indices"): + step_response( + sys, timepts=t, input_indices=[0, 1], output_indices=[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.""" sysc = tsystem.sys - sysd = c2d(sysc, 1) # discrete time system + sysd = c2d(sysc, 1) # discrete-time system Tvec = np.linspace(0, 10, 11) # make sure to use integer times 0..10 Tc, youtc = step_response(sysc, Tvec, input=0) Td, youtd = step_response(sysd, Tvec, input=0) @@ -519,17 +529,27 @@ def test_impulse_response_mimo(self, tsystem): yref = tsystem.yimpulse _t, y_00 = impulse_response(sys, T=t, input=0, output=0) np.testing.assert_array_almost_equal(y_00, yref, decimal=4) + _t, y_11 = impulse_response(sys, T=t, input=1, output=1) np.testing.assert_array_almost_equal(y_11, yref, decimal=4) + _t, y_01 = impulse_response( + sys, T=t, input_indices=[0], output_indices=[1]) + np.testing.assert_array_almost_equal(y_01, 0 * yref, decimal=4) + yref_notrim = np.zeros((2, len(t))) yref_notrim[:1, :] = yref _t, yy = impulse_response(sys, T=t, input=0) np.testing.assert_array_almost_equal(yy[:,0,:], yref_notrim, decimal=4) + # Index lists not yet implemented + with pytest.raises(NotImplementedError, match="list of .* indices"): + impulse_response( + sys, timepts=t, input_indices=[0, 1], output_indices=[1]) + @pytest.mark.parametrize("tsystem", ["siso_tf1"], indirect=True) def test_discrete_time_impulse(self, tsystem): - # discrete time impulse sampled version should match cont time + # discrete-time impulse sampled version should match cont time dt = 0.1 t = np.arange(0, 3, dt) sys = tsystem.sys @@ -537,6 +557,32 @@ def test_discrete_time_impulse(self, tsystem): np.testing.assert_array_almost_equal(impulse_response(sys, t)[1], impulse_response(sysdt, t)[1]) + def test_discrete_time_impulse_input(self): + # discrete-time impulse input, Only one active input for each trace + A = [[.5, 0.25],[.0, .5]] + B = [[1., 0,],[0., 1.]] + C = [[1., 0.],[0., 1.]] + D = [[0., 0.],[0., 0.]] + dt = True + sysd = ct.ss(A,B,C,D, dt=dt) + response = ct.impulse_response(sysd,T=dt*3) + + Uexpected = np.zeros((2,2,4), dtype=float).astype(object) + Uexpected[0,0,0] = 1./dt + Uexpected[1,1,0] = 1./dt + + np.testing.assert_array_equal(response.inputs,Uexpected) + + dt = 0.5 + sysd = ct.ss(A,B,C,D, dt=dt) + response = ct.impulse_response(sysd,T=dt*3) + + Uexpected = np.zeros((2,2,4), dtype=float).astype(object) + Uexpected[0,0,0] = 1./dt + Uexpected[1,1,0] = 1./dt + + np.testing.assert_array_equal(response.inputs,Uexpected) + @pytest.mark.parametrize("tsystem", ["siso_ss1"], indirect=True) def test_impulse_response_warnD(self, tsystem): """Test warning about direct feedthrough""" @@ -707,10 +753,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="Parameter ``U``: Wrong shape"): + 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="Parameter ``U``: Wrong shape"): + 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"): @@ -1151,7 +1197,6 @@ def test_squeeze_0_8_4(self, nstate, nout, ninp, squeeze, shape): # Generate system, time, and input vectors sys = ct.rss(nstate, nout, ninp, strictly_proper=True) tvec = np.linspace(0, 1, 8) - uvec =np.ones((sys.ninputs, 1)) @ np.reshape(np.sin(tvec), (1, 8)) _, yvec = ct.initial_response(sys, tvec, 1, squeeze=squeeze) assert yvec.shape == shape @@ -1220,13 +1265,14 @@ def test_to_pandas(): np.testing.assert_equal(df['x[1]'], resp.states[1]) # Change the time points - sys = ct.rss(2, 1, 1) + sys = ct.rss(2, 1, 2) T = np.linspace(0, timepts[-1]/2, timepts.size * 2) - resp = ct.input_output_response(sys, timepts, np.sin(timepts), t_eval=T) + resp = ct.input_output_response( + sys, timepts, [np.sin(timepts), 0], t_eval=T) df = resp.to_pandas() np.testing.assert_equal(df['time'], resp.time) - np.testing.assert_equal(df['u[0]'], resp.inputs) - np.testing.assert_equal(df['y[0]'], resp.outputs) + np.testing.assert_equal(df['u[0]'], resp.inputs[0]) + np.testing.assert_equal(df['y[0]'], resp.outputs[0]) np.testing.assert_equal(df['x[0]'], resp.states[0]) np.testing.assert_equal(df['x[1]'], resp.states[1]) @@ -1238,6 +1284,33 @@ def test_to_pandas(): np.testing.assert_equal(df['u[0]'], resp.inputs) np.testing.assert_equal(df['y[0]'], resp.inputs * 5) + # Multi-trace data + # https://github.com/python-control/python-control/issues/1087 + model = ct.rss( + states=['x0', 'x1'], outputs=['y0', 'y1'], + inputs=['u0', 'u1'], name='My Model') + T = np.linspace(0, 10, 100, endpoint=False) + X0 = np.zeros(model.nstates) + + res = ct.step_response(model, T=T, X0=X0, input=0) # extract single trace + df = res.to_pandas() + np.testing.assert_equal( + df[df['trace'] == 'From u0']['time'], res.time) + np.testing.assert_equal( + df[df['trace'] == 'From u0']['u0'], res.inputs['u0', 0]) + np.testing.assert_equal( + df[df['trace'] == 'From u0']['y1'], res.outputs['y1', 0]) + + res = ct.step_response(model, T=T, X0=X0) # all traces + df = res.to_pandas() + for i, label in enumerate(res.trace_labels): + np.testing.assert_equal( + df[df['trace'] == label]['time'], res.time) + np.testing.assert_equal( + df[df['trace'] == label]['u1'], res.inputs['u1', i]) + np.testing.assert_equal( + df[df['trace'] == label]['y0'], res.outputs['y0', i]) + @pytest.mark.skipif(pandas_check(), reason="pandas installed") def test_no_pandas(): @@ -1248,4 +1321,146 @@ def test_no_pandas(): # Convert to pandas with pytest.raises(ImportError, match="pandas"): - df = resp.to_pandas() + resp.to_pandas() + + +# https://github.com/python-control/python-control/issues/1014 +def test_step_info_nonstep(): + # Pass a constant input + timepts = np.linspace(0, 10, endpoint=False) + y_const = np.ones_like(timepts) + + # Constant value of 1 + step_info = ct.step_info(y_const, timepts) + assert step_info['RiseTime'] == 0 + assert step_info['SettlingTime'] == 0 + assert step_info['SettlingMin'] == 1 + assert step_info['SettlingMax'] == 1 + assert step_info['Overshoot'] == 0 + assert step_info['Undershoot'] == 0 + assert step_info['Peak'] == 1 + assert step_info['PeakTime'] == 0 + assert step_info['SteadyStateValue'] == 1 + + # Constant value of -1 + step_info = ct.step_info(-y_const, timepts) + assert step_info['RiseTime'] == 0 + assert step_info['SettlingTime'] == 0 + assert step_info['SettlingMin'] == -1 + assert step_info['SettlingMax'] == -1 + assert step_info['Overshoot'] == 0 + assert step_info['Undershoot'] == 0 + assert step_info['Peak'] == 1 + assert step_info['PeakTime'] == 0 + assert step_info['SteadyStateValue'] == -1 + + # Ramp from -1 to 1 + step_info = ct.step_info(-1 + 2 * timepts/10, timepts) + assert step_info['RiseTime'] == 3.8 + assert step_info['SettlingTime'] == 9.8 + assert isclose(step_info['SettlingMin'], 0.88) + assert isclose(step_info['SettlingMax'], 0.96) + assert step_info['Overshoot'] == 0 + assert step_info['Peak'] == 1 + assert step_info['PeakTime'] == 0 + assert isclose(step_info['SteadyStateValue'], 0.96) + + +def test_signal_labels(): + # Create a system response for a SISO system + sys = ct.rss(4, 1, 1) + response = ct.step_response(sys) + + # Make sure access via strings works + np.testing.assert_equal(response.states['x[2]'], response.states[2]) + + # Make sure access via lists of strings works + np.testing.assert_equal( + response.states[['x[1]', 'x[2]']], response.states[[1, 2]]) + + # Make sure errors are generated if key is unknown + with pytest.raises(ValueError, match="unknown signal name 'bad'"): + response.inputs['bad'] + + with pytest.raises(ValueError, match="unknown signal name 'bad'"): + response.states[['x[1]', 'bad']] + + # Create a system response for a MIMO system + sys = ct.rss(4, 2, 2) + response = ct.step_response(sys) + + # Make sure access via strings works + np.testing.assert_equal( + response.outputs['y[0]', 'u[1]'], + response.outputs[0, 1]) + np.testing.assert_equal( + response.states['x[2]', 'u[0]'], response.states[2, 0]) + + # Make sure access via lists of strings works + np.testing.assert_equal( + response.states[['x[1]', 'x[2]'], 'u[0]'], + response.states[[1, 2], 0]) + + np.testing.assert_equal( + response.outputs[['y[1]'], ['u[1]', 'u[0]']], + response.outputs[[1], [1, 0]]) + + # Make sure errors are generated if key is unknown + with pytest.raises(ValueError, match="unknown signal name 'bad'"): + response.inputs['bad'] + + with pytest.raises(ValueError, match="unknown signal name 'bad'"): + response.states[['x[1]', 'bad']] + + with pytest.raises(ValueError, match=r"unknown signal name 'x\[2\]'"): + response.states['x[1]', 'x[2]'] # second index = input name + + +def test_timeresp_aliases(): + sys = ct.rss(2, 1, 1) + timepts = np.linspace(0, 10, 10) + resp_long = ct.input_output_response(sys, timepts, 1, initial_state=[1, 1]) + + # Positional usage + resp_posn = ct.input_output_response(sys, timepts, 1, [1, 1]) + np.testing.assert_allclose(resp_long.states, resp_posn.states) + + # Aliases + resp_short = ct.input_output_response(sys, timepts, 1, X0=[1, 1]) + np.testing.assert_allclose(resp_long.states, resp_short.states) + + # Legacy + with pytest.warns(PendingDeprecationWarning, match="legacy"): + resp_legacy = ct.input_output_response(sys, timepts, 1, x0=[1, 1]) + np.testing.assert_allclose(resp_long.states, resp_legacy.states) + + # Check for multiple values: full keyword and alias + with pytest.raises(TypeError, match="multiple"): + ct.input_output_response( + sys, timepts, 1, initial_state=[1, 2], X0=[1, 1]) + + # Check for multiple values: positional and keyword + with pytest.raises(TypeError, match="multiple"): + ct.input_output_response( + sys, timepts, 1, [1, 2], initial_state=[1, 1]) + + # Check for multiple values: positional and alias + with pytest.raises(TypeError, match="multiple"): + ct.input_output_response( + sys, timepts, 1, [1, 2], X0=[1, 1]) + + # Make sure that LTI functions check for keywords + with pytest.raises(TypeError, match="unrecognized keyword"): + ct.forced_response(sys, timepts, 1, unknown=True) + + with pytest.raises(TypeError, match="unrecognized keyword"): + ct.impulse_response(sys, timepts, unknown=True) + + with pytest.raises(TypeError, match="unrecognized keyword"): + ct.initial_response(sys, timepts, [1, 2], unknown=True) + + with pytest.raises(TypeError, match="unrecognized keyword"): + ct.step_response(sys, timepts, unknown=True) + + with pytest.raises(TypeError, match="unrecognized keyword"): + ct.step_info(sys, timepts, unknown=True) diff --git a/control/tests/trdata_test.py b/control/tests/trdata_test.py index 7d0c20e7a..b84369d72 100644 --- a/control/tests/trdata_test.py +++ b/control/tests/trdata_test.py @@ -214,7 +214,7 @@ def test_response_copy(): # Unknown keyword with pytest.raises(TypeError, match="unrecognized keywords"): - response_bad_kw = response_mimo(input=0) + response_mimo(input=0) def test_trdata_labels(): diff --git a/control/tests/type_conversion_test.py b/control/tests/type_conversion_test.py index ad8dea911..efd1a66a8 100644 --- a/control/tests/type_conversion_test.py +++ b/control/tests/type_conversion_test.py @@ -57,7 +57,7 @@ def sys_dict(): ('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 ios arr flt ('sub', 'ss', ['ss', 'ss', 'frd', 'ios', 'ss', 'ss' ]), ('sub', 'tf', ['tf', 'tf', 'frd', 'ios', 'tf', 'tf' ]), @@ -65,7 +65,7 @@ def sys_dict(): ('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 ios arr flt ('mul', 'ss', ['ss', 'ss', 'frd', 'ios', 'ss', 'ss' ]), ('mul', 'tf', ['tf', 'tf', 'frd', 'ios', 'tf', 'tf' ]), @@ -73,7 +73,7 @@ def sys_dict(): ('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 ios arr flt ('truediv', 'ss', ['E', 'tf', 'frd', 'E', 'ss', 'ss' ]), ('truediv', 'tf', ['tf', 'tf', 'xrd', 'E', 'tf', 'tf' ]), @@ -88,7 +88,7 @@ def sys_dict(): for rtype, expected in zip(rtype_list, expected_list): # Add this to the list of tests to run test_matrix.append([opname, ltype, rtype, expected]) - + @pytest.mark.parametrize("opname, ltype, rtype, expected", test_matrix) def test_operator_type_conversion(opname, ltype, rtype, expected, sys_dict): op = getattr(operator, opname) @@ -98,7 +98,7 @@ def test_operator_type_conversion(opname, ltype, rtype, expected, sys_dict): # 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 @@ -107,7 +107,7 @@ def test_operator_type_conversion(opname, ltype, rtype, expected, sys_dict): else: # Operation should work and return the given type result = op(leftsys, rightsys) - + # Print out what we are testing in case something goes wrong assert isinstance(result, type_dict[expected]) @@ -126,7 +126,7 @@ def test_operator_type_conversion(opname, ltype, rtype, expected, sys_dict): # # * For IOS/LTI, convert to IOS. In the case of a linear I/O system (LIO), # this will preserve the linear structure since the LTI system will -# be converted to state space. +# be converted to state space. # # * When combining state space or transfer with linear I/O systems, the # * output should be of type Linear IO system, since that maintains the diff --git a/control/tests/xferfcn_input_test.py b/control/tests/xferfcn_input_test.py index 46efbd257..c375d768a 100644 --- a/control/tests/xferfcn_input_test.py +++ b/control/tests/xferfcn_input_test.py @@ -64,15 +64,18 @@ def test_clean_part(num, fun, dtype): num_ = _clean_part(numa) ref_ = np.array(num, dtype=float, ndmin=3) - assert isinstance(num_, list) - assert np.all([isinstance(part, list) for part in num_]) + assert isinstance(num_, np.ndarray) + assert num_.ndim == 2 for i, numi in enumerate(num_): assert len(numi) == ref_.shape[1] for j, numj in enumerate(numi): np.testing.assert_allclose(numj, ref_[i, j, ...]) -@pytest.mark.parametrize("badinput", [[[0., 1.], [2., 3.]], "a"]) +@pytest.mark.parametrize("badinput", [ + # [[0., 1.], [2., 3.]], # OK: treated as static array + np.ones((2, 2, 2, 2)), + "a"]) def test_clean_part_bad_input(badinput): """Give the part cleaner invalid input type.""" with pytest.raises(TypeError): diff --git a/control/tests/xferfcn_test.py b/control/tests/xferfcn_test.py index cb5b38cba..d3db08ef6 100644 --- a/control/tests/xferfcn_test.py +++ b/control/tests/xferfcn_test.py @@ -14,7 +14,7 @@ isdtime, reset_defaults, rss, sample_system, set_defaults, ss, ss2tf, tf, tf2ss, zpk) from control.statesp import _convert_to_statespace -from control.tests.conftest import slycotonly +from control.tests.conftest import assert_tf_close_coeff, slycotonly from control.xferfcn import _convert_to_transfer_function @@ -30,13 +30,6 @@ class TestXferFcn: def test_constructor_bad_input_type(self): """Give the constructor invalid input types.""" - # MIMO requires lists of lists of vectors (not lists of vectors) - with pytest.raises(TypeError): - TransferFunction([[0., 1.], [2., 3.]], [[5., 2.], [3., 0.]]) - # good input - TransferFunction([[[0., 1.], [2., 3.]]], - [[[5., 2.], [3., 0.]]]) - # Single argument of the wrong type with pytest.raises(TypeError): TransferFunction([1]) @@ -56,6 +49,10 @@ def test_constructor_bad_input_type(self): [[4, 5], [6, 7]]], [[[6, 7], [4, 5]], [[2, 3]]]) + + with pytest.raises(TypeError, match="unsupported data type"): + ct.tf([1j], [1, 2, 3]) + # good input TransferFunction([[[0, 1], [2, 3]], [[4, 5], [6, 7]]], @@ -113,9 +110,28 @@ def test_constructor_double_dt(self): def test_add_inconsistent_dimension(self): """Add two transfer function matrices of different sizes.""" - sys1 = TransferFunction([[[1., 2.]]], [[[4., 5.]]]) - sys2 = TransferFunction([[[4., 3.]], [[1., 2.]]], - [[[1., 6.]], [[2., 4.]]]) + sys1 = TransferFunction( + [ + [[1., 2.]], + [[2., -2.]], + [[2., 1.]], + ], + [ + [[4., 5.]], + [[5., 2.]], + [[3., 2.]], + ], + ) + sys2 = TransferFunction( + [ + [[4., 3.]], + [[1., 2.]], + ], + [ + [[1., 6.]], + [[2., 4.]], + ] + ) with pytest.raises(ValueError): sys1.__add__(sys2) with pytest.raises(ValueError): @@ -174,7 +190,6 @@ def test_reverse_sign_siso(self): np.testing.assert_allclose(sys2.num, [[[-1., -3., -5.]]]) np.testing.assert_allclose(sys2.den, [[[1., 6., 2., -1.]]]) - @slycotonly def test_reverse_sign_mimo(self): """Negate a MIMO system.""" num1 = [[[1., 2.], [0., 3.], [2., -1.]], @@ -190,8 +205,10 @@ def test_reverse_sign_mimo(self): for i in range(sys3.noutputs): for j in range(sys3.ninputs): - np.testing.assert_allclose(sys2.num[i][j], sys3.num[i][j]) - np.testing.assert_allclose(sys2.den[i][j], sys3.den[i][j]) + np.testing.assert_allclose( + sys2.num_array[i, j], sys3.num_array[i, j]) + np.testing.assert_allclose( + sys2.den_array[i, j], sys3.den_array[i, j]) # Tests for TransferFunction.__add__ @@ -214,7 +231,6 @@ def test_add_siso(self): np.testing.assert_allclose(sys3.num, [[[20., 4., -8]]]) np.testing.assert_allclose(sys3.den, [[[1., 6., 1., -7., -2., 1.]]]) - @slycotonly def test_add_mimo(self): """Add two MIMO systems.""" num1 = [[[1., 2.], [0., 3.], [2., -1.]], @@ -236,8 +252,8 @@ def test_add_mimo(self): for i in range(sys3.noutputs): for j in range(sys3.ninputs): - np.testing.assert_allclose(sys3.num[i][j], num3[i][j]) - np.testing.assert_allclose(sys3.den[i][j], den3[i][j]) + np.testing.assert_allclose(sys3.num_array[i, j], num3[i][j]) + np.testing.assert_allclose(sys3.den_array[i, j], den3[i][j]) # Tests for TransferFunction.__sub__ @@ -262,7 +278,6 @@ def test_subtract_siso(self): np.testing.assert_allclose(sys4.num, [[[-2., -6., 12., 10., 2.]]]) np.testing.assert_allclose(sys4.den, [[[1., 6., 1., -7., -2., 1.]]]) - @slycotonly def test_subtract_mimo(self): """Subtract two MIMO systems.""" num1 = [[[1., 2.], [0., 3.], [2., -1.]], @@ -284,8 +299,8 @@ def test_subtract_mimo(self): for i in range(sys3.noutputs): for j in range(sys3.ninputs): - np.testing.assert_allclose(sys3.num[i][j], num3[i][j]) - np.testing.assert_allclose(sys3.den[i][j], den3[i][j]) + np.testing.assert_allclose(sys3.num_array[i, j], num3[i][j]) + np.testing.assert_allclose(sys3.den_array[i, j], den3[i][j]) # Tests for TransferFunction.__mul__ @@ -313,7 +328,6 @@ def test_multiply_siso(self): np.testing.assert_allclose(sys3.num, sys4.num) np.testing.assert_allclose(sys3.den, sys4.den) - @slycotonly def test_multiply_mimo(self): """Multiply two MIMO systems.""" num1 = [[[1., 2.], [0., 3.], [2., -1.]], @@ -340,8 +354,8 @@ def test_multiply_mimo(self): for i in range(sys3.noutputs): for j in range(sys3.ninputs): - np.testing.assert_allclose(sys3.num[i][j], num3[i][j]) - np.testing.assert_allclose(sys3.den[i][j], den3[i][j]) + np.testing.assert_allclose(sys3.num_array[i, j], num3[i][j]) + np.testing.assert_allclose(sys3.den_array[i, j], den3[i][j]) # Tests for TransferFunction.__div__ @@ -390,19 +404,253 @@ def test_pow(self): with pytest.raises(ValueError): TransferFunction.__pow__(sys1, 0.5) - def test_slice(self): + def test_add_sub_mimo_siso(self): + for op in [ + TransferFunction.__add__, + TransferFunction.__radd__, + TransferFunction.__sub__, + TransferFunction.__rsub__, + ]: + tf_mimo = TransferFunction( + [ + [[1], [1]], + [[1], [1]], + ], + [ + [[10, 1], [20, 1]], + [[20, 1], [30, 1]], + ], + ) + tf_siso = TransferFunction([1], [5, 0]) + tf_arr = ct.split_tf(tf_mimo) + expected = ct.combine_tf([ + [op(tf_arr[0, 0], tf_siso), op(tf_arr[0, 1], tf_siso)], + [op(tf_arr[1, 0], tf_siso), op(tf_arr[1, 1], tf_siso)], + ]) + result = op(tf_mimo, tf_siso) + assert_tf_close_coeff(expected.minreal(), result.minreal()) + + @pytest.mark.parametrize( + "left, right, expected", + [ + ( + TransferFunction([2], [1, 0]), + TransferFunction( + [ + [[2], [1]], + [[-1], [4]], + ], + [ + [[10, 1], [20, 1]], + [[20, 1], [30, 1]], + ], + ), + TransferFunction( + [ + [[4], [2]], + [[-2], [8]], + ], + [ + [[10, 1, 0], [20, 1, 0]], + [[20, 1, 0], [30, 1, 0]], + ], + ), + ), + ( + TransferFunction( + [ + [[2], [1]], + [[-1], [4]], + ], + [ + [[10, 1], [20, 1]], + [[20, 1], [30, 1]], + ], + ), + TransferFunction([2], [1, 0]), + TransferFunction( + [ + [[4], [2]], + [[-2], [8]], + ], + [ + [[10, 1, 0], [20, 1, 0]], + [[20, 1, 0], [30, 1, 0]], + ], + ), + ), + ( + TransferFunction([2], [1, 0]), + np.eye(3), + TransferFunction( + [ + [[2], [0], [0]], + [[0], [2], [0]], + [[0], [0], [2]], + ], + [ + [[1, 0], [1], [1]], + [[1], [1, 0], [1]], + [[1], [1], [1, 0]], + ], + ), + ), + ] + ) + def test_mul_mimo_siso(self, left, right, expected): + """Test multiplication of a MIMO and a SISO system.""" + result = left.__mul__(right) + assert_tf_close_coeff(expected.minreal(), result.minreal()) + + @pytest.mark.parametrize( + "left, right, expected", + [ + ( + TransferFunction([2], [1, 0]), + TransferFunction( + [ + [[2], [1]], + [[-1], [4]], + ], + [ + [[10, 1], [20, 1]], + [[20, 1], [30, 1]], + ], + ), + TransferFunction( + [ + [[4], [2]], + [[-2], [8]], + ], + [ + [[10, 1, 0], [20, 1, 0]], + [[20, 1, 0], [30, 1, 0]], + ], + ), + ), + ( + TransferFunction( + [ + [[2], [1]], + [[-1], [4]], + ], + [ + [[10, 1], [20, 1]], + [[20, 1], [30, 1]], + ], + ), + TransferFunction([2], [1, 0]), + TransferFunction( + [ + [[4], [2]], + [[-2], [8]], + ], + [ + [[10, 1, 0], [20, 1, 0]], + [[20, 1, 0], [30, 1, 0]], + ], + ), + ), + ( + np.eye(3), + TransferFunction([2], [1, 0]), + TransferFunction( + [ + [[2], [0], [0]], + [[0], [2], [0]], + [[0], [0], [2]], + ], + [ + [[1, 0], [1], [1]], + [[1], [1, 0], [1]], + [[1], [1], [1, 0]], + ], + ), + ), + ] + ) + def test_rmul_mimo_siso(self, left, right, expected): + """Test right multiplication of a MIMO and a SISO system.""" + result = right.__rmul__(left) + assert_tf_close_coeff(expected.minreal(), result.minreal()) + + @pytest.mark.parametrize( + "left, right, expected", + [ + ( + TransferFunction( + [ + [[1], [0], [0]], + [[0], [2], [0]], + [[0], [0], [3]], + ], + [ + [[1], [1], [1]], + [[1], [1], [1]], + [[1], [1], [1]], + ], + ), + TransferFunction([-2], [1, 0]), + TransferFunction( + [ + [[1, 0], [0], [0]], + [[0], [2, 0], [0]], + [[0], [0], [3, 0]], + ], + [ + [[-2], [1], [1]], + [[1], [-2], [1]], + [[1], [1], [-2]], + ], + ), + ), + ] + ) + def test_truediv_mimo_siso(self, left, right, expected): + """Test true division of a MIMO and a SISO system.""" + result = left.__truediv__(right) + assert_tf_close_coeff(expected.minreal(), result.minreal()) + + @pytest.mark.parametrize( + "left, right, expected", + [ + ( + np.eye(3), + TransferFunction([2], [1, 0]), + TransferFunction( + [ + [[1, 0], [0], [0]], + [[0], [1, 0], [0]], + [[0], [0], [1, 0]], + ], + [ + [[2], [1], [1]], + [[1], [2], [1]], + [[1], [1], [2]], + ], + ), + ), + ] + ) + def test_rtruediv_mimo_siso(self, left, right, expected): + """Test right true division of a MIMO and a SISO system.""" + result = right.__rtruediv__(left) + assert_tf_close_coeff(expected.minreal(), result.minreal()) + + @pytest.mark.parametrize("named", [False, True]) + def test_slice(self, named): sys = TransferFunction( [ [ [1], [2], [3]], [ [3], [4], [5]] ], [ [[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:] + sys1 = sys[1:, 1:] if not named else sys['y1', ['u1', 'u2']] 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] + sys2 = sys[:2, :2] if not named else sys[['y0', 'y1'], ['u0', 'u1']] assert (sys2.ninputs, sys2.noutputs) == (2, 2) assert sys2.input_labels == ['u0', 'u1'] assert sys2.output_labels == ['y0', 'y1'] @@ -411,7 +659,7 @@ def test_slice(self): sys = 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:] + sys1 = sys[1:, 1:] if not named else sys[['y[1]'], ['u[1]', 'u[2]']] assert (sys1.ninputs, sys1.noutputs) == (2, 1) assert sys1.dt == 0.5 assert sys1.input_labels == ['u[1]', 'u[2]'] @@ -466,7 +714,6 @@ 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) - @slycotonly def test_call_mimo(self): """Evaluate the frequency response of a MIMO system at one frequency.""" @@ -487,7 +734,7 @@ def test_call_mimo(self): def test_freqresp_deprecated(self): sys = TransferFunction([1., 3., 5], [1., 6., 2., -1.]) # Deprecated version of the call (should generate warning) - with pytest.warns(DeprecationWarning): + with pytest.warns(FutureWarning): sys.freqresp(1.) def test_frequency_response_siso(self): @@ -507,7 +754,6 @@ def test_frequency_response_siso(self): np.testing.assert_array_almost_equal(phase, truephase) np.testing.assert_array_almost_equal(omega, trueomega) - @slycotonly def test_freqresp_mimo(self): """Evaluate the MIMO magnitude and phase at multiple frequencies.""" num = [[[1., 2.], [0., 3.], [2., -1.]], @@ -604,7 +850,6 @@ def test_common_den_nonproper(self): _, den2, _ = tf2._common_den(allow_nonproper=True) np.testing.assert_array_almost_equal(den2, common_den_ref) - @slycotonly def test_pole_mimo(self): """Test for correct MIMO poles.""" sys = TransferFunction( @@ -642,7 +887,52 @@ def test_feedback_siso(self): np.testing.assert_allclose(sys4.num, [[[-1., 7., -16., 16., 0.]]]) np.testing.assert_allclose(sys4.den, [[[1., 0., 2., -8., 8., 0.]]]) - @slycotonly + def test_append(self): + """Test ``TransferFunction.append()``.""" + tf1 = TransferFunction( + [ + [[1], [1]] + ], + [ + [[10, 1], [20, 1]] + ], + ) + tf2 = TransferFunction( + [ + [[2], [2]] + ], + [ + [[10, 1], [1, 1]] + ], + ) + tf3 = TransferFunction([100], [100, 1]) + tf_exp_1 = TransferFunction( + [ + [[1], [1], [0], [0]], + [[0], [0], [2], [2]], + ], + [ + [[10, 1], [20, 1], [1], [1]], + [[1], [1], [10, 1], [1, 1]], + ], + ) + tf_exp_2 = TransferFunction( + [ + [[1], [1], [0], [0], [0]], + [[0], [0], [2], [2], [0]], + [[0], [0], [0], [0], [100]], + ], + [ + [[10, 1], [20, 1], [1], [1], [1]], + [[1], [1], [10, 1], [1, 1], [1]], + [[1], [1], [1], [1], [100, 1]], + ], + ) + tf_appended_1 = tf1.append(tf2) + assert_tf_close_coeff(tf_exp_1, tf_appended_1) + tf_appended_2 = tf1.append(tf2).append(tf3) + assert_tf_close_coeff(tf_exp_2, tf_appended_2) + def test_convert_to_transfer_function(self): """Test for correct state space to transfer function conversion.""" A = [[1., -2.], [-3., 4.]] @@ -661,10 +951,10 @@ def test_convert_to_transfer_function(self): for i in range(sys.noutputs): for j in range(sys.ninputs): - np.testing.assert_array_almost_equal(tfsys.num[i][j], - num[i][j]) - np.testing.assert_array_almost_equal(tfsys.den[i][j], - den[i][j]) + np.testing.assert_array_almost_equal( + tfsys.num_array[i, j], num[i][j]) + np.testing.assert_array_almost_equal( + tfsys.den_array[i, j], den[i][j]) def test_minreal(self): """Try the minreal function, and also test easy entry by creation @@ -729,7 +1019,6 @@ def test_state_space_conversion_mimo(self): np.testing.assert_array_almost_equal(H.num[1][0], H2.num[1][0]) np.testing.assert_array_almost_equal(H.den[1][0], H2.den[1][0]) - @slycotonly def test_indexing(self): """Test TF scalar indexing and slice""" tm = ss2tf(rss(5, 3, 3)) @@ -881,18 +1170,18 @@ def test_printing(self): """Print SISO""" sys = ss2tf(rss(4, 1, 1)) assert isinstance(str(sys), str) - assert isinstance(sys._repr_latex_(), str) + assert isinstance(sys._repr_html_(), str) # SISO, discrete time sys = sample_system(sys, 1) assert isinstance(str(sys), str) - assert isinstance(sys._repr_latex_(), str) + assert isinstance(sys._repr_html_(), str) @pytest.mark.parametrize( "args, output", - [(([0], [1]), "\n0\n-\n1\n"), - (([1.0001], [-1.1111]), "\n 1\n------\n-1.111\n"), - (([0, 1], [0, 1.]), "\n1\n-\n1\n"), + [(([0], [1]), " 0\n -\n 1"), + (([1.0001], [-1.1111]), " 1\n ------\n -1.111"), + (([0, 1], [0, 1.]), " 1\n -\n 1"), ]) def test_printing_polynomial_const(self, args, output): """Test _tf_polynomial_to_string for constant systems""" @@ -901,82 +1190,76 @@ def test_printing_polynomial_const(self, args, output): @pytest.mark.parametrize( "args, outputfmt", [(([1, 0], [2, 1]), - "\n {var}\n-------\n2 {var} + 1\n{dtstring}"), + " {var}\n -------\n 2 {var} + 1"), (([2, 0, -1], [1, 0, 0, 1.2]), - "\n2 {var}^2 - 1\n---------\n{var}^3 + 1.2\n{dtstring}")]) + " 2 {var}^2 - 1\n ---------\n {var}^3 + 1.2")]) @pytest.mark.parametrize("var, dt, dtstring", [("s", None, ''), ("z", True, ''), - ("z", 1, '\ndt = 1\n')]) + ("z", 1, 'dt = 1')]) 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,)))).partition('\n\n')[2] == \ - outputfmt.format(var=var, dtstring=dtstring) + polystr = str(TransferFunction(*(args + (dt,)))).partition('\n\n') + if dtstring != '': + # Make sure the last line of the header has proper dt + assert polystr[0].split('\n')[3] == dtstring + else: + # Make sure there are only three header lines (sys, in, out) + assert len(polystr[0].split('\n')) == 4 + assert polystr[2] == outputfmt.format(var=var) - @slycotonly def test_printing_mimo(self): - """Print MIMO, continuous time""" + """Print MIMO, continuous-time""" sys = ss2tf(rss(4, 2, 3)) assert isinstance(str(sys), str) - assert isinstance(sys._repr_latex_(), str) + assert isinstance(sys._repr_html_(), str) @pytest.mark.parametrize( "zeros, poles, gain, output", [([0], [-1], 1, - '\n' - ' s\n' - '-----\n' - 's + 1\n'), + ' s\n' + ' -----\n' + ' s + 1'), ([-1], [-1], 1, - '\n' - 's + 1\n' - '-----\n' - 's + 1\n'), + ' s + 1\n' + ' -----\n' + ' s + 1'), ([-1], [1], 1, - '\n' - 's + 1\n' - '-----\n' - 's - 1\n'), + ' s + 1\n' + ' -----\n' + ' s - 1'), ([1], [-1], 1, - '\n' - 's - 1\n' - '-----\n' - 's + 1\n'), + ' s - 1\n' + ' -----\n' + ' s + 1'), ([-1], [-1], 2, - '\n' - '2 (s + 1)\n' - '---------\n' - ' s + 1\n'), + ' 2 (s + 1)\n' + ' ---------\n' + ' s + 1'), ([-1], [-1], 0, - '\n' - '0\n' - '-\n' - '1\n'), + ' 0\n' + ' -\n' + ' 1'), ([-1], [1j, -1j], 1, - '\n' - ' s + 1\n' - '-----------------\n' - '(s - 1j) (s + 1j)\n'), + ' s + 1\n' + ' -----------------\n' + ' (s - 1j) (s + 1j)'), ([4j, -4j], [2j, -2j], 2, - '\n' - '2 (s - 4j) (s + 4j)\n' - '-------------------\n' - ' (s - 2j) (s + 2j)\n'), + ' 2 (s - 4j) (s + 4j)\n' + ' -------------------\n' + ' (s - 2j) (s + 2j)'), ([1j, -1j], [-1, -4], 2, - '\n' - '2 (s - 1j) (s + 1j)\n' - '-------------------\n' - ' (s + 1) (s + 4)\n'), + ' 2 (s - 1j) (s + 1j)\n' + ' -------------------\n' + ' (s + 1) (s + 4)'), ([1], [-1 + 1j, -1 - 1j], 1, - '\n' - ' s - 1\n' - '-------------------------\n' - '(s + (1-1j)) (s + (1+1j))\n'), + ' s - 1\n' + ' -------------------------\n' + ' (s + (1-1j)) (s + (1+1j))'), ([1], [1 + 1j, 1 - 1j], 1, - '\n' - ' s - 1\n' - '-------------------------\n' - '(s - (1+1j)) (s - (1-1j))\n'), + ' s - 1\n' + ' -------------------------\n' + ' (s - (1+1j)) (s - (1-1j))'), ]) def test_printing_zpk(self, zeros, poles, gain, output): """Test _tf_polynomial_to_string for constant systems""" @@ -987,20 +1270,17 @@ def test_printing_zpk(self, zeros, poles, gain, 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.00\n' + ' -------------------------------------\n' + ' (s + (1.00-1.41j)) (s + (1.00+1.41j))'), ([1], [1 + 1j, 1 - 1j], 1, ".3f", - '\n' - ' 1.000\n' - '-----------------------------------------\n' - '(s + (1.000-1.414j)) (s + (1.000+1.414j))\n'), + ' 1.000\n' + ' -----------------------------------------\n' + ' (s + (1.000-1.414j)) (s + (1.000+1.414j))'), ([1], [1 + 1j, 1 - 1j], 1, ".6g", - '\n' - ' 1\n' - '-------------------------------------\n' - '(s + (1-1.41421j)) (s + (1+1.41421j))\n') + ' 1\n' + ' -------------------------------------\n' + ' (s + (1-1.41421j)) (s + (1+1.41421j))') ]) def test_printing_zpk_format(self, zeros, poles, gain, format, output): """Test _tf_polynomial_to_string for constant systems""" @@ -1016,33 +1296,36 @@ def test_printing_zpk_format(self, zeros, poles, gain, format, output): "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'))]) + ("""Input 1 to output 1: + + 11 + --------------- + (s - 2) (s - 1) + +Input 1 to output 2: + + 12 + ----------------- + (s - 1j) (s + 1j) + +Input 2 to output 1: + + 21 + --------------- + (s - 2) (s + 3) + +Input 2 to output 2: + + 22 + --------------- + (s - 5) (s + 4)"""))], + ) 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.partition('\n\n')[2] == output - @slycotonly def test_size_mismatch(self): """Test size mismacht""" sys1 = ss2tf(rss(2, 2, 2)) @@ -1065,63 +1348,79 @@ def test_size_mismatch(self): with pytest.raises(NotImplementedError): TransferFunction.feedback(sys2, sys1) - def test_latex_repr(self): + def test_html_repr(self): """Test latex printout for TransferFunction""" Hc = TransferFunction([1e-5, 2e5, 3e-4], - [1.2e34, 2.3e-4, 2.3e-45]) + [1.2e34, 2.3e-4, 2.3e-45], name='sys') Hd = TransferFunction([1e-5, 2e5, 3e-4], [1.2e34, 2.3e-4, 2.3e-45], - .1) + .1, name='sys') # TODO: make the multiplication sign configurable expmul = r'\times' - for var, H, suffix in zip(['s', 'z'], + for var, H, dtstr in zip(['s', 'z'], [Hc, Hd], - ['', r'\quad dt = 0.1']): - ref = (r'$$\frac{' + ['', ', dt=0.1']): + ref = (r"<TransferFunction sys: ['u[0]'] -> ['y[0]']" + + dtstr + r">" + "\n" + r'$$\dfrac{' r'1 ' + expmul + ' 10^{-5} ' + var + '^2 ' r'+ 2 ' + expmul + ' 10^{5} ' + var + ' + 0.0003' r'}{' r'1.2 ' + expmul + ' 10^{34} ' + var + '^2 ' r'+ 0.00023 ' + var + ' ' r'+ 2.3 ' + expmul + ' 10^{-45}' - r'}' + suffix + '$$') - assert H._repr_latex_() == ref + r'}' + '$$') + assert H._repr_html_() == ref @pytest.mark.parametrize( "Hargs, ref", [(([-1., 4.], [1., 3., 5.]), - "TransferFunction(array([-1., 4.]), array([1., 3., 5.]))"), + "TransferFunction(\n" + "array([-1., 4.]),\n" + "array([1., 3., 5.]),\n" + "outputs=1, inputs=1)"), (([2., 3., 0.], [1., -3., 4., 0], 2.0), - "TransferFunction(array([2., 3., 0.])," - " array([ 1., -3., 4., 0.]), 2.0)"), - + "TransferFunction(\n" + "array([2., 3., 0.]),\n" + "array([ 1., -3., 4., 0.]),\n" + "dt=2.0,\n" + "outputs=1, inputs=1)"), (([[[0, 1], [2, 3]], [[4, 5], [6, 7]]], [[[6, 7], [4, 5]], [[2, 3], [0, 1]]]), - "TransferFunction([[array([1]), array([2, 3])]," - " [array([4, 5]), array([6, 7])]]," - " [[array([6, 7]), array([4, 5])]," - " [array([2, 3]), array([1])]])"), + "TransferFunction(\n" + "[[array([1]), array([2, 3])],\n" + " [array([4, 5]), array([6, 7])]],\n" + "[[array([6, 7]), array([4, 5])],\n" + " [array([2, 3]), array([1])]],\n" + "outputs=2, inputs=2)"), (([[[0, 1], [2, 3]], [[4, 5], [6, 7]]], [[[6, 7], [4, 5]], [[2, 3], [0, 1]]], 0.5), - "TransferFunction([[array([1]), array([2, 3])]," - " [array([4, 5]), array([6, 7])]]," - " [[array([6, 7]), array([4, 5])]," - " [array([2, 3]), array([1])]], 0.5)") + "TransferFunction(\n" + "[[array([1]), array([2, 3])],\n" + " [array([4, 5]), array([6, 7])]],\n" + "[[array([6, 7]), array([4, 5])],\n" + " [array([2, 3]), array([1])]],\n" + "dt=0.5,\n" + "outputs=2, inputs=2)"), ]) - def test_repr(self, Hargs, ref): + def test_loadable_repr(self, Hargs, ref): """Test __repr__ printout.""" H = TransferFunction(*Hargs) - assert repr(H) == ref + rep = ct.iosys_repr(H, format='eval') + assert rep == ref # and reading back array = np.array # noqa - H2 = eval(H.__repr__()) + H2 = eval(rep) for p in range(len(H.num)): for m in range(len(H.num[0])): - 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]) + np.testing.assert_array_almost_equal( + H.num_array[p, m], H2.num_array[p, m]) + np.testing.assert_array_almost_equal( + H.den_array[p, m], H2.den_array[p, m]) assert H.dt == H2.dt def test_sample_named_signals(self): @@ -1179,8 +1478,10 @@ def test_returnScipySignalLTI(self, mimotf): sslti = mimotf.returnScipySignalLTI(strict=False) for i in range(2): for j in range(3): - np.testing.assert_allclose(sslti[i][j].num, mimotf.num[i][j]) - np.testing.assert_allclose(sslti[i][j].den, mimotf.den[i][j]) + np.testing.assert_allclose( + sslti[i][j].num, mimotf.num_array[i, j]) + np.testing.assert_allclose( + sslti[i][j].den, mimotf.den_array[i, j]) if mimotf.dt == 0: assert sslti[i][j].dt is None else: @@ -1285,3 +1586,35 @@ def test_copy_names(create, args, kwargs, convert): cpy = convert(sys, inputs='myin', outputs='myout') assert cpy.input_labels == ['myin'] assert cpy.output_labels == ['myout'] + +s = ct.TransferFunction.s +@pytest.mark.parametrize("args, num, den", [ + (('s', ), [[[1, 0]]], [[[1]]]), # ctime + (('z', ), [[[1, 0]]], [[[1]]]), # dtime + ((1, 1), [[[1]]], [[[1]]]), # scalars as scalars + (([[1]], [[1]]), [[[1]]], [[[1]]]), # scalars as lists + (([[[1, 2]]], [[[3, 4]]]), [[[1, 2]]], [[[3, 4]]]), # SISO as lists + (([[np.array([1, 2])]], [[np.array([3, 4])]]), # SISO as arrays + [[[1, 2]]], [[[3, 4]]]), + (([[ [1], [2] ], [[1, 1], [1, 0] ]], # MIMO + [[ [1, 0], [1, 0] ], [[1, 2], [1] ]]), + [[ [1], [2] ], [[1, 1], [1, 0] ]], + [[ [1, 0], [1, 0] ], [[1, 2], [1] ]]), + (([[[1, 2], [3, 4]]], [[[5, 6]]]), # common denominator + [[[1, 2], [3, 4]]], [[[5, 6], [5, 6]]]), + (([ [1/s, 2/s], [(s+1)/(s+2), s]], ), # 2x2 from SISO + [[ [1], [2] ], [[1, 1], [1, 0] ]], # num + [[ [1, 0], [1, 0] ], [[1, 2], [1] ]]), # den + (([[1, 2], [3, 4]], [[[1, 0], [1, 0]]]), ValueError, + r"numerator has 2 output\(s\), but the denominator has 1 output"), +]) +def test_tf_args(args, num, den): + if isinstance(num, type): + exception, match = num, den + with pytest.raises(exception, match=match): + sys = ct.tf(*args) + else: + sys = ct.tf(*args) + chk = ct.tf(num, den) + np.testing.assert_equal(sys.num, chk.num) + np.testing.assert_equal(sys.den, chk.den) diff --git a/control/timeplot.py b/control/timeplot.py index 58f7d8382..545618f75 100644 --- a/control/timeplot.py +++ b/control/timeplot.py @@ -1,37 +1,28 @@ # 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: It might eventually make sense to put the functions here -# directly into timeresp.py. -import numpy as np -import matplotlib as mpl -import matplotlib.pyplot as plt -from os.path import commonprefix +"""Time plotting functions. + +This module contains routines for plotting out time responses. These +functions can be called either as standalone functions or access from +the TimeResponseData class. + +""" + +import itertools from warnings import warn -from . import config +import matplotlib.pyplot as plt +import numpy as np -__all__ = ['time_response_plot', 'combine_time_responses', 'get_plot_axes'] +from . import config +from .ctrlplot import ControlPlot, _make_legend_labels, \ + _process_legend_keywords, _update_plot_title -# Default font dictionary -_timeplot_rcParams = mpl.rcParams.copy() -_timeplot_rcParams.update({ - 'axes.labelsize': 'small', - 'axes.titlesize': 'small', - 'figure.titlesize': 'medium', - 'legend.fontsize': 'x-small', - 'xtick.labelsize': 'small', - 'ytick.labelsize': 'small', -}) +__all__ = ['time_response_plot', 'combine_time_responses'] # Default values for module parameter variables _timeplot_defaults = { - 'timeplot.rcParams': _timeplot_rcParams, 'timeplot.trace_props': [ {'linestyle': s} for s in ['-', '--', ':', '-.']], 'timeplot.output_props': [ @@ -41,14 +32,17 @@ {'color': c} for c in [ 'tab:red', 'tab:purple', 'tab:brown', 'tab:olive', 'tab:cyan']], 'timeplot.time_label': "Time [s]", + 'timeplot.sharex': 'col', + 'timeplot.sharey': False, } + # Plot the input/output response of a system 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, - trace_labels=None, title=None, relabel=True, **kwargs): + add_initial_zero=True, label=None, trace_labels=None, title=None, + relabel=True, **kwargs): """Plot the time response of an input/output system. This function creates a standard set of plots for the input/output @@ -58,22 +52,13 @@ def time_response_plot( Parameters ---------- - data : TimeResponseData + data : `TimeResponseData` Data to be plotted. - ax : array of Axes - The matplotlib Axes to draw the figure on. If not specified, the - Axes for the current figure are used or, if there is no current - figure with the correct number and shape of Axes, a new figure is - created. The default shape of the array should be (noutputs + - ninputs, ntraces), but if `overlay_traces` is set to `True` then - only one row is needed and if `overlay_signals` is set to `True` - then only one or two columns are needed (depending on plot_inputs - and plot_outputs). plot_inputs : bool or str, optional Sets how and where to plot the inputs: * False: don't plot the inputs * None: use value from time response data (default) - * 'overlay`: plot inputs overlaid with outputs + * '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. @@ -83,6 +68,14 @@ def time_response_plot( overlay_signals : bool, optional If set to True, combine all input and output signals onto a single plot (for each). + sharex, sharey : str or bool, optional + Determine whether and how x- and y-axis limits are shared between + subplots. Can be set set to 'row' to share across all subplots in + a row, 'col' to set across all subplots in a column, 'all' to share + across all subplots, or False to allow independent limits. + Default values are False for `sharex' and 'col' for `sharey`, and + can be set using `config.defaults['timeplot.sharex']` and + `config.defaults['timeplot.sharey']`. transpose : bool, optional If transpose is False (default), signals are plotted from top to bottom, starting with outputs (if plotted) and then inputs. @@ -90,78 +83,109 @@ 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 + *fmt : `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 + **kwargs : `matplotlib.pyplot.plot` keyword properties, optional Additional keywords passed to `matplotlib` to specify line properties. Returns ------- - out : array of list of Line2D - Array of Line2D objects for each line in the plot. The shape of - the array matches the subplots shape and the value of the array is a - list of Line2D objects in that subplot. + cplt : `ControlPlot` object + Object containing the data that were plotted. See `ControlPlot` + for more detailed information. + cplt.lines : 2D array of `matplotlib.lines.Line2D` + Array containing information on each line in the plot. The shape + of the array matches the subplots shape and the value of the array + is a list of Line2D objects in that subplot. + cplt.axes : 2D array of `matplotlib.axes.Axes` + Axes for each subplot. + cplt.figure : `matplotlib.figure.Figure` + Figure containing the plot. + cplt.legend : 2D array of `matplotlib.legend.Legend` + Legend object(s) contained in the plot. 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. - input_props : array of dicts + ax : array of `matplotlib.axes.Axes`, optional + The matplotlib axes to draw the figure on. If not specified, the + axes for the current figure are used or, if there is no current + figure with the correct number and shape of axes, a new figure is + created. The shape of the array must match the shape of the + plotted data. + input_props : array of dict 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 + default values are set by `config.defaults['timeplot.input_props']`. + label : str or array_like of str, optional + If present, replace automatically generated label(s) with the given + label(s). If more than one line is being generated, an array of + labels should be provided with label[trace, :, 0] representing the + output labels and label[trace, :, 1] representing the input labels. + legend_map : array of str, optional + Location of the legend for multi-axes plots. Specifies an array of legend location strings matching the shape of the subplots, with each entry being either None (for no legend) or a legend location - string (see :func:`~matplotlib.pyplot.legend`). - legend_loc : str - Location of the legend within the axes for which it appears. This - value is used if legend_map is None. - output_props : array of dicts + string (see `~matplotlib.pyplot.legend`). + legend_loc : int or str, optional + Include a legend in the given location. Default is 'center right', + with no legend for a single response. Use False to suppress legend. + output_props : array of dict, optional List of line properties to use when plotting combined outputs. The - default values are set by config.defaults['timeplot.output_props']. + default values are set by `config.defaults['timeplot.output_props']`. + rcParams : dict + Override the default parameters used for generating plots. + Default is set by `config.defaults['ctrlplot.rcParams']`. relabel : bool, optional - By default, existing figures and axes are relabeled when new data - are added. If set to `False`, just plot new data on existing axes. + (deprecated) By default, existing figures and axes are relabeled + when new data are added. If set to False, just plot new data on + existing axes. + show_legend : bool, optional + Force legend to be shown if True or hidden if False. If + None, then show legend when there is more than one line on an + axis or `legend_loc` or `legend_map` has been specified. 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']. + title : str, optional + Set the title of the plot. Defaults to plot type and system name(s). + trace_labels : list of str, optional + Replace the default trace labels with the given labels. + trace_props : array of dict + List of line properties to use when plotting multiple traces. 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']. + 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. + + 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. + + The default plot properties, such as font sizes, can be set using + `config.defaults[''timeplot.rcParams']`. """ - from .iosys import InputOutputSystem - from .timeresp import TimeResponseData + from .ctrlplot import _process_ax_keyword, _process_line_labels # # Process keywords and set defaults # - # Set up defaults + ax_user = ax + sharex = config._get_param('timeplot', 'sharex', kwargs, pop=True) + sharey = config._get_param('timeplot', 'sharey', kwargs, pop=True) 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) + rcParams = config._get_param('ctrlplot', 'rcParams', kwargs, pop=True) if kwargs.get('input_props', None) and len(fmt) > 0: warn("input_props ignored since fmt string was present") @@ -181,9 +205,6 @@ def time_response_plot( 'timeplot', 'trace_props', kwargs, _timeplot_defaults, pop=True) tprop_len = len(trace_props) - # Set the title for the data - title = data.title if title == None else title - # Determine whether or not to plot the input data (and how) if plot_inputs is None: plot_inputs = data.plot_inputs @@ -275,33 +296,10 @@ def time_response_plot( 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) - fig.set_layout_engine('tight') - 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 + fig, ax_array = _process_ax_keyword( + ax, (nrows, ncols), rcParams=rcParams, sharex=sharex, sharey=sharey) + legend_loc, legend_map, show_legend = _process_legend_keywords( + kwargs, (nrows, ncols), 'center right') # # Map inputs/outputs and traces to axes @@ -366,6 +364,7 @@ def time_response_plot( out[i, j] = [] # unique list in each element # Utility function for creating line label + # TODO: combine with freqplot version? def _make_line_label(signal_index, signal_labels, trace_index): label = "" # start with an empty label @@ -389,16 +388,38 @@ def _make_line_label(signal_index, signal_labels, trace_index): return label + # + # Store the color offsets with the figure to allow color/style cycling + # + # To allow repeated calls to time_response_plot() to cycle through + # colors, we store an offset in the figure object that we can + # retrieve in a later call, if needed. + # + output_offset = fig._output_offset = getattr(fig, '_output_offset', 0) + input_offset = fig._input_offset = getattr(fig, '_input_offset', 0) + + # + # Plot the lines for the response + # + + # Process labels + line_labels = _process_line_labels( + label, ntraces, max(ninputs, noutputs), 2) + # Go through each trace and each input/output for trace in range(ntraces): # Plot the output for i in range(noutputs): - label = _make_line_label(i, data.output_labels, trace) + if line_labels is None: + label = _make_line_label(i, data.output_labels, trace) + else: + label = line_labels[trace, i, 0] # Set up line properties for this output, trace if len(fmt) == 0: line_props = output_props[ - i % oprop_len if overlay_signals else 0].copy() + (i + output_offset) % oprop_len if overlay_signals + else output_offset].copy() line_props.update( trace_props[trace % tprop_len if overlay_traces else 0]) line_props.update(kwargs) @@ -410,7 +431,10 @@ def _make_line_label(signal_index, signal_labels, trace_index): # Plot the input for i in range(ninputs): - label = _make_line_label(i, data.input_labels, trace) + if line_labels is None: + label = _make_line_label(i, data.input_labels, trace) + else: + label = line_labels[trace, i, 1] if add_initial_zero and data.ntraces > i \ and data.trace_types[i] == 'step': @@ -422,7 +446,8 @@ 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].copy() + (i + input_offset) % iprop_len if overlay_signals + else input_offset].copy() line_props.update( trace_props[trace % tprop_len if overlay_traces else 0]) line_props.update(kwargs) @@ -432,9 +457,16 @@ def _make_line_label(signal_index, signal_labels, trace_index): out[input_map[i, trace]] += ax_array[input_map[i, trace]].plot( x, y, *fmt, label=label, **line_props) + # Update the offsets so that we start at a new color/style the next time + fig._output_offset = ( + output_offset + (noutputs if overlay_signals else 1)) % oprop_len + fig._input_offset = ( + input_offset + (ninputs if overlay_signals else 1)) % iprop_len + # Stop here if the user wants to control everything if not relabel: - return out + warn("relabel keyword is deprecated", FutureWarning) + return ControlPlot(out, ax_array, fig) # # Label the axes (including trace labels) @@ -506,7 +538,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(rcParams): ax_array[0, trace].set_title(label) # Label the outputs @@ -530,7 +562,7 @@ def _make_line_label(signal_index, signal_labels, trace_index): # 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 + # matches the shape of the subplots, with each item being a string # indicating the location of the legend for that axes (or None for no # legend). # @@ -541,16 +573,15 @@ def _make_line_label(signal_index, signal_labels, trace_index): # # 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 + # call to plot() may not generate any legends (e.g., 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_map is None: + if show_legend != False and legend_map is None: legend_map = np.full(ax_array.shape, None, dtype=object) - if legend_loc == None: - legend_loc = 'center right' + if transpose: if (overlay_signals or plot_inputs == 'overlay') and overlay_traces: # Put a legend in each plot for inputs and outputs @@ -574,6 +605,7 @@ def _make_line_label(signal_index, signal_labels, trace_index): else: # Put legend in the upper right legend_map[0, -1] = legend_loc + else: # regular layout if (overlay_signals or plot_inputs == 'overlay') and overlay_traces: # Put a legend in each plot for inputs and outputs @@ -598,19 +630,24 @@ def _make_line_label(signal_index, signal_labels, trace_index): # 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): + if show_legend != False: + # Create axis legends + legend_array = np.full(ax_array.shape, None, dtype=object) + for i, j in itertools.product(range(nrows), range(ncols)): + if legend_map[i, j] is None: + continue ax = ax_array[i, j] - # Get the labels to use labels = [line.get_label() for line in ax.get_lines()] - labels = _make_legend_labels(labels, plot_inputs == 'overlay') + if line_labels is None: + 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]) - + if show_legend == True or len(labels) > 1: + with plt.rc_context(rcParams): + legend_array[i, j] = ax.legend( + labels, loc=legend_map[i, j]) + else: + legend_array = None # # Update the plot title (= figure suptitle) @@ -622,50 +659,35 @@ def _make_line_label(signal_index, signal_labels, trace_index): # list of systems (e.g., "Step response for sys[1], sys[2]"). # - 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 ax_user is None and title is None: + title = data.title if title == None else title + _update_plot_title(title, fig, rcParams=rcParams) + elif ax_user is None: + _update_plot_title(title, fig, rcParams=rcParams, use_existing=False) - 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(timeplot_rcParams): - fig.suptitle(new_title) - - return out + return ControlPlot(out, ax_array, fig, legend=legend_map) def combine_time_responses(response_list, trace_labels=None, title=None): - """Combine multiple individual time responses into a multi-trace response. + """Combine individual time responses into multi-trace response. - This function combines multiple instances of :class:`TimeResponseData` - into a multi-trace :class:`TimeResponseData` object. + This function combines multiple instances of `TimeResponseData` + into a multi-trace `TimeResponseData` object. Parameters ---------- - response_list : list of :class:`TimeResponseData` objects - Reponses to be combined. + response_list : list of `TimeResponseData` objects + Responses 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. + title : str, optional + Set the title to use when plotting. Defaults to plot type and + system name(s). Returns ------- - data : :class:`TimeResponseData` + data : `TimeResponseData` Multi-trace input/output data. """ @@ -681,6 +703,7 @@ def combine_time_responses(response_list, trace_labels=None, title=None): ntraces = max(1, base.ntraces) # Initial pass through trace list to count things up and do error checks + nstates = base.nstates for response in response_list[1:]: # Make sure the time vector is the same if not np.allclose(base.t, response.t): @@ -688,17 +711,20 @@ def combine_time_responses(response_list, trace_labels=None, title=None): # Make sure the dimensions are all the same if base.ninputs != response.ninputs or \ - base.noutputs != response.noutputs or \ - base.nstates != response.nstates: + base.noutputs != response.noutputs: raise ValueError("all responses must have the same number of " "inputs, outputs, and states") + if nstates != response.nstates: + warn("responses have different state dimensions; dropping states") + nstates = 0 + ntraces += max(1, response.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)) + states = np.empty((nstates, ntraces, base.t.size)) # See whether we should create labels or not if trace_labels is None: @@ -717,21 +743,27 @@ def combine_time_responses(response_list, trace_labels=None, title=None): # Single trace inputs[:, offset, :] = response.u outputs[:, offset, :] = response.y - states[:, offset, :] = response.x + if nstates: + states[:, offset, :] = response.x offset += 1 # Add on trace label and trace type if generate_trace_labels: - trace_labels.append(response.title) + trace_labels.append( + response.title if response.title is not None else + response.sysname if response.sysname is not None else + "unknown") trace_types.append( - None if response.trace_types is None else response.types[0]) + None if response.trace_types is None + else response.trace_types[0]) else: # Save the data for i in range(response.ntraces): inputs[:, offset, :] = response.u[:, i, :] outputs[:, offset, :] = response.y[:, i, :] - states[:, offset, :] = response.x[:, i, :] + if nstates: + states[:, offset, :] = response.x[:, i, :] # Save the trace labels if generate_trace_labels: @@ -749,68 +781,10 @@ def combine_time_responses(response_list, trace_labels=None, title=None): trace_types += [None] * response.ntraces return TimeResponseData( - base.t, outputs, states, inputs, issiso=base.issiso, + base.t, outputs, states if nstates else None, inputs, 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, + state_labels=base.state_labels if nstates else None, + title=title, transpose=base.transpose, return_x=base.return_x, + issiso=base.issiso, 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_plot_axes(line_array): - """Get a list of axes from an array of lines. - - This function can be used to return the set of axes corresponding to - the line array that is returned by `time_response_plot`. This is useful for - generating an axes array that can be passed to subsequent plotting - calls. - - 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 : array 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. - - """ - _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 diff --git a/control/timeresp.py b/control/timeresp.py index 58207e88e..bd549589a 100644 --- a/control/timeresp.py +++ b/control/timeresp.py @@ -1,14 +1,29 @@ -""" -timeresp.py - time-domain simulation routines. - -The :mod:`~control.timeresp` module contains a collection of -functions that are used to compute time-domain simulations of LTI -systems. +# timeresp.py - time-domain simulation routines. +# +# Initial author: Eike Welk +# Creation date: 12 May 2011 +# +# Modified: Sawyer B. Fuller (minster@uw.edu) to add discrete-time +# capability and better automatic time vector creation +# Date: June 2020 +# +# Modified by Ilhan Polat to improve automatic time vector creation +# Date: August 17, 2020 +# +# Modified by Richard Murray to add TimeResponseData class +# Date: August 2021 +# +# Use `git shortlog -n -s statesp.py` for full list of contributors + +"""Time domain simulation routines. + +This module contains a collection of functions that are used to +compute time-domain simulations of LTI systems. Arguments to time-domain simulations include a time vector, an input vector (when needed), and an initial condition vector. The most general function for simulating LTI systems the -:func:`forced_response` function, which has the form:: +`forced_response` function, which has the form:: t, y = forced_response(sys, T, U, X0) @@ -19,81 +34,48 @@ See :ref:`time-series-convention` for more information on how time series data are represented. -Copyright (c) 2011 by California Institute of Technology -All rights reserved. - -Copyright (c) 2011 by Eike Welk -Copyright (c) 2010 by SciPy Developers - -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. - -Initial Author: Eike Welk -Date: 12 May 2011 - -Modified: Sawyer B. Fuller (minster@uw.edu) to add discrete-time -capability and better automatic time vector creation -Date: June 2020 - -Modified by Ilhan Polat to improve automatic time vector creation -Date: August 17, 2020 - -Modified by Richard Murray to add TimeResponseData class -Date: August 2021 - -$Id$ """ import warnings +from copy import copy import numpy as np import scipy as sp from numpy import einsum, maximum, minimum from scipy.linalg import eig, eigvals, matrix_balance, norm -from copy import copy from . import config +from . config import _process_kwargs, _process_param from .exception import pandas_check -from .iosys import isctime, isdtime +from .iosys import NamedSignal, isctime, isdtime from .timeplot import time_response_plot - __all__ = ['forced_response', 'step_response', 'step_info', - 'initial_response', 'impulse_response', 'TimeResponseData'] + 'initial_response', 'impulse_response', 'TimeResponseData', + 'TimeResponseList'] + +# Dictionary of aliases for time response commands +_timeresp_aliases = { + # param: ([alias, ...], [legacy, ...]) + 'timepts': (['T'], []), + 'inputs': (['U'], ['u']), + 'outputs': (['Y'], ['y']), + 'initial_state': (['X0'], ['x0']), + 'final_output': (['yfinal'], []), + 'return_states': (['return_x'], []), + 'evaluation_times': (['t_eval'], []), + 'timepts_num': (['T_num'], []), + 'input_indices': (['input'], []), + 'output_indices': (['output'], []), +} class TimeResponseData: - """A class for returning time responses. + """Input/output system time response data. This class maintains and manipulates the data corresponding to the temporal response of an input/output system. It is used as the return - type for time domain simulations (step response, input/output response, + type for time domain simulations (`step_response`, `input_output_response`, etc). A time response consists of a time vector, an output vector, and @@ -106,206 +88,211 @@ class TimeResponseData: step responses for linear systems. For multi-trace responses, the same time vector must be used for all traces. - Time responses are accessed through either the raw data, stored as - :attr:`t`, :attr:`y`, :attr:`x`, :attr:`u`, or using a set of properties - :attr:`time`, :attr:`outputs`, :attr:`states`, :attr:`inputs`. When - accessing time responses via their properties, squeeze processing is - applied so that (by default) single-input, single-output systems will have - the output and input indices supressed. This behavior is set using the - ``squeeze`` keyword. + Time responses are accessed through either the raw data, stored as `t`, + `y`, `x`, `u`, or using a set of properties `time`, `outputs`, + `states`, `inputs`. When accessing time responses via their + properties, squeeze processing is applied so that (by default) + single-input, single-output systems will have the output and input + indices suppressed. This behavior is set using the `squeeze` parameter. + + Parameters + ---------- + time : 1D array + Time values of the output. Ignored if None. + outputs : ndarray + Output response of the system. This can either be a 1D array + indexed by time (for SISO systems or MISO systems with a specified + input), a 2D array indexed by output and time (for MIMO systems + with no input indexing, such as initial_response or forced + response) or trace and time (for SISO systems with multiple + traces), or a 3D array indexed by output, trace, and time (for + multi-trace input/output responses). + states : array, optional + Individual response of each state variable. This should be a 2D + array indexed by the state index and time (for single trace + systems) or a 3D array indexed by state, trace, and time. + inputs : array, optional + Inputs used to generate the output. This can either be a 1D array + indexed by time (for SISO systems or MISO/MIMO systems with a + specified input), a 2D array indexed either by input and time (for + a multi-input system) or trace and time (for a single-input, + multi-trace response), or a 3D array indexed by input, trace, and + time. + title : str, optional + 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) then + the inputs and outputs are returned as a 1D array (indexed by time) + and if a system is multi-input or multi-output, then the inputs are + returned as a 2D array (indexed by input and time) and the outputs + are returned as either a 2D array (indexed by output and time) or a + 3D array (indexed by output, trace, and time). If `squeeze` = True, + access to the output response will remove single-dimensional + entries from the shape of the inputs and outputs even if the system + is not SISO. If squeeze=False, keep the input as a 2D or 3D array + (indexed by the input (if multi-input), trace (if single input) and + time) and the output as a 3D array (indexed by the output, trace, + and time) even if the system is SISO. The default value can be set + using `config.defaults['control.squeeze_time_response']`. Attributes ---------- t : 1D array Time values of the input/output response(s). This attribute is - normally accessed via the :attr:`time` property. - + normally accessed via the `time` property. y : 2D or 3D array Output response data, indexed either by output index and time (for single trace responses) or output, trace, and time (for multi-trace - responses). These data are normally accessed via the :attr:`outputs` + responses). These data are normally accessed via the `outputs` property, which performs squeeze processing. - x : 2D or 3D array, or None - State space data, indexed either by output number and time (for single - trace responses) or output, trace, and time (for multi-trace - responses). If no state data are present, value is ``None``. These - data are normally accessed via the :attr:`states` property, which + State space data, indexed either by output number and time (for + single trace responses) or output, trace, and time (for multi-trace + responses). If no state data are present, value is None. These + data are normally accessed via the `states` property, which performs squeeze processing. - u : 2D or 3D array, or None Input signal data, indexed either by input index and time (for single trace responses) or input, trace, and time (for multi-trace - responses). If no input data are present, value is ``None``. These - data are normally accessed via the :attr:`inputs` property, which + responses). If no input data are present, value is None. These + data are normally accessed via the `inputs` property, which performs squeeze processing. - - squeeze : bool, optional - By default, if a system is single-input, single-output (SISO) - then the outputs (and inputs) are returned as a 1D array - (indexed by time) and if a system is multi-input or - multi-output, then the outputs are returned as a 2D array - (indexed by output and time) or a 3D array (indexed by output, - trace, and time). If ``squeeze=True``, access to the output - response will remove single-dimensional entries from the shape - of the inputs and outputs even if the system is not SISO. If - ``squeeze=False``, the output is returned as a 2D or 3D array - (indexed by the output [if multi-input], trace [if multi-trace] - and time) even if the system is SISO. The default value can be - set using config.defaults['control.squeeze_time_response']. - - transpose : bool, optional - If True, transpose all input and output arrays (for backward - compatibility with MATLAB and :func:`scipy.signal.lsim`). Default - value is False. - issiso : bool, optional - Set to ``True`` if the system generating the data is single-input, - single-output. If passed as ``None`` (default), the input data - will be used to set the value. - + Set to True if the system generating the data is single-input, + single-output. If passed as None (default), the input and output + data will be used to set the value. ninputs, noutputs, nstates : int Number of inputs, outputs, and states of the underlying system. - - 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. - params : dict, optional If system is a nonlinear I/O system, set parameter values. - - plot_inputs : bool, optional - Whether or not to plot the inputs by default (can be overridden in - the plot() method) - ntraces : int, optional Number of independent traces represented in the input/output - response. If ntraces is 0 (default) 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 suppressed in the data. trace_labels : array of string, optional - Labels to use for traces (set to sysname it ntraces is 0) - + Labels to use for traces (set to sysname it `ntraces` is 0). trace_types : array of string, optional Type of trace. Currently only 'step' is supported, which controls the way in which the signal is plotted. + Other Parameters + ---------------- + input_labels, output_labels, state_labels : array of str, optional + 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 `scipy.signal.lsim`). Default value + is False. + return_x : bool, optional + 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 `~TimeResponseData.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 + indicate which trace is being specified. Default is False. + success : bool, optional + If False, result may not be valid (see `input_output_response`). + message : str, optional + Informational message if `success` is False. + + See Also + -------- + input_output_response, forced_response, impulse_response, \ + initial_response, step_response, FrequencyResponseData + Notes ----- - 1. For backward compatibility with earlier versions of python-control, - this class has an ``__iter__`` method that allows it to be assigned - to a tuple with a variable number of elements. This allows the - following patterns to work: + The responses for individual elements of the time response can be + accessed using integers, slices, or lists of signal offsets or the + names of the appropriate signals:: - t, y = step_response(sys) - t, y, x = step_response(sys, return_x=True) + sys = ct.rss(4, 2, 1) + resp = ct.initial_response(sys, initial_state=[1, 1, 1, 1]) + plt.plot(resp.time, resp.outputs['y[0]']) - When using this (legacy) interface, the state vector is not affected by - the `squeeze` parameter. + In the case of multi-trace data, the responses should be indexed using + the output signal name (or offset) and the input signal name (or + offset):: - 2. For backward compatibility with earlier version of python-control, - this class has ``__getitem__`` and ``__len__`` methods that allow the - return value to be indexed: + sys = ct.rss(4, 2, 2, strictly_proper=True) + resp = ct.step_response(sys) + plt.plot(resp.time, resp.outputs[['y[0]', 'y[1]'], 'u[0]'].T) - response[0]: returns the time vector - response[1]: returns the output vector - response[2]: returns the state vector + For backward compatibility with earlier versions of python-control, + this class has an `__iter__` method that allows it to be assigned to + a tuple with a variable number of elements. This allows the following + patterns to work:: - When using this (legacy) interface, the state vector is not affected by - the `squeeze` parameter. + t, y = step_response(sys) + t, y, x = step_response(sys, return_x=True) - 3. The default settings for ``return_x``, ``squeeze`` and ``transpose`` - can be changed by calling the class instance and passing new values: + Similarly, the class has `__getitem__` and `__len__` methods that + allow the return value to be indexed: - response(tranpose=True).input + * response[0]: returns the time vector + * response[1]: returns the output vector + * response[2]: returns the state vector - See :meth:`TimeResponseData.__call__` for more information. + When using this (legacy) interface, the state vector is not affected + by the `squeeze` parameter. + + The default settings for `return_x`, `squeeze` and `transpose` + can be changed by calling the class instance and passing new values:: + + response(transpose=True).input + + See `TimeResponseData.__call__` for more information. """ + # + # Class attributes + # + # These attributes are defined as class attributes so that they are + # documented properly. They are "overwritten" in __init__. + # + + #: Squeeze processing parameter. + #: + #: By default, if a system is single-input, single-output (SISO) + #: then the inputs and outputs are returned as a 1D array (indexed + #: by time) and if a system is multi-input or multi-output, then + #: the inputs are returned as a 2D array (indexed by input and + #: time) and the outputs are returned as either a 2D array (indexed + #: by output and time) or a 3D array (indexed by output, trace, and + #: time). If squeeze=True, access to the output response will + #: remove single-dimensional entries from the shape of the inputs + #: and outputs even if the system is not SISO. If squeeze=False, + #: keep the input as a 2D or 3D array (indexed by the input (if + #: multi-input), trace (if single input) and time) and the output + #: as a 3D array (indexed by the output, trace, and time) even if + #: the system is SISO. The default value can be set using + #: config.defaults['control.squeeze_time_response']. + #: + #: :meta hide-value: + squeeze = None 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, trace_types=None, - plot_inputs=True, sysname=None, params=None + plot_inputs=True, sysname=None, params=None, success=True, + message=None ): """Create an input/output time response object. - Parameters - ---------- - time : 1D array - Time values of the output. Ignored if None. - - outputs : ndarray - Output response of the system. This can either be a 1D array - indexed by time (for SISO systems or MISO systems with a specified - input), a 2D array indexed by output and time (for MIMO systems - with no input indexing, such as initial_response or forced - response) or trace and time (for SISO systems with multiple - traces), or a 3D array indexed by output, trace, and time (for - multi-trace input/output responses). - - states : array, optional - Individual response of each state variable. This should be a 2D - array indexed by the state index and time (for single trace - systems) or a 3D array indexed by state, trace, and time. - - inputs : array, optional - Inputs used to generate the output. This can either be a 1D - array indexed by time (for SISO systems or MISO/MIMO systems - with a specified input), a 2D array indexed either by input and - time (for a multi-input system) or trace and time (for a - single-input, multi-trace response), or a 3D array indexed by - input, trace, and time. - - 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) - then the inputs and outputs are returned as a 1D array (indexed - by time) and if a system is multi-input or multi-output, then - the inputs are returned as a 2D array (indexed by input and - time) and the outputs are returned as either a 2D array (indexed - by output and time) or a 3D array (indexed by output, trace, and - time). If squeeze=True, access to the output response will - remove single-dimensional entries from the shape of the inputs - and outputs even if the system is not SISO. If squeeze=False, - keep the input as a 2D or 3D array (indexed by the input (if - multi-input), trace (if single input) and time) and the output - as a 3D array (indexed by the output, trace, and time) even if - the system is SISO. The default value can be set using - config.defaults['control.squeeze_time_response']. - - Other parameters - ---------------- - input_labels, output_labels, state_labels: array of str, optional - 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. + This function is used by the various time response functions, such + as `input_output_response` and `step_response` to store the + response of a simulation. It can be passed to `plot_time_response` + to plot the data, or the `~TimeResponseData.plot` method can be used. - transpose : bool, optional - If True, transpose all input and output arrays (for backward - compatibility with MATLAB and :func:`scipy.signal.lsim`). - Default value is False. - - return_x : bool, optional - 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 - indicate which trace is being specified. Default is ``False``. + See `TimeResponseData` for more information on parameters. """ # @@ -372,7 +359,7 @@ def __init__( # Make sure the shape is OK if multi_trace and \ (self.x.ndim != 3 or self.x.shape[1] != self.ntraces) or \ - not multi_trace and self.x.ndim != 2 : + not multi_trace and self.x.ndim != 2: raise ValueError("State vector is the wrong shape") # Make sure time dimension of state is the right length @@ -398,7 +385,7 @@ def __init__( self.u = np.array(inputs) self.plot_inputs = plot_inputs - # Make sure the shape is OK and figure out the nuumber of inputs + # Make sure the shape is OK and figure out the number of inputs if multi_trace and self.u.ndim == 3 and \ self.u.shape[1] == self.ntraces: self.ninputs = self.u.shape[0] @@ -460,27 +447,31 @@ def __init__( # Store legacy keyword values (only needed for legacy interface) self.return_x = return_x + # Information on the whether the simulation result may be incorrect + self.success = success + self.message = message + def __call__(self, **kwargs): """Change value of processing keywords. Calling the time response object will create a copy of the object and - change the values of the keywords used to control the ``outputs``, - ``states``, and ``inputs`` properties. + change the values of the keywords used to control the `outputs`, + `states`, and `inputs` properties. Parameters ---------- squeeze : bool, optional - If squeeze=True, access to the output response will remove - single-dimensional entries from the shape of the inputs, outputs, - and states even if the system is not SISO. If squeeze=False, keep - the input as a 2D or 3D array (indexed by the input (if - multi-input), trace (if single input) and time) and the output and - states as a 3D array (indexed by the output/state, trace, and - time) even if the system is SISO. + If `squeeze` = True, access to the output response will remove + single-dimensional entries from the shape of the inputs, + outputs, and states even if the system is not SISO. If + `squeeze` = False, keep the input as a 2D or 3D array (indexed + by the input (if multi-input), trace (if single input) and + time) and the output and states as a 3D array (indexed by the + output/state, trace, and time) even if the system is SISO. transpose : bool, optional If True, transpose all input and output arrays (for backward - compatibility with MATLAB and :func:`scipy.signal.lsim`). + compatibility with MATLAB and `scipy.signal.lsim`). Default value is False. return_x : bool, optional @@ -539,16 +530,21 @@ def outputs(self): Output response of the system, indexed by either the output and time (if only a single input is given) or the output, trace, and time - (for multiple traces). See :attr:`TimeResponseData.squeeze` for a + (for multiple traces). See `TimeResponseData.squeeze` for a description of how this can be modified using the `squeeze` keyword. + Input and output signal names can be used to index the data in + place of integer offsets, with the input signal names being used to + access multi-input data. + :type: 1D, 2D, or 3D array """ - t, y = _process_time_response( - self.t, self.y, issiso=self.issiso, + # TODO: move to __init__ to avoid recomputing each time? + y = _process_time_response( + self.y, issiso=self.issiso, transpose=self.transpose, squeeze=self.squeeze) - return y + return NamedSignal(y, self.output_labels, self.input_labels) # Getter for states (implements squeeze processing) @property @@ -557,64 +553,65 @@ def states(self): Time evolution of the state vector, indexed indexed by either the state and time (if only a single trace is given) or the state, trace, - and time (for multiple traces). See :attr:`TimeResponseData.squeeze` + and time (for multiple traces). See `TimeResponseData.squeeze` for a description of how this can be modified using the `squeeze` keyword. + Input and output signal names can be used to index the data in + place of integer offsets, with the input signal names being used to + access multi-input data. + :type: 2D or 3D array """ - if self.x is None: - return None - - elif self.squeeze is True: - x = self.x.squeeze() + # TODO: move to __init__ to avoid recomputing each time? + x = _process_time_response( + self.x, transpose=self.transpose, + squeeze=self.squeeze, issiso=False) - elif self.ninputs == 1 and self.noutputs == 1 and \ - self.ntraces == 1 and self.x.ndim == 3 and \ + # Special processing for SISO case: always retain state index + if self.issiso and self.ntraces == 1 and x.ndim == 3 and \ self.squeeze is not False: # Single-input, single-output system with single trace - x = self.x[:, 0, :] + x = x[:, 0, :] - else: - # Return the full set of data - x = self.x - - # Transpose processing - if self.transpose: - x = np.transpose(x, np.roll(range(x.ndim), 1)) - - return x + return NamedSignal(x, self.state_labels, self.input_labels) # Getter for inputs (implements squeeze processing) @property def inputs(self): """Time response input vector. - Input(s) to the system, indexed by input (optiona), trace (optional), + Input(s) to the system, indexed by input (optional), trace (optional), and time. If a 1D vector is passed, the input corresponds to a scalar-valued input. If a 2D vector is passed, then it can either represent multiple single-input traces or a single multi-input trace. - The optional ``multi_trace`` keyword should be used to disambiguate + The optional `multi_trace` keyword should be used to disambiguate the two. If a 3D vector is passed, then it represents a multi-trace, multi-input signal, indexed by input, trace, and time. - See :attr:`TimeResponseData.squeeze` for a description of how the + Input and output signal names can be used to index the data in + place of integer offsets, with the input signal names being used to + access multi-input data. + + See `TimeResponseData.squeeze` for a description of how the dimensions of the input vector can be modified using the `squeeze` keyword. :type: 1D or 2D array """ + # TODO: move to __init__ to avoid recomputing each time? if self.u is None: return None - t, u = _process_time_response( - self.t, self.u, issiso=self.issiso, + u = _process_time_response( + self.u, issiso=self.issiso, transpose=self.transpose, squeeze=self.squeeze) - return u + return NamedSignal(u, self.input_labels, self.input_labels) # Getter for legacy state (implements non-standard squeeze processing) + # TODO: remove when no longer needed @property def _legacy_states(self): """Time response state vector (legacy version). @@ -676,29 +673,89 @@ def __len__(self): # Convert to pandas def to_pandas(self): + """Convert response data to pandas data frame. + + Creates a pandas data frame using the input, output, and state labels + for the time response. The column labels are given by the input and + output (and state, when present) labels, with time labeled by 'time' + and traces (for multi-trace responses) labeled by 'trace'. + + """ if not pandas_check(): raise ImportError("pandas not installed") import pandas # Create a dict for setting up the data frame - data = {'time': self.time} + data = {'time': np.tile( + self.time, self.ntraces if self.ntraces > 0 else 1)} + if self.ntraces > 0: + data['trace'] = np.hstack([ + np.full(self.time.size, label) for label in self.trace_labels]) if self.ninputs > 0: data.update( - {name: self.u[i] for i, name in enumerate(self.input_labels)}) + {name: self.u[i].reshape(-1) + for i, name in enumerate(self.input_labels)}) if self.noutputs > 0: data.update( - {name: self.y[i] for i, name in enumerate(self.output_labels)}) + {name: self.y[i].reshape(-1) + for i, name in enumerate(self.output_labels)}) if self.nstates > 0: data.update( - {name: self.x[i] for i, name in enumerate(self.state_labels)}) + {name: self.x[i].reshape(-1) + for i, name in enumerate(self.state_labels)}) return pandas.DataFrame(data) # Plot data def plot(self, *args, **kwargs): + """Plot the time response data objects. + + This method calls `time_response_plot`, passing all arguments + and keywords. See `time_response_plot` for details. + + """ return time_response_plot(self, *args, **kwargs) +# +# Time 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 TimeResponseData +# objects. +# + +class TimeResponseList(list): + """List of TimeResponseData objects with plotting capability. + + This class consists of a list of `TimeResponseData` objects. + It is a subclass of the Python `list` class, with a `plot` method that + plots the individual `TimeResponseData` objects. + + """ + def plot(self, *args, **kwargs): + """Plot a list of time responses. + + See `time_response_plot` for details. + + """ + from .ctrlplot import ControlPlot + + lines = None + label = kwargs.pop('label', [None] * len(self)) + for i, response in enumerate(self): + cplt = TimeResponseData.plot( + response, *args, label=label[i], **kwargs) + if lines is None: + lines = cplt.lines + else: + # Append the lines in the new plot to previous lines + for row in range(cplt.lines.shape[0]): + for col in range(cplt.lines.shape[1]): + lines[row, col] += cplt.lines[row, col] + return ControlPlot(lines, cplt.axes, cplt.figure) + + # Process signal labels def _process_labels(labels, signal, length): """Process time response signal labels. @@ -750,16 +807,16 @@ def _process_labels(labels, signal, length): return labels -# Helper function for checking array-like parameters +# Helper function for checking array_like parameters def _check_convert_array(in_obj, legal_shapes, err_msg_start, squeeze=False, transpose=False): """Helper function for checking array_like parameters. - * Check type and shape of ``in_obj``. - * Convert ``in_obj`` to an array if necessary. - * Change shape of ``in_obj`` according to parameter ``squeeze``. - * If ``in_obj`` is a scalar (number) it is converted to an array with + * Check type and shape of `in_obj`. + * Convert `in_obj` to an array if necessary. + * Change shape of `in_obj` according to parameter `squeeze`. + * If `in_obj` is a scalar (number) it is converted to an array with a legal shape, that is filled with the scalar value. The function raises an exception when it detects an error. @@ -774,8 +831,8 @@ def _check_convert_array(in_obj, legal_shapes, err_msg_start, squeeze=False, The special value "any" means that there can be any number of elements in a certain dimension. - * ``(2, 3)`` describes an array with 2 rows and 3 columns - * ``(2, "any")`` describes an array with 2 rows and any number of + * (2, 3) describes an array with 2 rows and 3 columns + * (2, 'any') describes an array with 2 rows and any number of columns err_msg_start : str @@ -787,18 +844,18 @@ def _check_convert_array(in_obj, legal_shapes, err_msg_start, squeeze=False, If True, all dimensions with only one element are removed from the array. If False the array's shape is unmodified. - For example: - ``array([[1,2,3]])`` is converted to ``array([1, 2, 3])`` + For example: ``array([[1, 2, 3]])`` is converted to ``array([1, 2, + 3])``. transpose : bool, optional - If True, assume that 2D input arrays are transposed from the standard - format. Used to convert MATLAB-style inputs to our format. + If True, assume that 2D input arrays are transposed from the + standard format. Used to convert MATLAB-style inputs to our + format. Returns ------- - out_array : array - The checked and converted contents of ``in_obj``. + The checked and converted contents of `in_obj`. """ # convert nearly everything to an array. @@ -860,127 +917,149 @@ 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, params=None, - interpolate=False, return_x=None, squeeze=None): +def forced_response( + sysdata, timepts=None, inputs=0., initial_state=0., transpose=False, + params=None, interpolate=False, return_states=None, squeeze=None, + **kwargs): """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. - The correct shape is inferred from arguments `sys` and `T`. + As a convenience for parameters `U`, `X0`: Numbers (scalars) are + converted to constant arrays with the correct shape. The correct shape + is inferred from arguments `sys` and `T`. For information on the **shape** of parameters `U`, `T`, `X0` and return values `T`, `yout`, `xout`, see :ref:`time-series-convention`. Parameters ---------- - sys : StateSpace or TransferFunction - LTI system to simulate - - T : array_like, optional for discrete LTI `sys` - Time steps at which the input is defined; values must be evenly spaced. - - If None, `U` must be given and `len(U)` time steps of sys.dt are - simulated. If sys.dt is None or True (undetermined time step), a time - step of 1.0 is assumed. - - U : array_like or float, optional - Input array giving input at each time `T`. - If `U` is None or 0, `T` must be given, even for discrete - time systems. In this case, for continuous time systems, a direct - calculation of the matrix exponential is used, which is faster than the - general interpolating algorithm used otherwise. - - X0 : array_like or float, default=0. + sysdata : I/O system or list of I/O systems + I/O system(s) for which forced response is computed. + timepts (or T) : array_like, optional for discrete LTI `sys` + Time steps at which the input is defined; values must be evenly + spaced. If None, `inputs` must be given and ``len(inputs)`` time + steps of `sys.dt` are simulated. If `sys.dt` is None or True + (undetermined time step), a time step of 1.0 is assumed. + inputs (or U) : array_like or float, optional + Input array giving input at each time in `timepts`. If `inputs` is + None or 0, `timepts` must be given, even for discrete-time + systems. In this case, for continuous-time systems, a direct + calculation of the matrix exponential is used, which is faster than + the general interpolating algorithm used otherwise. + initial_state (or X0) : array_like or float, default=0. Initial condition. - params : dict, optional If system is a nonlinear I/O system, set parameter values. - transpose : bool, default=False If True, transpose all input and output arrays (for backward - compatibility with MATLAB and :func:`scipy.signal.lsim`). - + compatibility with MATLAB and `scipy.signal.lsim`). interpolate : bool, default=False - If True and system is a discrete time system, the input will + If True and system is a discrete-time system, the input will be interpolated between the given time steps and the output will be given at system sampling rate. Otherwise, only return the output at the times given in `T`. No effect on continuous time simulations. - - return_x : bool, default=None - Used if the time response data is assigned to a tuple: - - * If False, return only the time and output vectors. - - * If True, also return the the state vector. - - * If None, determine the returned variables by - config.defaults['forced_response.return_x'], which was True - before version 0.9 and is False since then. - + return_states (or return_x) : bool, default=None + Used if the time response data is assigned to a tuple. If False, + return only the time and output vectors. If True, also return the + the state vector. If None, determine the returned variables by + `config.defaults['forced_response.return_x']`, which was True + before version 0.9 and is False since then. squeeze : bool, optional By default, if a system is single-input, single-output (SISO) then - the output response is returned as a 1D array (indexed by time). If - `squeeze` is True, remove single-dimensional entries from the shape of - the output even if the system is not SISO. If `squeeze` is False, keep - the output as a 2D array (indexed by the output number and time) - even if the system is SISO. The default behavior can be overridden by - config.defaults['control.squeeze_time_response']. + the output response is returned as a 1D array (indexed by time). + If `squeeze` is True, remove single-dimensional entries from + the shape of the output even if the system is not SISO. If + `squeeze` is False, keep the output as a 2D array (indexed by + the output number and time) even if the system is SISO. The default + behavior can be overridden 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``. + resp : `TimeResponseData` or `TimeResponseList` + Input/output response data object. When accessed as a tuple, + returns ``(time, outputs)`` (default) or ``(time, outputs, states)`` + if `return_x` is True. The `~TimeResponseData.plot` method can + be used to create a plot of the time response(s) (see + `time_response_plot` for more information). If `sysdata` is a list + of systems, a `TimeResponseList` object is returned, which acts as + a list of `TimeResponseData` objects with a `~TimeResponseList.plot` + method that will plot responses as multiple traces. See + `time_response_plot` for additional information. + resp.time : array + Time values of the output. + resp.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). + resp.states : array + Time evolution of the state vector, represented as a 2D array + indexed by state and time. + resp.inputs : array + Input(s) to the system, indexed by input and time. See Also -------- - step_response, initial_response, impulse_response, input_output_response + impulse_response, initial_response, input_output_response, \ + step_response, time_response_plot Notes ----- - 1. For discrete time systems, the input/output response is computed - using the :func:`scipy.signal.dlsim` function. + For discrete-time systems, the input/output response is computed + using the `scipy.signal.dlsim` function. + + 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. - 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. + 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. - 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. + (legacy) 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. Examples -------- >>> G = ct.rss(4) - >>> T = np.linspace(0, 10) - >>> T, yout = ct.forced_response(G, T=T) + >>> timepts = np.linspace(0, 10) + >>> inputs = np.sin(timepts) + >>> tout, yout = ct.forced_response(G, timepts, inputs) See :ref:`time-series-convention` and :ref:`package-configuration-parameters`. """ + from .nlsys import NonlinearIOSystem, input_output_response from .statesp import StateSpace, _convert_to_statespace from .xferfcn import TransferFunction - from .nlsys import NonlinearIOSystem, input_output_response + + # Process keyword arguments + _process_kwargs(kwargs, _timeresp_aliases) + T = _process_param('timepts', timepts, kwargs, _timeresp_aliases) + U = _process_param('inputs', inputs, kwargs, _timeresp_aliases, sigval=0.) + X0 = _process_param( + 'initial_state', initial_state, kwargs, _timeresp_aliases, sigval=0.) + return_x = _process_param( + 'return_states', return_states, kwargs, _timeresp_aliases, sigval=None) + + if kwargs: + raise TypeError("unrecognized keyword(s): ", str(kwargs)) + + # If passed a list, recursively call individual responses with given T + if isinstance(sysdata, (list, tuple)): + responses = [] + for sys in sysdata: + responses.append(forced_response( + sys, T, inputs=U, initial_state=X0, transpose=transpose, + params=params, interpolate=interpolate, + return_states=return_x, squeeze=squeeze)) + return TimeResponseList(responses) + else: + sys = sysdata if not isinstance(sys, (StateSpace, TransferFunction)): if isinstance(sys, NonlinearIOSystem): @@ -991,8 +1070,8 @@ def forced_response(sys, T=None, U=0., X0=0., transpose=False, params=None, sys, T, U, X0, params=params, transpose=transpose, return_x=return_x, squeeze=squeeze) else: - raise TypeError('Parameter ``sys``: must be a ``StateSpace`` or' - ' ``TransferFunction``)') + 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: @@ -1023,14 +1102,14 @@ def forced_response(sys, T=None, U=0., X0=0., transpose=False, params=None, if U is not None: U = np.asarray(U) if T is not None: - # T must be array-like + # T must be array_like T = np.asarray(T) - # Set and/or check time vector in discrete time case + # Set and/or check time vector in discrete-time case if isdtime(sys): if T is None: if U is None or (U.ndim == 0 and U == 0.): - raise ValueError('Parameters ``T`` and ``U`` can\'t both be ' + raise ValueError('Parameters `T` and `U` can\'t both be ' 'zero for discrete-time simulation') # Set T to equally spaced samples with same length as U if U.ndim == 1: @@ -1044,12 +1123,12 @@ def forced_response(sys, T=None, U=0., X0=0., transpose=False, params=None, U = np.full((n_inputs, T.shape[0]), U) else: if T is None: - raise ValueError('Parameter ``T`` is mandatory for continuous ' + raise ValueError('Parameter `T` is mandatory for continuous ' 'time systems.') # Test if T has shape (n,) or (1, n); T = _check_convert_array(T, [('any',), (1, 'any')], - 'Parameter ``T``: ', squeeze=True, + 'Parameter `T`: ', squeeze=True, transpose=transpose) n_steps = T.shape[0] # number of simulation steps @@ -1057,25 +1136,25 @@ def forced_response(sys, T=None, U=0., X0=0., transpose=False, params=None, # equally spaced also implies strictly monotonic increase, dt = (T[-1] - T[0]) / (n_steps - 1) if not np.allclose(np.diff(T), dt): - raise ValueError("Parameter ``T``: time values must be equally " + raise ValueError("Parameter `T`: time values must be equally " "spaced.") # create X0 if not given, test if X0 has correct shape X0 = _check_convert_array(X0, [(n_states,), (n_states, 1)], - 'Parameter ``X0``: ', squeeze=True) + 'Parameter `X0`: ', squeeze=True) # Test if U has correct shape and type legal_shapes = [(n_steps,), (1, n_steps)] if n_inputs == 1 else \ [(n_inputs, n_steps)] U = _check_convert_array(U, legal_shapes, - 'Parameter ``U``: ', squeeze=False, + 'Parameter `U`: ', squeeze=False, transpose=transpose) xout = np.zeros((n_states, n_steps)) xout[:, 0] = X0 yout = np.zeros((n_outputs, n_steps)) - # Separate out the discrete and continuous time cases + # Separate out the discrete and continuous-time cases if isctime(sys, strict=True): # Solve the differential equation, copied from scipy.signal.ltisys. @@ -1131,13 +1210,13 @@ def forced_response(sys, T=None, U=0., X0=0., transpose=False, params=None, # First make sure that time increment is bigger than sampling time # (with allowance for small precision errors) if dt < sys.dt and not np.isclose(dt, sys.dt): - raise ValueError("Time steps ``T`` must match sampling time") + raise ValueError("Time steps `T` must match sampling time") # Now check to make sure it is a multiple (with check against # sys.dt because floating point mod can have small errors if not (np.isclose(dt % sys.dt, 0) or np.isclose(dt % sys.dt, sys.dt)): - raise ValueError("Time steps ``T`` must be multiples of " + raise ValueError("Time steps `T` must be multiples of " "sampling time") sys_dt = sys.dt @@ -1147,7 +1226,7 @@ def forced_response(sys, T=None, U=0., X0=0., transpose=False, params=None, # https://github.com/scipyscipy/blob/v1.6.1/scipy/signal/ltisys.py#L3462 scipy_out_samples = int(np.floor(spT[-1] / sys_dt)) + 1 if scipy_out_samples < n_steps: - # parantheses: order of evaluation is important + # parentheses: order of evaluation is important spT[-1] = spT[-1] * (n_steps / (spT[-1] / sys_dt + 1)) else: @@ -1156,7 +1235,7 @@ def forced_response(sys, T=None, U=0., X0=0., transpose=False, params=None, # Discrete time simulation using signal processing toolbox dsys = (A, B, C, D, sys_dt) - # Use signal processing toolbox for the discrete time simulation + # Use signal processing toolbox for the discrete-time simulation # Transpose the input to match toolbox convention tout, yout, xout = sp.signal.dlsim(dsys, np.transpose(U), spT, X0) tout = tout + T[0] @@ -1185,7 +1264,7 @@ def forced_response(sys, T=None, U=0., X0=0., transpose=False, params=None, # Process time responses in a uniform way def _process_time_response( - tout, yout, issiso=False, transpose=None, squeeze=None): + signal, issiso=False, transpose=None, squeeze=None): """Process time response signals. This function processes the outputs (or inputs) of time response @@ -1193,43 +1272,36 @@ def _process_time_response( Parameters ---------- - T : 1D array - Time values of the output. Ignored if None. - - yout : ndarray - Response of the system. This can either be a 1D array indexed by time - (for SISO systems), a 2D array indexed by output and time (for MIMO - systems with no input indexing, such as initial_response or forced - response) or a 3D array indexed by output, input, and time. + signal : ndarray + Data to be processed. This can either be a 1D array indexed by + time (for SISO systems), a 2D array indexed by output and time (for + MIMO systems with no input indexing, such as initial_response or + forced response) or a 3D array indexed by output, input, and time. issiso : bool, optional - If ``True``, process data as single-input, single-output data. - Default is ``False``. + If True, process data as single-input, single-output data. + Default is False. transpose : bool, optional - If True, transpose all input and output arrays (for backward - compatibility with MATLAB and :func:`scipy.signal.lsim`). Default - value is False. + If True, transpose data (for backward compatibility with MATLAB and + `scipy.signal.lsim`). Default value is False. squeeze : bool, optional - By default, if a system is single-input, single-output (SISO) then the - output response is returned as a 1D array (indexed by time). If - squeeze=True, remove single-dimensional entries from the shape of the - output even if the system is not SISO. If squeeze=False, keep the - output as a 3D array (indexed by the output, input, and time) even if - the system is SISO. The default value can be set using - config.defaults['control.squeeze_time_response']. + By default, if a system is single-input, single-output (SISO) then + the signals are returned as a 1D array (indexed by time). If + `squeeze` = True, remove single-dimensional entries from the shape + of the signal even if the system is not SISO. If `squeeze` = False, + keep the signal as a 3D array (indexed by the output, input, and + time) even if the system is SISO. The default value can be set + using `config.defaults['control.squeeze_time_response']`. Returns ------- - T : 1D array - Time values of the output. - - yout : ndarray - 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 either 2D (indexed by output and time) - or 3D (indexed by input, output, and time). + output : ndarray + Processed signal. 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 either 2D (indexed by output and + time) or 3D (indexed by input, output, and time). """ # If squeeze was not specified, figure out the default (might remain None) @@ -1237,122 +1309,97 @@ def _process_time_response( squeeze = config.defaults['control.squeeze_time_response'] # Figure out whether and how to squeeze output data - if squeeze is True: # squeeze all dimensions - yout = np.squeeze(yout) - elif squeeze is False: # squeeze no dimensions + if squeeze is True: # squeeze all dimensions + signal = np.squeeze(signal) + elif squeeze is False: # squeeze no dimensions pass - elif squeeze is None: # squeeze signals if SISO + elif squeeze is None: # squeeze signals if SISO if issiso: - if yout.ndim == 3: - yout = yout[0][0] # remove input and output + if signal.ndim == 3: + signal = signal[0][0] # remove input and output else: - yout = yout[0] # remove input + signal = signal[0] # remove input else: raise ValueError("Unknown squeeze value") # See if we need to transpose the data back into MATLAB form if transpose: - # Transpose time vector in case we are using np.matrix - tout = np.transpose(tout) - # For signals, put the last index (time) into the first slot - yout = np.transpose(yout, np.roll(range(yout.ndim), 1)) + signal = np.transpose(signal, np.roll(range(signal.ndim), 1)) - # Return time, output, and (optionally) state - return tout, yout + # Return output + return signal -def step_response(sys, T=None, X0=0, input=None, output=None, T_num=None, - transpose=False, return_x=False, squeeze=None, params=None): +def step_response( + sysdata, timepts=None, initial_state=0., input_indices=None, + output_indices=None, timepts_num=None, transpose=False, + return_states=False, squeeze=None, params=None, **kwargs): # pylint: disable=W0622 """Compute the step response for a linear system. If the system has multiple inputs and/or multiple outputs, the step - response is computed for each input/output pair, with all other inputs set - to zero. Optionally, a single input and/or single output can be selected, - in which case all other inputs are set to 0 and all other outputs are - ignored. + response is computed for each input/output pair, with all other inputs + set to zero. Optionally, a single input and/or single output can be + selected, in which case all other inputs are set to 0 and all other + outputs are ignored. For information on the **shape** of parameters `T`, `X0` and return values `T`, `yout`, see :ref:`time-series-convention`. Parameters ---------- - sys : StateSpace or TransferFunction - LTI system to simulate - - T : array_like or float, optional - Time vector, or simulation time duration if a number. If T is not + sysdata : I/O system or list of I/O systems + I/O system(s) for which step response is computed. + timepts (or T) : array_like or float, optional + Time vector, or simulation time duration if a number. If `T` is not provided, an attempt is made to create it automatically from the - dynamics of sys. If sys is continuous-time, the time increment dt - is chosen small enough to show the fastest mode, and the simulation - time period tfinal long enough to show the slowest mode, excluding - poles at the origin and pole-zero cancellations. If this results in - too many time steps (>5000), dt is reduced. If sys is discrete-time, - only tfinal is computed, and final is reduced if it requires too - many simulation steps. - - X0 : array_like or float, optional + dynamics of the system. If the system continuous time, the time + increment dt is chosen small enough to show the fastest mode, and + the simulation time period tfinal long enough to show the slowest + mode, excluding poles at the origin and pole-zero cancellations. If + this results in too many time steps (>5000), dt is reduced. If the + system is discrete time, only tfinal is computed, and final is + reduced if it requires too many simulation steps. + initial_state (or X0) : array_like or float, optional Initial condition (default = 0). This can be used for a nonlinear system where the origin is not an equilibrium point. - - input : int, optional + input_indices (or input) : int or list of int, optional Only compute the step response for the listed input. If not specified, the step responses for each independent input are computed (as separate traces). - - output : int, optional + output_indices (or output) : int, optional Only report the step response for the listed output. If not specified, all outputs are reported. - params : dict, optional If system is a nonlinear I/O system, set parameter values. - - T_num : int, optional - Number of time steps to use in simulation if T is not provided as an - array (autocomputed if not given); ignored if sys is discrete-time. - + timepts_num (or T_num) : int, optional + Number of time steps to use in simulation if `T` is not provided as + an array (auto-computed if not given); ignored if the system is + discrete time. transpose : bool, optional If True, transpose all input and output arrays (for backward - compatibility with MATLAB and :func:`scipy.signal.lsim`). Default + compatibility with MATLAB and `scipy.signal.lsim`). Default value is False. - - return_x : bool, optional - If True, return the state vector when assigning to a tuple (default = - False). See :func:`forced_response` for more details. - + return_states (or return_x) : bool, optional + If True, return the state vector when assigning to a tuple + (default = False). See `forced_response` for more details. squeeze : bool, optional - By default, if a system is single-input, single-output (SISO) then the - output response is returned as a 1D array (indexed by time). If - squeeze=True, remove single-dimensional entries from the shape of the - output even if the system is not SISO. If squeeze=False, keep the - output as a 3D array (indexed by the output, input, and time) even if - the system is SISO. The default value can be set using - config.defaults['control.squeeze_time_response']. + By default, if a system is single-input, single-output (SISO) then + the output response is returned as a 1D array (indexed by time). + If `squeeze` = True, remove single-dimensional entries from the + shape of the output even if the system is not SISO. If + `squeeze` = False, keep the output as a 3D array (indexed by the + output, input, and time) even if the system is SISO. The default + value can be set using + `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 3D (indexed - by the output, trace, and time). - - * states (array): Time evolution of the state vector, represented as - either a 2D array indexed by state and time (if SISO) or a 3D array - indexed by state, trace, and time. Not affected by ``squeeze``. - - * inputs (array): Input(s) to the system, indexed in the same manner - as ``outputs``. - - 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``. + results : `TimeResponseData` or `TimeResponseList` + Time response represented as a `TimeResponseData` object or + list of `TimeResponseData` objects. See + `forced_response` for additional information. See Also -------- @@ -1370,16 +1417,47 @@ def step_response(sys, T=None, X0=0, input=None, output=None, T_num=None, """ from .lti import LTI - from .xferfcn import TransferFunction from .statesp import _convert_to_statespace + from .xferfcn import TransferFunction + + # Process keyword arguments + _process_kwargs(kwargs, _timeresp_aliases) + T = _process_param('timepts', timepts, kwargs, _timeresp_aliases) + X0 = _process_param( + 'initial_state', initial_state, kwargs, _timeresp_aliases, sigval=0.) + input = _process_param( + 'input_indices', input_indices, kwargs, _timeresp_aliases) + output = _process_param( + 'output_indices', output_indices, kwargs, _timeresp_aliases) + return_x = _process_param( + 'return_states', return_states, kwargs, _timeresp_aliases, + sigval=False) + T_num = _process_param( + 'timepts_num', timepts_num, kwargs, _timeresp_aliases) + + if kwargs: + raise TypeError("unrecognized keyword(s): ", str(kwargs)) # 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) + T = _default_time_vector(sysdata, N=T_num, tfinal=T, is_step=True) 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 passed a list, recursively call individual responses with given T + if isinstance(sysdata, (list, tuple)): + responses = [] + for sys in sysdata: + responses.append(step_response( + sys, T, initial_state=X0, input_indices=input, + output_indices=output, timepts_num=T_num, + transpose=transpose, return_states=return_x, squeeze=squeeze, + params=params)) + return TimeResponseList(responses) + else: + sys = sysdata + # If we are passed a transfer function and X0 is non-zero, warn the user if isinstance(sys, TransferFunction) and np.any(X0 != 0): warnings.warn( @@ -1391,6 +1469,21 @@ def step_response(sys, T=None, X0=0, input=None, output=None, T_num=None, if isinstance(sys, LTI) and sys.nstates is None: sys = _convert_to_statespace(sys) + # Only single input and output are allowed for now + if isinstance(input, (list, tuple)): + if len(input_indices) > 1: + raise NotImplementedError("list of input indices not allowed") + input = input[0] + elif isinstance(input, str): + raise NotImplementedError("named inputs not allowed") + + if isinstance(output, (list, tuple)): + if len(output_indices) > 1: + raise NotImplementedError("list of output indices not allowed") + output = output[0] + elif isinstance(output, str): + raise NotImplementedError("named outputs not allowed") + # 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 @@ -1438,25 +1531,26 @@ def step_response(sys, T=None, X0=0, input=None, output=None, T_num=None, trace_types=trace_types, plot_inputs=False) -def step_info(sysdata, T=None, T_num=None, yfinal=None, params=None, - SettlingTimeThreshold=0.02, RiseTimeLimits=(0.1, 0.9)): - """ - Step response characteristics (Rise time, Settling Time, Peak and others). +def step_info( + sysdata, timepts=None, timepts_num=None, final_output=None, + params=None, SettlingTimeThreshold=0.02, RiseTimeLimits=(0.1, 0.9), + **kwargs): + """Step response characteristics (rise time, settling time, etc). Parameters ---------- - sysdata : StateSpace or TransferFunction or array_like - The system data. Either LTI system to simulate (StateSpace, - TransferFunction), or a time series of step response data. - T : array_like or float, optional + sysdata : `StateSpace` or `TransferFunction` or array_like + The system data. Either LTI system to simulate (`StateSpace`, + `TransferFunction`), or a time series of step response data. + timepts (or T) : array_like or float, optional Time vector, or simulation time duration if a number (time vector is - autocomputed if not given, see :func:`step_response` for more detail). + auto-computed if not given, see `step_response` for more detail). Required, if sysdata is a time series of response data. - T_num : int, optional - Number of time steps to use in simulation if T is not provided as an - array; autocomputed if not given; ignored if sysdata is a + timepts_num (or T_num) : int, optional + Number of time steps to use in simulation if `T` is not provided as + an array; auto-computed if not given; ignored if sysdata is a discrete-time system or a time series or response data. - yfinal : scalar or array_like, optional + final_output (or yfinal) : scalar or array_like, optional Steady-state response. If not given, sysdata.dcgain() is used for systems to simulate and the last value of the the response data is used for a given time series of response data. Scalar for SISO, @@ -1464,43 +1558,33 @@ def step_info(sysdata, T=None, T_num=None, yfinal=None, params=None, params : dict, optional If system is a nonlinear I/O system, set parameter values. SettlingTimeThreshold : float, optional - Defines the error to compute settling time (default = 0.02) - RiseTimeLimits : tuple (lower_threshold, upper_theshold) - Defines the lower and upper threshold for RiseTime computation + Defines the error to compute settling time (default = 0.02). + RiseTimeLimits : tuple (lower_threshold, upper_threshold) + Defines the lower and upper threshold for RiseTime computation. Returns ------- S : dict or list of list of dict - If `sysdata` corresponds to a SISO system, S is a dictionary + If `sysdata` corresponds to a SISO system, `S` is a dictionary containing: - RiseTime: - Time from 10% to 90% of the steady-state value. - SettlingTime: - Time to enter inside a default error of 2% - SettlingMin: - Minimum value after RiseTime - SettlingMax: - Maximum value after RiseTime - Overshoot: - Percentage of the Peak relative to steady value - Undershoot: - Percentage of undershoot - Peak: - Absolute peak value - PeakTime: - time of the Peak - SteadyStateValue: - Steady-state value + - 'RiseTime': Time from 10% to 90% of the steady-state value. + - 'SettlingTime': Time to enter inside a default error of 2%. + - 'SettlingMin': Minimum value after `RiseTime`. + - 'SettlingMax': Maximum value after `RiseTime`. + - 'Overshoot': Percentage of the peak relative to steady value. + - 'Undershoot': Percentage of undershoot. + - 'Peak': Absolute peak value. + - 'PeakTime': Time that the first peak value is obtained. + - 'SteadyStateValue': Steady-state value. If `sysdata` corresponds to a MIMO system, `S` is a 2D list of dicts. - To get the step response characteristics from the j-th input to the - i-th output, access ``S[i][j]`` - + To get the step response characteristics from the jth input to the + ith output, access ``S[i][j]``. See Also -------- - step, lsim, initial, impulse + step_response, forced_response, initial_response, impulse_response Examples -------- @@ -1542,13 +1626,26 @@ def step_info(sysdata, T=None, T_num=None, yfinal=None, params=None, Peak: 1.209 PeakTime: 4.242 SteadyStateValue: -1.0 + """ + from .nlsys import NonlinearIOSystem from .statesp import StateSpace from .xferfcn import TransferFunction - from .nlsys import NonlinearIOSystem + + # Process keyword arguments + _process_kwargs(kwargs, _timeresp_aliases) + T = _process_param('timepts', timepts, kwargs, _timeresp_aliases) + T_num = _process_param( + 'timepts_num', timepts_num, kwargs, _timeresp_aliases) + yfinal = _process_param( + 'final_output', final_output, kwargs, _timeresp_aliases) + + if kwargs: + raise TypeError("unrecognized keyword(s): ", str(kwargs)) if isinstance(sysdata, (StateSpace, TransferFunction, NonlinearIOSystem)): - T, Yout = step_response(sysdata, T, squeeze=False, params=params) + T, Yout = step_response( + sysdata, T, timepts_num=T_num, squeeze=False, params=params) if yfinal: InfValues = np.atleast_2d(yfinal) else: @@ -1590,29 +1687,31 @@ def step_info(sysdata, T=None, T_num=None, yfinal=None, params=None, InfValue = InfValues[i, j] sgnInf = np.sign(InfValue.real) - rise_time: float = np.NaN - settling_time: float = np.NaN - settling_min: float = np.NaN - settling_max: float = np.NaN - peak_value: float = np.Inf - peak_time: float = np.Inf - undershoot: float = np.NaN - overshoot: float = np.NaN - steady_state_value: complex = np.NaN + rise_time: float = np.nan + settling_time: float = np.nan + settling_min: float = np.nan + settling_max: float = np.nan + peak_value: float = np.inf + peak_time: float = np.inf + undershoot: float = np.nan + overshoot: float = np.nan + steady_state_value: complex = np.nan if not np.isnan(InfValue) and not np.isinf(InfValue): # RiseTime - tr_lower_index = np.where( + tr_lower_index = np.nonzero( sgnInf * (yout - RiseTimeLimits[0] * InfValue) >= 0 )[0][0] - tr_upper_index = np.where( + tr_upper_index = np.nonzero( sgnInf * (yout - RiseTimeLimits[1] * InfValue) >= 0 )[0][0] rise_time = T[tr_upper_index] - T[tr_lower_index] # SettlingTime - settled = np.where( - np.abs(yout/InfValue-1) >= SettlingTimeThreshold)[0][-1]+1 + outside_threshold = np.nonzero( + np.abs(yout/InfValue - 1) >= SettlingTimeThreshold)[0] + settled = 0 if outside_threshold.size == 0 \ + else outside_threshold[-1] + 1 # MIMO systems can have unsettled channels without infinite # InfValue if settled < len(T): @@ -1646,15 +1745,15 @@ def step_info(sysdata, T=None, T_num=None, yfinal=None, params=None, steady_state_value = InfValue retij = { - 'RiseTime': rise_time, - 'SettlingTime': settling_time, - 'SettlingMin': settling_min, - 'SettlingMax': settling_max, - 'Overshoot': overshoot, - 'Undershoot': undershoot, - 'Peak': peak_value, - 'PeakTime': peak_time, - 'SteadyStateValue': steady_state_value + 'RiseTime': float(rise_time), + 'SettlingTime': float(settling_time), + 'SettlingMin': float(settling_min), + 'SettlingMax': float(settling_max), + 'Overshoot': float(overshoot), + 'Undershoot': float(undershoot), + 'Peak': float(peak_value), + 'PeakTime': float(peak_time), + 'SteadyStateValue': float(steady_state_value) } retrow.append(retij) @@ -1663,8 +1762,10 @@ def step_info(sysdata, T=None, T_num=None, yfinal=None, params=None, return ret[0][0] if retsiso else ret -def initial_response(sys, T=None, X0=0, output=None, T_num=None, params=None, - transpose=False, return_x=False, squeeze=None): +def initial_response( + sysdata, timepts=None, initial_state=0, output_indices=None, + timepts_num=None, params=None, transpose=False, return_states=False, + squeeze=None, **kwargs): # pylint: disable=W0622 """Compute the initial condition response for a linear system. @@ -1677,66 +1778,46 @@ def initial_response(sys, T=None, X0=0, output=None, T_num=None, params=None, Parameters ---------- - sys : StateSpace or TransferFunction - LTI system to simulate - - T : array_like or float, optional + sysdata : I/O system or list of I/O systems + I/O system(s) for which initial response is computed. + timepts (or T) : array_like or float, optional Time vector, or simulation time duration if a number (time vector is - autocomputed if not given; see :func:`step_response` for more detail) - - X0 : array_like or float, optional + auto-computed if not given; see `step_response` for more detail). + initial_state (or X0) : array_like or float, optional Initial condition (default = 0). Numbers are converted to constant arrays with the correct shape. - - output : int - Index of the output that will be used in this simulation. Set to None - to not trim outputs. - - T_num : int, optional - Number of time steps to use in simulation if T is not provided as an - array (autocomputed if not given); ignored if sys is discrete-time. - + output_indices (or output) : int + Index of the output that will be used in this simulation. Set + to None to not trim outputs. + timepts_num (or T_num) : int, optional + Number of time steps to use in simulation if `timepts` is not + provided as an array (auto-computed if not given); ignored if the + system is discrete time. params : dict, optional If system is a nonlinear I/O system, set parameter values. - transpose : bool, optional If True, transpose all input and output arrays (for backward - compatibility with MATLAB and :func:`scipy.signal.lsim`). Default + compatibility with MATLAB and `scipy.signal.lsim`). Default value is False. - - return_x : bool, optional - If True, return the state vector when assigning to a tuple (default = - False). See :func:`forced_response` for more details. - + return_states (or return_x) : bool, optional + If True, return the state vector when assigning to a tuple + (default = False). See `forced_response` for more details. squeeze : bool, optional - By default, if a system is single-input, single-output (SISO) then the - output response is returned as a 1D array (indexed by time). If - squeeze=True, remove single-dimensional entries from the shape of the - output even if the system is not SISO. If squeeze=False, keep the - output as a 2D array (indexed by the output number and time) even if - the system is SISO. The default value can be set using - config.defaults['control.squeeze_time_response']. + By default, if a system is single-input, single-output (SISO) then + the output response is returned as a 1D array (indexed by time). + If `squeeze` = True, remove single-dimensional entries from the + shape of the output even if the system is not SISO. If + `squeeze` = False, keep the output as a 2D array (indexed by the + output number and time) even if the system is SISO. The default + value can be set using + `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 the output and time). - - * states (array): Time evolution of the state vector, represented as - either a 2D array indexed by state and time (if SISO). Not affected - by ``squeeze``. - - 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``. + results : `TimeResponseData` or `TimeResponseList` + Time response represented as a `TimeResponseData` object or + list of `TimeResponseData` objects. See + `forced_response` for additional information. See Also -------- @@ -1753,15 +1834,41 @@ def initial_response(sys, T=None, X0=0, output=None, T_num=None, params=None, >>> T, yout = ct.initial_response(G) """ - from .lti import LTI + # Process keyword arguments + _process_kwargs(kwargs, _timeresp_aliases) + T = _process_param('timepts', timepts, kwargs, _timeresp_aliases) + X0 = _process_param( + 'initial_state', initial_state, kwargs, _timeresp_aliases, sigval=0.) + output = _process_param( + 'output_indices', output_indices, kwargs, _timeresp_aliases) + return_x = _process_param( + 'return_states', return_states, kwargs, _timeresp_aliases, + sigval=False) + T_num = _process_param( + 'timepts_num', timepts_num, kwargs, _timeresp_aliases) + + if kwargs: + raise TypeError("unrecognized keyword(s): ", str(kwargs)) # 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) + T = _default_time_vector(sysdata, 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") + # If passed a list, recursively call individual responses with given T + if isinstance(sysdata, (list, tuple)): + responses = [] + for sys in sysdata: + responses.append(initial_response( + sys, T, initial_state=X0, output_indices=output, + timepts_num=T_num, transpose=transpose, + return_states=return_x, squeeze=squeeze, params=params)) + return TimeResponseList(responses) + else: + sys = sysdata + # Compute the forced response response = forced_response(sys, T, 0, X0, params=params) @@ -1782,80 +1889,63 @@ def initial_response(sys, T=None, X0=0, output=None, T_num=None, params=None, transpose=transpose, return_x=return_x, squeeze=squeeze) -def impulse_response(sys, T=None, input=None, output=None, T_num=None, - transpose=False, return_x=False, squeeze=None): +def impulse_response( + sysdata, timepts=None, input_indices=None, output_indices=None, + timepts_num=None, transpose=False, return_states=False, squeeze=None, + **kwargs): # pylint: disable=W0622 """Compute the impulse response for a linear system. If the system has multiple inputs and/or multiple outputs, the impulse - response is computed for each input/output pair, with all other inputs set - to zero. Optionally, a single input and/or single output can be selected, - in which case all other inputs are set to 0 and all other outputs are - ignored. + response is computed for each input/output pair, with all other inputs + set to zero. Optionally, a single input and/or single output can be + selected, in which case all other inputs are set to 0 and all other + outputs are ignored. For information on the **shape** of parameters `T`, `X0` and return values `T`, `yout`, see :ref:`time-series-convention`. Parameters ---------- - sys : StateSpace, TransferFunction - LTI system to simulate - - T : array_like or float, optional + sysdata : I/O system or list of I/O systems + I/O system(s) for which impulse response is computed. + timepts (or T) : array_like or float, optional Time vector, or simulation time duration if a scalar (time vector is - autocomputed if not given; see :func:`step_response` for more detail) - - input : int, optional + auto-computed if not given; see `step_response` for more detail). + input_indices (or input) : int, optional Only compute the impulse response for the listed input. If not specified, the impulse responses for each independent input are computed. - - output : int, optional + output_indices (or output) : int, optional Only report the step response for the listed output. If not specified, all outputs are reported. - - T_num : int, optional - Number of time steps to use in simulation if T is not provided as an - array (autocomputed if not given); ignored if sys is discrete-time. - + timepts_num (or T_num) : int, optional + Number of time steps to use in simulation if `T` is not provided as + an array (auto-computed if not given); ignored if the system is + discrete time. transpose : bool, optional If True, transpose all input and output arrays (for backward - compatibility with MATLAB and :func:`scipy.signal.lsim`). Default + compatibility with MATLAB and `scipy.signal.lsim`). Default value is False. - - return_x : bool, optional - If True, return the state vector when assigning to a tuple (default = - False). See :func:`forced_response` for more details. - + return_states (or return_x) : bool, optional + If True, return the state vector when assigning to a tuple + (default = False). See `forced_response` for more details. squeeze : bool, optional - By default, if a system is single-input, single-output (SISO) then the - output response is returned as a 1D array (indexed by time). If - squeeze=True, remove single-dimensional entries from the shape of the - output even if the system is not SISO. If squeeze=False, keep the - output as a 2D array (indexed by the output number and time) even if - the system is SISO. The default value can be set using - config.defaults['control.squeeze_time_response']. + By default, if a system is single-input, single-output (SISO) then + the output response is returned as a 1D array (indexed by time). + If `squeeze` = True, remove single-dimensional entries from the + shape of the output even if the system is not SISO. If + `squeeze` = False, keep the output as a 2D array (indexed by the + output number and time) even if the system is SISO. The default + value can be set using + `config.defaults['control.squeeze_time_response']`. Returns ------- - results : TimeResponseData - Impulse 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 3D (indexed - by the output, trace, and time). - - * states (array): Time evolution of the state vector, represented as - either a 2D array indexed by state and time (if SISO) or a 3D array - indexed by state, trace, and time. Not affected by ``squeeze``. - - 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``. + results : `TimeResponseData` or `TimeResponseList` + Time response represented as a `TimeResponseData` object or + list of `TimeResponseData` objects. See + `forced_response` for additional information. See Also -------- @@ -1864,10 +1954,10 @@ def impulse_response(sys, T=None, 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 nonlinear - systems is computed using `input_output_response`. + response. For continuous-time systems, the initial condition is altered + to account for the initial impulse. For discrete-time systems, the + impulse is sized so that it has unit area. The impulse response for + nonlinear systems is not implemented. Examples -------- @@ -1875,31 +1965,72 @@ 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 from .lti import LTI + from .statesp import _convert_to_statespace - # Make sure we have an LTI system - if not isinstance(sys, LTI): - raise ValueError("system must be LTI system for impulse response") + # Process keyword arguments + _process_kwargs(kwargs, _timeresp_aliases) + T = _process_param('timepts', timepts, kwargs, _timeresp_aliases) + input = _process_param( + 'input_indices', input_indices, kwargs, _timeresp_aliases) + output = _process_param( + 'output_indices', output_indices, kwargs, _timeresp_aliases) + return_x = _process_param( + 'return_states', return_states, kwargs, _timeresp_aliases, + sigval=False) + T_num = _process_param( + 'timepts_num', timepts_num, kwargs, _timeresp_aliases) + + if kwargs: + raise TypeError("unrecognized keyword(s): ", str(kwargs)) # 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) + T = _default_time_vector(sysdata, 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") + # If passed a list, recursively call individual responses with given T + if isinstance(sysdata, (list, tuple)): + responses = [] + for sys in sysdata: + responses.append(impulse_response( + sys, T, input=input, output=output, T_num=T_num, + transpose=transpose, return_x=return_x, squeeze=squeeze)) + return TimeResponseList(responses) + else: + sys = sysdata + + # Make sure we have an LTI system + if not isinstance(sys, LTI): + raise ValueError("system must be LTI system for impulse response") + # Convert to state space so that we can simulate 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): - warnings.warn("System has direct feedthrough: ``D != 0``. The " - "infinite impulse at ``t=0`` does not appear in the " + warnings.warn("System has direct feedthrough: `D != 0`. The " + "infinite impulse at `t=0` does not appear in the " "output.\n" "Results may be meaningless!") + # Only single input and output are allowed for now + if isinstance(input, (list, tuple)): + if len(input_indices) > 1: + raise NotImplementedError("list of input indices not allowed") + input = input[0] + elif isinstance(input, str): + raise NotImplementedError("named inputs not allowed") + + if isinstance(output, (list, tuple)): + if len(output_indices) > 1: + raise NotImplementedError("list of output indices not allowed") + output = output[0] + elif isinstance(output, str): + raise NotImplementedError("named outputs not allowed") # Set up arrays to handle the output ninputs = sys.ninputs if input is None else 1 @@ -1924,7 +2055,7 @@ def impulse_response(sys, T=None, input=None, output=None, T_num=None, # # We can't put the impulse into U because there is no numerical # representation for it (infinitesimally short, infinitely high). - # See also: http://www.mathworks.com/support/tech-notes/1900/1901.html + # See also: https://www.mathworks.com/support/tech-notes/1900/1901.html # if isctime(sys): X0 = sys.B[:, i] @@ -1934,7 +2065,7 @@ def impulse_response(sys, T=None, input=None, output=None, T_num=None, U = np.zeros((sys.ninputs, T.size)) U[i, 0] = 1./sys.dt # unit area impulse - # Simulate the impulse response fo this input + # Simulate the impulse response for this input response = forced_response(sys, T, U, X0) # Store the output (and states) @@ -1942,7 +2073,7 @@ def impulse_response(sys, T=None, 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) @@ -1964,15 +2095,15 @@ def impulse_response(sys, T=None, input=None, output=None, T_num=None, # utility function to find time period and time increment using pole locations def _ideal_tfinal_and_dt(sys, is_step=True): - """helper function to compute ideal simulation duration tfinal and dt, the - time increment. Usually called by _default_time_vector, whose job it is to - choose a realistic time vector. Considers both poles and zeros. + """Helper function to compute ideal simulation duration tfinal and dt, + the time increment. Usually called by _default_time_vector, whose job + it is to choose a realistic time vector. Considers both poles and zeros. For discrete-time models, dt is inherent and only tfinal is computed. Parameters ---------- - sys : StateSpace or TransferFunction + sys : `StateSpace` or `TransferFunction` The system whose time response is to be computed is_step : bool Scales the dc value by the magnitude of the nonzero mode since @@ -1996,14 +2127,14 @@ def _ideal_tfinal_and_dt(sys, is_step=True): and the simulation would be unnecessarily long and the plot is virtually an L shape since the decay is so fast. - Instead, a modal decomposition in time domain hence a truncated ZIR and ZSR - can be used such that only the modes that have significant effect on the - time response are taken. But the sensitivity of the eigenvalues complicate - the matter since dlambda = with = 1. Hence we can only work - with simple poles with this formulation. See Golub, Van Loan Section 7.2.2 - for simple eigenvalue sensitivity about the nonunity of . The size of - the response is dependent on the size of the eigenshapes rather than the - eigenvalues themselves. + Instead, a modal decomposition in time domain hence a truncated ZIR and + ZSR can be used such that only the modes that have significant effect + on the time response are taken. But the sensitivity of the eigenvalues + complicate the matter since dlambda = with = 1. Hence + we can only work with simple poles with this formulation. See Golub, + Van Loan Section 7.2.2 for simple eigenvalue sensitivity about the + nonunity of . The size of the response is dependent on the size of + the eigenshapes rather than the eigenvalues themselves. By Ilhan Polat, with modifications by Sawyer Fuller to integrate into python-control 2020.08.17 @@ -2040,7 +2171,7 @@ def _ideal_tfinal_and_dt(sys, is_step=True): # zero - negligible effect on tfinal m_z = np.abs(p) < sqrt_eps p = p[~m_z] - # Negative reals- treated as oscillary mode + # Negative reals- treated as oscillatory mode m_nr = (p.real < 0) & (np.abs(p.imag) < sqrt_eps) p_nr, p = p[m_nr], p[~m_nr] if p_nr.size > 0: @@ -2130,11 +2261,22 @@ def _ideal_tfinal_and_dt(sys, is_step=True): return tfinal, dt -def _default_time_vector(sys, N=None, tfinal=None, is_step=True): +def _default_time_vector(sysdata, 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 """ + if system is discrete time, N is ignored """ from .lti import LTI + if isinstance(sysdata, (list, tuple)): + tfinal_max = N_max = 0 + for sys in sysdata: + timevec = _default_time_vector( + sys, N=N, tfinal=tfinal, is_step=is_step) + tfinal_max = max(tfinal_max, timevec[-1]) + N_max = max(N_max, timevec.size) + return np.linspace(0, tfinal_max, N_max, endpoint=True) + else: + sys = sysdata + # For non-LTI system, need tfinal if not isinstance(sys, LTI): if tfinal is None: diff --git a/control/xferfcn.py b/control/xferfcn.py index 099f64258..02ba72df4 100644 --- a/control/xferfcn.py +++ b/control/xferfcn.py @@ -1,70 +1,39 @@ -"""xferfcn.py +# xferfcn.py - transfer function class and related functions +# +# Initial author: Richard M. Murray +# Creation date: 24 May 2009 +# Pre-2014 revisions: Kevin K. Chen, Dec 2010 +# Use `git shortlog -n -s xferfcn.py` for full list of contributors -Transfer function representation and functions. +"""Transfer function class and related functions. -This file contains the TransferFunction class and also functions -that operate on transfer functions. This is the primary representation -for the python-control library. -""" - -"""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. - -Author: Richard M. Murray -Date: 24 May 09 -Revised: Kevin K. Chen, Dec 10 - -$Id$ +This module contains the `TransferFunction` class and also functions +that operate on transfer functions. """ -# External function declarations +import sys +from collections.abc import Iterable +from copy import deepcopy +from itertools import chain, product +from re import sub +from warnings import warn + import numpy as np -from numpy import angle, array, empty, finfo, ndarray, ones, \ - polyadd, polymul, polyval, roots, sqrt, zeros, squeeze, exp, pi, \ - where, delete, real, poly, nonzero import scipy as sp -from scipy.signal import tf2zpk, zpk2tf, cont2discrete +# float64 needed in eval() call +from numpy import float64 # noqa: F401 +from numpy import array, delete, empty, exp, finfo, ndarray, nonzero, ones, \ + poly, polyadd, polymul, polyval, real, roots, sqrt, where, zeros from scipy.signal import TransferFunction as signalTransferFunction -from copy import deepcopy -from warnings import warn -from itertools import chain -from re import sub -from .lti import LTI, _process_frequency_response -from .iosys import InputOutputSystem, common_timebase, isdtime, \ - _process_iosys_keywords +from scipy.signal import cont2discrete, tf2zpk, zpk2tf + +from . import bdalg, config from .exception import ControlMIMONotImplemented from .frdata import FrequencyResponseData -from . import config +from .iosys import InputOutputSystem, NamedSignal, _process_iosys_keywords, \ + _process_subsys_index, common_timebase +from .lti import LTI, _process_frequency_response __all__ = ['TransferFunction', 'tf', 'zpk', 'ss2tf', 'tfdata'] @@ -79,77 +48,113 @@ class TransferFunction(LTI): """TransferFunction(num, den[, dt]) - A class for representing transfer functions. + Transfer function representation for LTI input/output systems. The TransferFunction class is used to represent systems in transfer - function form. + function form. Transfer functions are usually created with the + `tf` factory function. Parameters ---------- - 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 + num : 2D list of coefficient arrays + Polynomial coefficients of the numerator. + den : 2D list of coefficient arrays + Polynomial coefficients of the denominator. 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). - display_format: None, 'poly' or 'zpk' - Set the display format used in printing the TransferFunction object. - Default behavior is polynomial display and can be changed by - changing config.defaults['xferfcn.display_format']. + 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). Attributes ---------- - ninputs, noutputs, nstates : int - Number of input, output and state variables. - num, den : 2D list of array - Polynomial coefficients of the numerator and denominator. - 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). + ninputs, noutputs : int + Number of input and output signals. + shape : tuple + 2-tuple of I/O system dimension, (noutputs, ninputs). + input_labels, output_labels : list of str + Names for the input and output signals. + name : string, optional + System name. + num_array, den_array : 2D array of lists of float + Numerator and denominator polynomial coefficients as 2D array + of 1D array objects (of varying length). + num_list, den_list : 2D list of 1D array + Numerator and denominator polynomial coefficients as 2D lists + of 1D array objects (of varying length). + display_format : None, 'poly' or 'zpk' + Display format used in printing the TransferFunction object. + Default behavior is polynomial display and can be changed by + changing `config.defaults['xferfcn.display_format']`. + s : `TransferFunction` + Represents the continuous-time differential operator. + z : `TransferFunction` + Represents the discrete-time delay operator. + + See Also + -------- + tf, InputOutputSystem, FrequencyResponseData Notes ----- - The attribues 'num' and 'den' are 2-D lists of arrays containing MIMO - numerator and denominator coefficients. For example, + The numerator and denominator polynomials are stored as 2D arrays + with each element containing a 1D array of coefficients. These data + structures can be retrieved using `num_array` and `den_array`. For + example, + + >>> sys.num_array[2, 5] # doctest: +SKIP + + gives the numerator of the transfer function from the 6th input to the + 3rd output. (Note: a single 3D array structure cannot be used because + the numerators and denominators can have different numbers of + coefficients in each entry.) - >>> num[2][5] = numpy.array([1., 4., 8.]) # doctest: +SKIP + The attributes `num_list` and `den_list` are properties that return + 2D nested lists containing MIMO numerator and denominator coefficients. + For example, - means that the numerator of the transfer function from the 6th input to - the 3rd output is set to s^2 + 4s + 8. + >>> sys.num_list[2][5] # doctest: +SKIP - A discrete time transfer function is created by specifying a nonzero + For legacy purposes, this list-based representation can also be + obtained using `num` and `den`. + + A discrete-time transfer function is created by specifying a nonzero 'timebase' dt when the 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 - Systems must have compatible timebases in order to be combined. A discrete - time system with unspecified sampling time (`dt = True`) can be combined - with a system having a specified sampling time; the result will be a - discrete time system with the sample time of the latter system. Similarly, - a system with timebase `None` can be combined with a system having any - timebase; the result will have the timebase of the latter system. - The default value of dt can be changed by changing the value of - ``control.config.defaults['control.default_dt']``. + Systems must have compatible timebases in order to be combined. A + discrete-time system with unspecified sampling time (`dt` = True) can + be combined with a system having a specified sampling time; the result + will be a discrete-time system with the sample time of the other + system. Similarly, a system with timebase None can be combined with a + system having any timebase; the result will have the timebase of the + other system. The default value of dt can be changed by changing the + value of `config.defaults['control.default_dt']`. A transfer function is callable and returns the value of the transfer function evaluated at a point in the complex plane. See - :meth:`~control.TransferFunction.__call__` for a more detailed description. + `TransferFunction.__call__` for a more detailed description. + + Subsystems corresponding to selected input/output pairs can be + created by indexing the transfer function:: - The TransferFunction class defines two constants ``s`` and ``z`` that + subsys = sys[output_spec, input_spec] + + The input and output specifications can be single integers, lists of + integers, or slices. In addition, the strings representing the names + of the signals can be used and will be replaced with the equivalent + signal offsets. + + The TransferFunction class defines two constants `s` and `z` that represent the differentiation and delay operators in continuous and - discrete time. These can be used to create variables that allow algebraic - creation of transfer functions. For example, + discrete time. These can be used to create variables that allow + algebraic creation of transfer functions. For example, - >>> s = ct.TransferFunction.s + >>> s = ct.TransferFunction.s # or ct.tf('s') >>> G = (s + 1)/(s**2 + 2*s + 1) """ @@ -158,13 +163,15 @@ def __init__(self, *args, **kwargs): Construct a transfer function. - The default constructor is TransferFunction(num, den), where num and - den are lists of lists of arrays containing polynomial coefficients. - To create a discrete time transfer funtion, use TransferFunction(num, - den, dt) where 'dt' is the sampling time (or True for unspecified - sampling time). To call the copy constructor, call - TransferFunction(sys), where sys is a TransferFunction object - (continuous or discrete). + The default constructor is TransferFunction(num, den), where num + and den are 2D arrays of arrays containing polynomial coefficients. + To create a discrete-time transfer function, use + ``TransferFunction(num, den, dt)`` where `dt` is the sampling time + (or True for unspecified sampling time). To call the copy + constructor, call ``TransferFunction(sys)``, where `sys` is a + TransferFunction object (continuous or discrete). + + See `TransferFunction` and `tf` for more information. """ # @@ -197,8 +204,8 @@ def __init__(self, *args, **kwargs): raise TypeError("Needs 1, 2 or 3 arguments; received %i." % len(args)) - num = _clean_part(num) - den = _clean_part(den) + num = _clean_part(num, "numerator") + den = _clean_part(den, "denominator") # # Process keyword arguments @@ -207,23 +214,30 @@ def __init__(self, *args, **kwargs): # get initialized when defaults are not fully initialized yet. # Use 'poly' in these cases. - self.display_format = kwargs.pop( - 'display_format', - config.defaults.get('xferfcn.display_format', 'poly')) - - if self.display_format not in ('poly', 'zpk'): + self.display_format = kwargs.pop('display_format', None) + if self.display_format not in (None, '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) + # + # Determine if the transfer function is static (memoryless) + # + # True if and only if all of the numerator and denominator + # polynomials of the (MIMO) transfer function are zeroth order. + # static = True - for col in num + den: - for poly in col: - if len(poly) > 1: + for arr in [num, den]: + # Iterate using refs_OK since num and den are ndarrays of ndarrays + for poly_ in np.nditer(arr, flags=['refs_ok']): + if poly_.item().size > 1: static = False + break + if not static: + break + self._static = static # retain for later usage defaults = args[0] if len(args) == 1 else \ - {'inputs': len(num[0]), 'outputs': len(num)} + {'inputs': num.shape[1], 'outputs': num.shape[0]} name, inputs, outputs, states, dt = _process_iosys_keywords( kwargs, defaults, static=static) @@ -239,27 +253,17 @@ def __init__(self, *args, **kwargs): # Check to make sure everything is consistent # # Make sure numerator and denominator matrices have consistent sizes - if self.ninputs != len(den[0]): + if self.ninputs != den.shape[1]: raise ValueError( "The numerator has %i input(s), but the denominator has " - "%i input(s)." % (self.ninputs, len(den[0]))) - if self.noutputs != len(den): + "%i input(s)." % (self.ninputs, den.shape[1])) + if self.noutputs != den.shape[0]: raise ValueError( "The numerator has %i output(s), but the denominator has " - "%i output(s)." % (self.noutputs, len(den))) + "%i output(s)." % (self.noutputs, den.shape[0])) # Additional checks/updates on structure of the transfer function for i in range(self.noutputs): - # Make sure that each row has the same number of columns - if len(num[i]) != self.ninputs: - raise ValueError( - "Row 0 of the numerator matrix has %i elements, but row " - "%i has %i." % (self.ninputs, i, len(num[i]))) - if len(den[i]) != self.ninputs: - raise ValueError( - "Row 0 of the denominator matrix has %i elements, but row " - "%i has %i." % (self.ninputs, i, len(den[i]))) - # Check for zeros in numerator or denominator # TODO: Right now these checks are only done during construction. # It might be worthwhile to think of a way to perform checks if the @@ -267,8 +271,8 @@ def __init__(self, *args, **kwargs): for j in range(self.ninputs): # Check that we don't have any zero denominators. zeroden = True - for k in den[i][j]: - if k: + for k in den[i, j]: + if np.any(k): zeroden = False break if zeroden: @@ -278,16 +282,16 @@ def __init__(self, *args, **kwargs): # If we have zero numerators, set the denominator to 1. zeronum = True - for k in num[i][j]: - if k: + for k in num[i, j]: + if np.any(k): zeronum = False break if zeronum: den[i][j] = ones(1) # Store the numerator and denominator - self.num = num - self.den = den + self.num_array = num + self.den_array = den # # Final processing @@ -312,92 +316,62 @@ def __init__(self, *args, **kwargs): #: :meta hide-value: noutputs = 1 - #: Transfer function numerator polynomial (array) - #: - #: The numerator of the transfer function is stored as an 2D list of - #: arrays containing MIMO numerator coefficients, indexed by outputs and - #: inputs. For example, ``num[2][5]`` is the array of coefficients for - #: the numerator of the transfer function from the sixth input to the - #: third output. + #: Numerator polynomial coefficients as a 2D array of 1D coefficients. #: #: :meta hide-value: - num = [[0]] + num_array = None - #: Transfer function denominator polynomial (array) - #: - #: The numerator of the transfer function is store as an 2D list of - #: arrays containing MIMO numerator coefficients, indexed by outputs and - #: inputs. For example, ``den[2][5]`` is the array of coefficients for - #: the denominator of the transfer function from the sixth input to the - #: third output. + #: Denominator polynomial coefficients as a 2D array of 1D coefficients. #: #: :meta hide-value: - den = [[0]] + den_array = None - def __call__(self, x, squeeze=None, warn_infinite=True): - """Evaluate system's transfer function at complex frequencies. + # Numerator and denominator as lists of lists of lists + @property + def num_list(self): + """Numerator polynomial (as 2D nested list of 1D arrays).""" + return self.num_array.tolist() - Returns the complex frequency response `sys(x)` where `x` is `s` for - continuous-time systems and `z` for discrete-time systems. + @property + def den_list(self): + """Denominator polynomial (as 2D nested lists of 1D arrays).""" + return self.den_array.tolist() - In general the system may be multiple input, multiple output - (MIMO), where `m = self.ninputs` number of inputs and `p = - self.noutputs` number of outputs. + # Legacy versions (TODO: add DeprecationWarning in a later release?) + num, den = num_list, den_list - To evaluate at a frequency omega in radians per second, enter - ``x = omega * 1j``, for continuous-time systems, or - ``x = exp(1j * omega * dt)`` for discrete-time systems. Or use - :meth:`TransferFunction.frequency_response`. + def __call__(self, x, squeeze=None, warn_infinite=True): + """Evaluate system transfer function at point in complex plane. - Parameters - ---------- - x : complex or complex 1D array_like - Complex frequencies - 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']. - If True and the system is single-input single-output (SISO), - return a 1D array rather than a 3D array. Default value (True) - set by config.defaults['control.squeeze_frequency_response']. - warn_infinite : bool, optional - If set to `False`, turn off divide by zero warning. + Returns the value of the system's transfer function at a point `x` + in the complex plane, where `x` is `s` for continuous-time systems + and `z` for discrete-time systems. - Returns - ------- - fresp : complex ndarray - The frequency response of the system. If the system is SISO and - squeeze is not True, the shape of the array matches the shape of - omega. If the system is not SISO or squeeze is False, the first - two dimensions of the array are indices for the output and input - and the remaining dimensions match omega. If ``squeeze`` is True - then single-dimensional axes are removed. + See `LTI.__call__` for details. """ out = self.horner(x, warn_infinite=warn_infinite) return _process_frequency_response(self, x, out, squeeze=squeeze) def horner(self, x, warn_infinite=True): - """Evaluate system's transfer function at complex frequency - using Horner's method. - - Evaluates `sys(x)` where `x` is `s` for continuous-time systems and `z` - for discrete-time systems. + """Evaluate value of transfer function using Horner's method. - Expects inputs and outputs to be formatted correctly. Use ``sys(x)`` - for a more user-friendly interface. + Evaluates ``sys(x)`` where `x` is a complex number `s` for + continuous-time systems and `z` for discrete-time systems. Expects + inputs and outputs to be formatted correctly. Use ``sys(x)`` for a + more user-friendly interface. Parameters ---------- - x : complex array_like or complex scalar - Complex frequencies + x : complex + Complex frequency at which the transfer function is evaluated. + + warn_infinite : bool, optional + If True (default), generate a warning if `x` is a pole. Returns ------- - output : (self.noutputs, self.ninputs, len(x)) complex ndarray - Frequency response + complex """ # Make sure the argument is a 1D array of complex numbers @@ -414,8 +388,8 @@ def horner(self, x, warn_infinite=True): with np.errstate(all='warn' if warn_infinite else 'ignore'): for i in range(self.noutputs): for j in range(self.ninputs): - out[i][j] = (polyval(self.num[i][j], x_arr) / - polyval(self.den[i][j], x_arr)) + out[i][j] = (polyval(self.num_array[i, j], x_arr) / + polyval(self.den_array[i, j], x_arr)) return out def _truncatecoeff(self): @@ -428,14 +402,14 @@ def _truncatecoeff(self): """ # Beware: this is a shallow copy. This should be okay. - data = [self.num, self.den] + data = [self.num_array, self.den_array] for p in range(len(data)): for i in range(self.noutputs): for j in range(self.ninputs): # Find the first nontrivial coefficient. nonzero = None - for k in range(data[p][i][j].size): - if data[p][i][j][k]: + for k in range(data[p][i, j].size): + if data[p][i, j][k]: nonzero = k break @@ -445,7 +419,7 @@ def _truncatecoeff(self): else: # Truncate the trivial coefficients. data[p][i][j] = data[p][i][j][nonzero:] - [self.num, self.den] = data + [self.num_array, self.den_array] = data def __str__(self, var=None): """String representation of the transfer function. @@ -453,28 +427,34 @@ def __str__(self, var=None): Based on the display_format property, the output will be formatted as either polynomials or in zpk form. """ + display_format = config.defaults['xferfcn.display_format'] if \ + self.display_format is None else self.display_format mimo = not self.issiso() if var is None: var = 's' if self.isctime() else 'z' - outstr = f"{InputOutputSystem.__str__(self)}\n" + outstr = f"{InputOutputSystem.__str__(self)}" for ni in range(self.ninputs): for no in range(self.noutputs): + outstr += "\n" if mimo: - outstr += "\nInput %i to output %i:" % (ni + 1, no + 1) + outstr += "\nInput %i to output %i:\n" % (ni + 1, no + 1) # Convert the numerator and denominator polynomials to strings. - if self.display_format == 'poly': - 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': - num = self.num[no][ni] + if display_format == 'poly': + numstr = _tf_polynomial_to_string( + self.num_array[no, ni], var=var) + denstr = _tf_polynomial_to_string( + self.den_array[no, ni], var=var) + elif display_format == 'zpk': + num = self.num_array[no, ni] if num.size == 1 and num.item() == 0: # Catch a special case that SciPy doesn't handle - z, p, k = tf2zpk([1.], self.den[no][ni]) + z, p, k = tf2zpk([1.], self.den_array[no, ni]) k = 0 else: - z, p, k = tf2zpk(self.num[no][ni], self.den[no][ni]) + z, p, k = tf2zpk( + self.num[no][ni], self.den_array[no, ni]) numstr = _tf_factorized_polynomial_to_string( z, gain=k, var=var) denstr = _tf_factorized_polynomial_to_string(p, var=var) @@ -489,37 +469,48 @@ def __str__(self, var=None): if len(denstr) < dashcount: denstr = ' ' * ((dashcount - len(denstr)) // 2) + denstr - outstr += "\n" + numstr + "\n" + dashes + "\n" + denstr + "\n" - - # If this is a strict discrete time system, print the sampling time - if type(self.dt) != bool and self.isdtime(strict=True): - outstr += "\ndt = " + str(self.dt) + "\n" + outstr += "\n " + numstr + "\n " + dashes + "\n " + denstr return outstr - # represent to implement a re-loadable version - def __repr__(self): - """Print transfer function in loadable form""" + def _repr_eval_(self): + # Loadable format if self.issiso(): - return "TransferFunction({num}, {den}{dt})".format( - num=self.num[0][0].__repr__(), den=self.den[0][0].__repr__(), - dt=', {}'.format(self.dt) if isdtime(self, strict=True) - else '') + out = "TransferFunction(\n{num},\n{den}".format( + num=self.num_array[0, 0].__repr__(), + den=self.den_array[0, 0].__repr__()) else: - return "TransferFunction({num}, {den}{dt})".format( - num=self.num.__repr__(), den=self.den.__repr__(), - dt=', {}'.format(self.dt) if isdtime(self, strict=True) - else '') - - def _repr_latex_(self, var=None): - """LaTeX representation of transfer function, for Jupyter notebook""" + out = "TransferFunction(\n[" + for entry in [self.num_array, self.den_array]: + for i in range(self.noutputs): + out += "[" if i == 0 else "\n [" + linelen = 0 + for j in range(self.ninputs): + out += ", " if j != 0 else "" + numstr = np.array_repr(entry[i, j]) + if linelen + len(numstr) > 72: + out += "\n " + linelen = 0 + out += numstr + linelen += len(numstr) + out += "]," if i < self.noutputs - 1 else "]" + out += "],\n[" if entry is self.num_array else "]" + + out += super()._dt_repr(separator=",\n", space="") + if len(labels := self._label_repr()) > 0: + out += ",\n" + labels + + out += ")" + return out + def _repr_html_(self, var=None): + """HTML/LaTeX representation of xferfcn, for Jupyter notebook.""" + display_format = config.defaults['xferfcn.display_format'] if \ + self.display_format is None else self.display_format mimo = not self.issiso() - if var is None: var = 's' if self.isctime() else 'z' - - out = ['$$'] + out = [super()._repr_info_(html=True), '\n$$'] if mimo: out.append(r"\begin{bmatrix}") @@ -527,11 +518,14 @@ def _repr_latex_(self, var=None): 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[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[no][ni], self.den[no][ni]) + if display_format == 'poly': + numstr = _tf_polynomial_to_string( + self.num_array[no, ni], var=var) + denstr = _tf_polynomial_to_string( + self.den_array[no, ni], var=var) + elif display_format == 'zpk': + z, p, k = tf2zpk( + self.num_array[no, ni], self.den_array[no, ni]) numstr = _tf_factorized_polynomial_to_string( z, gain=k, var=var) denstr = _tf_factorized_polynomial_to_string(p, var=var) @@ -539,7 +533,7 @@ def _repr_latex_(self, var=None): numstr = _tf_string_to_latex(numstr, var=var) denstr = _tf_string_to_latex(denstr, var=var) - out += [r"\frac{", numstr, "}{", denstr, "}"] + out += [r"\dfrac{", numstr, "}{", denstr, "}"] if mimo and ni < self.ninputs - 1: out.append("&") @@ -550,20 +544,16 @@ def _repr_latex_(self, var=None): if mimo: out.append(r" \end{bmatrix}") - # 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: - out += [r"\quad dt = ", str(self.dt)] - out.append("$$") return ''.join(out) def __neg__(self): """Negate a transfer function.""" - num = deepcopy(self.num) + num = deepcopy(self.num_array) for i in range(self.noutputs): for j in range(self.ninputs): - num[i][j] *= -1 + num[i, j] *= -1 return TransferFunction(num, self.den, self.dt) def __add__(self, other): @@ -580,6 +570,12 @@ def __add__(self, other): if not isinstance(other, TransferFunction): return NotImplemented + # Promote SISO object to compatible dimension + if self.issiso() and not other.issiso(): + self = np.ones((other.noutputs, other.ninputs)) * self + elif not self.issiso() and other.issiso(): + other = np.ones((self.noutputs, self.ninputs)) * other + # Check that the input-output sizes are consistent. if self.ninputs != other.ninputs: raise ValueError( @@ -593,14 +589,14 @@ def __add__(self, other): dt = common_timebase(self.dt, other.dt) # Preallocate the numerator and denominator of the sum. - num = [[[] for j in range(self.ninputs)] for i in range(self.noutputs)] - den = [[[] for j in range(self.ninputs)] for i in range(self.noutputs)] + num = _create_poly_array((self.noutputs, self.ninputs)) + den = _create_poly_array((self.noutputs, self.ninputs)) for i in range(self.noutputs): for j in range(self.ninputs): - num[i][j], den[i][j] = _add_siso( - self.num[i][j], self.den[i][j], - other.num[i][j], other.den[i][j]) + num[i, j], den[i, j] = _add_siso( + self.num_array[i, j], self.den_array[i, j], + other.num_array[i, j], other.den_array[i, j]) return TransferFunction(num, den, dt) @@ -621,28 +617,34 @@ def __mul__(self, other): from .statesp import StateSpace # Convert the second argument to a transfer function. - if isinstance(other, StateSpace): + if isinstance(other, (StateSpace, np.ndarray)): 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) + elif isinstance(other, (int, float, complex, np.number)): + # Multiply by a scaled identity matrix (transfer function) + other = _convert_to_transfer_function(np.eye(self.ninputs) * other) if not isinstance(other, TransferFunction): return NotImplemented + # Promote SISO object to compatible dimension + if self.issiso() and not other.issiso(): + self = bdalg.append(*([self] * other.noutputs)) + elif not self.issiso() and other.issiso(): + other = bdalg.append(*([other] * self.ninputs)) + # Check that the input-output sizes are consistent. 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)) - inputs = other.ninputs - outputs = self.noutputs + ninputs = other.ninputs + noutputs = self.noutputs dt = common_timebase(self.dt, other.dt) # Preallocate the numerator and denominator of the sum. - num = [[[0] for j in range(inputs)] for i in range(outputs)] - den = [[[1] for j in range(inputs)] for i in range(outputs)] + num = _create_poly_array((noutputs, ninputs), [0]) + den = _create_poly_array((noutputs, ninputs), [1]) # Temporary storage for the summands needed to find the (i, j)th # element of the product. @@ -650,17 +652,16 @@ def __mul__(self, other): den_summand = [[] for k in range(self.ninputs)] # Multiply & add. - for row in range(outputs): - for col in range(inputs): + for row in range(noutputs): + for col in range(ninputs): for k in range(self.ninputs): num_summand[k] = polymul( - self.num[row][k], other.num[k][col]) + self.num_array[row, k], other.num_array[k, col]) den_summand[k] = polymul( - self.den[row][k], other.den[k][col]) - num[row][col], den[row][col] = _add_siso( - num[row][col], den[row][col], + self.den_array[row, k], other.den_array[k, col]) + num[row, col], den[row, col] = _add_siso( + num[row, col], den[row, col], num_summand[k], den_summand[k]) - return TransferFunction(num, den, dt) def __rmul__(self, other): @@ -668,25 +669,31 @@ def __rmul__(self, other): # 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) + # Multiply by a scaled identity matrix (transfer function) + other = _convert_to_transfer_function(np.eye(self.noutputs) * other) else: other = _convert_to_transfer_function(other) + # Promote SISO object to compatible dimension + if self.issiso() and not other.issiso(): + self = bdalg.append(*([self] * other.ninputs)) + elif not self.issiso() and other.issiso(): + other = bdalg.append(*([other] * self.noutputs)) + # Check that the input-output sizes are consistent. if other.ninputs != self.noutputs: raise ValueError( "C = A * B: A has %i column(s) (input(s)), but B has %i " "row(s)\n(output(s))." % (other.ninputs, self.noutputs)) - inputs = self.ninputs - outputs = other.noutputs + ninputs = self.ninputs + noutputs = other.noutputs dt = common_timebase(self.dt, other.dt) # Preallocate the numerator and denominator of the sum. - num = [[[0] for j in range(inputs)] for i in range(outputs)] - den = [[[1] for j in range(inputs)] for i in range(outputs)] + num = _create_poly_array((noutputs, ninputs), [0]) + den = _create_poly_array((noutputs, ninputs), [1]) # Temporary storage for the summands needed to find the # (i, j)th element @@ -694,13 +701,15 @@ def __rmul__(self, other): num_summand = [[] for k in range(other.ninputs)] den_summand = [[] for k in range(other.ninputs)] - for i in range(outputs): # Iterate through rows of product. - for j in range(inputs): # Iterate through columns of product. + for i in range(noutputs): # Iterate through rows of product. + for j in range(ninputs): # Iterate through columns of product. for k in range(other.ninputs): # Multiply & add. - num_summand[k] = polymul(other.num[i][k], self.num[k][j]) - den_summand[k] = polymul(other.den[i][k], self.den[k][j]) + num_summand[k] = polymul( + other.num_array[i, k], self.num_array[k, j]) + den_summand[k] = polymul( + other.den_array[i, k], self.den_array[k, j]) num[i][j], den[i][j] = _add_siso( - num[i][j], den[i][j], + num[i, j], den[i, j], num_summand[k], den_summand[k]) return TransferFunction(num, den, dt) @@ -710,22 +719,25 @@ def __truediv__(self, other): """Divide two LTI objects.""" if isinstance(other, (int, float, complex, np.number)): - other = _convert_to_transfer_function( - other, inputs=self.ninputs, - outputs=self.ninputs) + # Multiply by a scaled identity matrix (transfer function) + other = _convert_to_transfer_function(np.eye(self.ninputs) * other) else: other = _convert_to_transfer_function(other) + # Special case for SISO ``other`` + if not self.issiso() and other.issiso(): + other = bdalg.append(*([other**-1] * self.noutputs)) + return self * other + if (self.ninputs > 1 or self.noutputs > 1 or other.ninputs > 1 or other.noutputs > 1): - raise NotImplementedError( - "TransferFunction.__truediv__ is currently \ - implemented only for SISO systems.") - + # TransferFunction.__truediv__ is currently implemented only for + # SISO systems. + return NotImplemented dt = common_timebase(self.dt, other.dt) - num = polymul(self.num[0][0], other.den[0][0]) - den = polymul(self.den[0][0], other.num[0][0]) + num = polymul(self.num_array[0, 0], other.den_array[0, 0]) + den = polymul(self.den_array[0, 0], other.num_array[0, 0]) return TransferFunction(num, den, dt) @@ -739,11 +751,16 @@ def __rtruediv__(self, other): else: other = _convert_to_transfer_function(other) + # Special case for SISO ``self`` + if self.issiso() and not other.issiso(): + self = bdalg.append(*([self**-1] * other.ninputs)) + return other * self + if (self.ninputs > 1 or self.noutputs > 1 or other.ninputs > 1 or other.noutputs > 1): - raise NotImplementedError( - "TransferFunction.__rtruediv__ is currently implemented only " - "for SISO systems.") + # TransferFunction.__rtruediv__ is currently implemented only for + # SISO systems + return NotImplemented return other / self @@ -758,43 +775,29 @@ def __pow__(self, other): return (TransferFunction([1], [1]) / self) * (self**(other + 1)) def __getitem__(self, key): - key1, key2 = key - - # pre-process - if isinstance(key1, int): - key1 = slice(key1, key1 + 1, 1) - if isinstance(key2, int): - key2 = slice(key2, key2 + 1, 1) - # dim1 - start1, stop1, step1 = key1.start, key1.stop, key1.step - if step1 is None: - step1 = 1 - if start1 is None: - start1 = 0 - if stop1 is None: - stop1 = len(self.num) - # dim1 - start2, stop2, step2 = key2.start, key2.stop, key2.step - if step2 is None: - step2 = 1 - if start2 is None: - start2 = 0 - if stop2 is None: - stop2 = len(self.num[0]) - - num, den = [], [] - for i in range(start1, stop1, step1): - num_i = [] - den_i = [] - for j in range(start2, stop2, step2): - num_i.append(self.num[i][j]) - den_i.append(self.den[i][j]) - num.append(num_i) - den.append(den_i) - - # 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)] + if not isinstance(key, Iterable) or len(key) != 2: + raise IOError( + "must provide indices of length 2 for transfer functions") + + # Convert signal names to integer offsets (via NamedSignal object) + iomap = NamedSignal( + np.empty((self.noutputs, self.ninputs)), + self.output_labels, self.input_labels) + indices = iomap._parse_key(key, level=1) # ignore index checks + outdx, outputs = _process_subsys_index( + indices[0], self.output_labels, slice_to_list=True) + inpdx, inputs = _process_subsys_index( + indices[1], self.input_labels, slice_to_list=True) + + # Construct the transfer function for the subsystem + num = _create_poly_array((len(outputs), len(inputs))) + den = _create_poly_array(num.shape) + for row, i in enumerate(outdx): + for col, j in enumerate(inpdx): + num[row, col] = self.num_array[i, j] + den[row, col] = self.den_array[i, j] + col += 1 + row += 1 # Create the system name sysname = config.defaults['iosys.indexed_system_name_prefix'] + \ @@ -804,17 +807,17 @@ def __getitem__(self, key): num, den, self.dt, inputs=inputs, outputs=outputs, name=sysname) def freqresp(self, omega): - """(deprecated) Evaluate transfer function at complex frequencies. + """Evaluate transfer function at complex frequencies. .. deprecated::0.9.0 - Method has been given the more pythonic name - :meth:`TransferFunction.frequency_response`. Or use - :func:`freqresp` in the MATLAB compatibility module. + Method has been given the more Pythonic name + `TransferFunction.frequency_response`. Or use + `freqresp` in the MATLAB compatibility module. """ warn("TransferFunction.freqresp(omega) will be removed in a " "future release of python-control; use " "sys.frequency_response(omega), or freqresp(sys, omega) in the " - "MATLAB compatibility module instead", DeprecationWarning) + "MATLAB compatibility module instead", FutureWarning) return self.frequency_response(omega) def poles(self): @@ -833,10 +836,20 @@ def zeros(self): "for SISO systems.") else: # for now, just give zeros of a SISO tf - return roots(self.num[0][0]).astype(complex) + return roots(self.num_array[0, 0]).astype(complex) def feedback(self, other=1, sign=-1): - """Feedback interconnection between two LTI objects.""" + """Feedback interconnection between two LTI objects. + + Parameters + ---------- + other : `InputOutputSystem` + System in the feedback path. + + sign : float, optional + Gain to use in feedback path. Defaults to -1. + + """ other = _convert_to_transfer_function(other) if (self.ninputs > 1 or self.noutputs > 1 or @@ -847,10 +860,10 @@ def feedback(self, other=1, sign=-1): "MIMO systems.") dt = common_timebase(self.dt, other.dt) - num1 = self.num[0][0] - den1 = self.den[0][0] - num2 = other.num[0][0] - den2 = other.den[0][0] + num1 = self.num_array[0, 0] + den1 = self.den_array[0, 0] + num2 = other.num_array[0, 0] + den2 = other.den_array[0, 0] num = polymul(num1, den2) den = polyadd(polymul(den2, den1), -sign * polymul(num2, num1)) @@ -862,8 +875,41 @@ def feedback(self, other=1, sign=-1): # But this does not work correctly because the state size will be too # large. + def append(self, other): + """Append a second model to the present model. + + The second model is converted to a transfer function if necessary, + inputs and outputs are appended and their order is preserved. + + Parameters + ---------- + other : `StateSpace` or `TransferFunction` + System to be appended. + + Returns + ------- + sys : `TransferFunction` + System model with `other` appended to `self`. + + """ + other = _convert_to_transfer_function(other) + + new_tf = bdalg.combine_tf([ + [self, np.zeros((self.noutputs, other.ninputs))], + [np.zeros((other.noutputs, self.ninputs)), other], + ]) + + return new_tf + def minreal(self, tol=None): - """Remove cancelling pole/zero pairs from a transfer function""" + """Remove canceling pole/zero pairs from a transfer function. + + Parameters + ---------- + tol : float + Tolerance for determining whether poles and zeros overlap. + + """ # based on octave minreal # default accuracy @@ -871,17 +917,17 @@ def minreal(self, tol=None): sqrt_eps = sqrt(float_info.epsilon) # pre-allocate arrays - num = [[[] for j in range(self.ninputs)] for i in range(self.noutputs)] - den = [[[] for j in range(self.ninputs)] for i in range(self.noutputs)] + num = _create_poly_array((self.noutputs, self.ninputs)) + den = _create_poly_array((self.noutputs, self.ninputs)) for i in range(self.noutputs): for j in range(self.ninputs): # split up in zeros, poles and gain newzeros = [] - zeros = roots(self.num[i][j]) - poles = roots(self.den[i][j]) - gain = self.num[i][j][0] / self.den[i][j][0] + zeros = roots(self.num_array[i, j]) + poles = roots(self.den_array[i, j]) + gain = self.num_array[i, j][0] / self.den_array[i, j][0] # check all zeros for z in zeros: @@ -896,21 +942,21 @@ def minreal(self, tol=None): newzeros.append(z) # poly([]) returns a scalar, but we always want a 1d array - num[i][j] = np.atleast_1d(gain * real(poly(newzeros))) - den[i][j] = np.atleast_1d(real(poly(poles))) + num[i, j] = np.atleast_1d(gain * real(poly(newzeros))) + den[i, j] = np.atleast_1d(real(poly(poles))) # end result return TransferFunction(num, den, self.dt) def returnScipySignalLTI(self, strict=True): - """Return a list of a list of :class:`scipy.signal.lti` objects. + """Return a 2D array of `scipy.signal.lti` objects. For instance, >>> out = tfobject.returnScipySignalLTI() # doctest: +SKIP - >>> out[3][5] # doctest: +SKIP + >>> out[3, 5] # doctest: +SKIP - is a :class:`scipy.signal.lti` object corresponding to the + is a `scipy.signal.lti` object corresponding to the transfer function from the 6th input to the 4th output. Parameters @@ -920,15 +966,15 @@ def returnScipySignalLTI(self, strict=True): The timebase `tfobject.dt` cannot be None; it must be continuous (0) or discrete (True or > 0). False: - if `tfobject.dt` is None, continuous time - :class:`scipy.signal.lti` objects are returned + if `tfobject.dt` is None, continuous-time + `scipy.signal.lti` objects are returned Returns ------- - out : list of list of :class:`scipy.signal.TransferFunction` - continuous time (inheriting from :class:`scipy.signal.lti`) - or discrete time (inheriting from :class:`scipy.signal.dlti`) - SISO objects + out : list of list of `scipy.signal.TransferFunction` + Continuous time (inheriting from `scipy.signal.lti`) + or discrete time (inheriting from `scipy.signal.dlti`) + SISO objects. """ if strict and self.dt is None: raise ValueError("with strict=True, dt cannot be None") @@ -936,7 +982,7 @@ def returnScipySignalLTI(self, strict=True): if self.dt: kwdt = {'dt': self.dt} else: - # scipy convention for continuous time lti systems: call without + # scipy convention for continuous-time LTI systems: call without # dt keyword argument kwdt = {} @@ -952,8 +998,7 @@ def returnScipySignalLTI(self, strict=True): return out def _common_den(self, imag_tol=None, allow_nonproper=False): - """ - Compute MIMO common denominators; return them and adjusted numerators. + """Compute MIMO common denominators; return them and adjusted numerators. This function computes the denominators per input containing all the poles of sys.den, and reports it as the array den. The @@ -973,27 +1018,23 @@ def _common_den(self, imag_tol=None, allow_nonproper=False): Returns ------- num: array - n by n by kd where n = max(sys.noutputs,sys.ninputs) - kd = max(denorder)+1 - Multi-dimensional array of numerator coefficients. num[i,j] - gives the numerator coefficient array for the ith output and jth - input; padded for use in td04ad ('C' option); matches the - denorder order; highest coefficient starts on the left. - If allow_nonproper=True and the order of a numerator exceeds the - order of the common denominator, num will be returned as None - + Multi-dimensional array of numerator coefficients with shape + (n, n, kd) array, where n = max(sys.noutputs, sys.ninputs), kd + = max(denorder) + 1. `num[i,j]` gives the numerator coefficient + array for the ith output and jth input; padded for use in + td04ad ('C' option); matches the denorder order; highest + coefficient starts on the left. If `allow_nonproper` = True + and the order of a numerator exceeds the order of the common + denominator, `num` will be returned as None. den: array - sys.ninputs by kd Multi-dimensional array of coefficients for common denominator - polynomial, one row per input. The array is prepared for use in - slycot td04ad, the first element is the highest-order polynomial - coefficient of s, matching the order in denorder. If denorder < - number of columns in den, the den is padded with zeros. - + polynomial with shape (sys.ninputs, kd) (one row per + input). The array is prepared for use in slycot td04ad, the + first element is the highest-order polynomial coefficient of + `s`, matching the order in denorder. If denorder < number of + columns in den, the den is padded with zeros. denorder: array of int, orders of den, one per input - - Examples -------- >>> num, den, denorder = sys._common_den() # doctest: +SKIP @@ -1077,7 +1118,7 @@ def _common_den(self, imag_tol=None, allow_nonproper=False): # create the denominator matching this input # coefficients should be padded on right, ending at maxindex maxindex = len(poles[j]) - den[j, :maxindex+1] = poly(poles[j]) + den[j, :maxindex+1] = poly(poles[j]).real denorder[j] = maxindex # now create the numerator, also padded on the right @@ -1093,7 +1134,7 @@ def _common_den(self, imag_tol=None, allow_nonproper=False): numpoly = poleset[i][j][2] * np.atleast_1d(poly(nwzeros)) # td04ad expects a proper transfer function. If the - # numerater has a higher order than the denominator, the + # numerator has a higher order than the denominator, the # padding will fail if len(numpoly) > maxindex + 1: if allow_nonproper: @@ -1107,7 +1148,8 @@ def _common_den(self, imag_tol=None, allow_nonproper=False): # numerator polynomial should be padded on left and right # ending at maxindex to line up with what td04ad expects. - num[i, j, maxindex+1-len(numpoly):maxindex+1] = numpoly + num[i, j, maxindex+1-len(numpoly):maxindex+1] = \ + numpoly.real # print(num[i, j]) if havenonproper: @@ -1117,7 +1159,7 @@ def _common_den(self, imag_tol=None, allow_nonproper=False): 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 + """Convert a continuous-time system to discrete time. Creates a discrete-time system from a continuous-time system by sampling. Multiple methods of conversion are supported. @@ -1125,56 +1167,58 @@ def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None, Parameters ---------- Ts : float - Sampling period - method : {"gbt", "bilinear", "euler", "backward_diff", - "zoh", "matched"} + Sampling period. + method : {'gbt', 'bilinear', 'euler', 'backward_diff', 'zoh', 'matched'} Method to use for sampling: - * gbt: generalized bilinear transformation - * 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) + * 'gbt': generalized bilinear transformation + * 'backward_diff': Backwards difference ('gbt' with alpha=1.0) + * 'bilinear' (or 'tustin'): Tustin's approximation ('gbt' with + alpha=0.5) + * 'euler': Euler (or forward difference) method ('gbt' with + alpha=0) + * 'matched': pole-zero match method + * '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. See :func:`scipy.signal.cont2discrete`. + The generalized bilinear transformation weighting parameter, + which should only be specified with `method` = 'gbt', and is + ignored otherwise. See `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 (the gain=1 crossover frequency, - for example). Should only be specified with method='bilinear' or - 'gbt' with alpha=0.5 and ignored otherwise. + 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. 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 + Set the name of the sampled system. If not specified and if + `copy_names` is False, a generic name 'sys[id]' 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['iosys.sampled_system_name_prefix'] and - config.defaults['iosys.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 signals, and states to the sampled system. Returns ------- - sysd : TransferFunction system - Discrete-time system, with sample period Ts + 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 - information. + Description of the system inputs. If not specified, the + original system inputs are used. See `InputOutputSystem` for + more information. outputs : int, list of str or None, optional Description of the system outputs. Same format as `inputs`. Notes ----- - 1. Available only for SISO systems - - 2. Uses :func:`scipy.signal.cont2discrete` + Available only for SISO systems. Uses `scipy.signal.cont2discrete`. Examples -------- @@ -1183,7 +1227,7 @@ def sample(self, Ts, method='zoh', alpha=None, prewarp_frequency=None, """ if not self.isctime(): - raise ValueError("System must be continuous time system") + raise ValueError("System must be continuous-time system") if not self.issiso(): raise ControlMIMONotImplemented("Not implemented for MIMO systems") if method == "matched": @@ -1212,26 +1256,26 @@ 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 ("DC") gain. - For a continous-time transfer function G(s), the DC gain is G(0) + For a continuous-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) Parameters ---------- warn_infinite : bool, optional By default, don't issue a warning message if the zero-frequency - gain is infinite. Setting `warn_infinite` to generate the warning - message. + gain is infinite. Setting `warn_infinite` to generate the + warning message. Returns ------- gain : (noutputs, ninputs) ndarray or scalar Array or scalar value for SISO systems, depending on - config.defaults['control.squeeze_frequency_response']. - The value of the array elements or the scalar is either the - zero-frequency (or DC) gain, or `inf`, if the frequency response - is singular. + `config.defaults['control.squeeze_frequency_response']`. The + value of the array elements or the scalar is either the + zero-frequency (or DC) gain, or `inf`, if the frequency + response is singular. For real valued systems, the empty imaginary part of the complex zero-frequency response is discarded and a real array or @@ -1241,49 +1285,42 @@ def dcgain(self, warn_infinite=False): -------- >>> G = ct.tf([1], [1, 4]) >>> G.dcgain() - 0.25 + np.float64(0.25) """ return self._dcgain(warn_infinite) + # Determine if a system is static (memoryless) 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, - that is, if the system has no dynamics. """ - for list_of_polys in self.num, self.den: - for row in list_of_polys: - for poly in row: - if len(poly) > 1: - return False - return True + return self._static # Check done at initialization # Attributes for differentiation and delay # # These attributes are created here with sphinx docstrings so that the - # autodoc generated documentation has a description. The actual values of - # the class attributes are set at the bottom of the file to avoid problems - # with recursive calls. + # autodoc generated documentation has a description. The actual values + # of the class attributes are set at the bottom of the file to avoid + # problems with recursive calls. - #: Differentation operator (continuous time) + #: Differentiation operator (continuous time). #: - #: The ``s`` constant can be used to create continuous time transfer + #: The `s` constant can be used to create continuous-time transfer #: functions using algebraic expressions. #: - #: Example - #: ------- + #: Examples + #: -------- #: >>> s = TransferFunction.s # doctest: +SKIP #: >>> G = (s + 1)/(s**2 + 2*s + 1) # doctest: +SKIP #: #: :meta hide-value: s = None - #: Delay operator (discrete time) + #: Delay operator (discrete time). #: - #: The ``z`` constant can be used to create discrete time transfer + #: The `z` constant can be used to create discrete-time transfer #: functions using algebraic expressions. #: - #: Example - #: ------- + #: Examples + #: -------- #: >>> z = TransferFunction.z # doctest: +SKIP #: >>> G = 2 * z / (4 * z**3 + 3*z - 1) # doctest: +SKIP #: @@ -1321,10 +1358,13 @@ def _c2d_matched(sysC, Ts, **kwargs): # Utility function to convert a transfer function polynomial to a string # Borrowed from poly1d library def _tf_polynomial_to_string(coeffs, var='s'): - """Convert a transfer function polynomial to a string""" - + """Convert a transfer function polynomial to a string.""" thestr = "0" + # Apply NumPy formatting + with np.printoptions(threshold=sys.maxsize): + coeffs = eval(repr(coeffs)) + # Compute the number of coefficients N = len(coeffs) - 1 @@ -1368,7 +1408,10 @@ def _tf_polynomial_to_string(coeffs, var='s'): def _tf_factorized_polynomial_to_string(roots, gain=1, var='s'): - """Convert a factorized polynomial to a string""" + """Convert a factorized polynomial to a string.""" + # Apply NumPy formatting + with np.printoptions(threshold=sys.maxsize): + roots = eval(repr(roots)) if roots.size == 0: return _float2str(gain) @@ -1411,9 +1454,11 @@ def _tf_factorized_polynomial_to_string(roots, gain=1, var='s'): 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 - to prettier LaTeX representation """ + """Superscript all digits in a polynomial string and convert + float coefficients in scientific notation to prettier LaTeX + representation. + + """ # TODO: make the multiplication sign configurable expmul = r' \\times' thestr = sub(var + r'\^(\d{2,})', var + r'^{\1}', thestr) @@ -1439,32 +1484,35 @@ 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 - state space object, then it is converted to a transfer function and - returned. If sys is a scalar, then the number of inputs and outputs can be - specified manually, as in: + If `sys` is already a transfer function, then it is returned. If `sys` + is a state space object, then it is converted to a transfer function + and returned. If `sys` is a scalar, then the number of inputs and + outputs can be specified manually, as in:: + >>> from control.xferfcn import _convert_to_transfer_function >>> sys = _convert_to_transfer_function(3.) # Assumes inputs = outputs = 1 >>> sys = _convert_to_transfer_function(1., inputs=3, outputs=2) - In the latter example, sys's matrix transfer function is [[1., 1., 1.] - [1., 1., 1.]]. + In the latter example, the matrix transfer function for `sys` is:: + + [[1., 1., 1.] + [1., 1., 1.]]. - If sys is an array-like type, then it is converted to a constant-gain + If `sys` is an array_like type, then it is converted to a constant-gain transfer function. Note: no renaming of inputs and outputs is performed; this should be done by the calling function. - >>> sys = _convert_to_transfer_function([[1., 0.], [2., 3.]]) + Arrays can also be passed as an argument. For example:: - In this example, the numerator matrix will be - [[[1.0], [0.0]], [[2.0], [3.0]]] - and the denominator matrix [[[1.0], [1.0]], [[1.0], [1.0]]] + sys = _convert_to_transfer_function([[1., 0.], [2., 3.]]) + + will give a system with numerator matrix ``[[[1.0], [0.0]], [[2.0], + [3.0]]]`` and denominator matrix ``[[[1.0], [1.0]], [[1.0], [1.0]]]``. """ from .statesp import StateSpace - kwargs = {} if isinstance(sys, TransferFunction): return sys @@ -1479,20 +1527,20 @@ def _convert_to_transfer_function( den = [[[1.] for j in range(sys.ninputs)] for i in range(sys.noutputs)] else: + # Preallocate numerator and denominator arrays + num = [[[] for j in range(sys.ninputs)] + for i in range(sys.noutputs)] + den = [[[] for j in range(sys.ninputs)] + for i in range(sys.noutputs)] + try: # Use Slycot to make the transformation - # Make sure to convert system matrices to numpy arrays + # Make sure to convert system matrices to NumPy arrays from slycot import tb04ad tfout = tb04ad( sys.nstates, sys.ninputs, sys.noutputs, array(sys.A), array(sys.B), array(sys.C), array(sys.D), tol1=0.0) - # Preallocate outputs. - num = [[[] for j in range(sys.ninputs)] - for i in range(sys.noutputs)] - den = [[[] for j in range(sys.ninputs)] - for i in range(sys.noutputs)] - for i in range(sys.noutputs): for j in range(sys.ninputs): num[i][j] = list(tfout[6][i, j, :]) @@ -1501,16 +1549,13 @@ def _convert_to_transfer_function( den[i][j] = list(tfout[5][i, :]) except ImportError: - # If slycot is not available, use signal.lti (SISO only) - if sys.ninputs != 1 or sys.noutputs != 1: - raise ControlMIMONotImplemented("Not implemented for " + - "MIMO systems without slycot.") - - # Do the conversion using sp.signal.ss2tf - # Note that this returns a 2D array for the numerator - num, den = sp.signal.ss2tf(sys.A, sys.B, sys.C, sys.D) - num = squeeze(num) # Convert to 1D array - den = squeeze(den) # Probably not needed + # If slycot not available, do conversion using sp.signal.ss2tf + for j in range(sys.ninputs): + num_j, den_j = sp.signal.ss2tf( + sys.A, sys.B, sys.C, sys.D, input=j) + for i in range(sys.noutputs): + num[i][j] = num_j[i] + den[i][j] = den_j newsys = TransferFunction(num, den, sys.dt) if use_prefix_suffix: @@ -1526,7 +1571,7 @@ def _convert_to_transfer_function( elif isinstance(sys, FrequencyResponseData): raise TypeError("Can't convert given FRD to TransferFunction system.") - # If this is array-like, try to create a constant feedthrough + # If this is array_like, try to create a constant feedthrough try: D = array(sys, ndmin=2) outputs, inputs = D.shape @@ -1546,46 +1591,63 @@ def tf(*args, **kwargs): The function accepts either 1, 2, or 3 parameters: ``tf(sys)`` + Convert a linear system into transfer function form. Always creates - a new system, even if sys is already a TransferFunction object. + a new system, even if `sys` is already a `TransferFunction` object. ``tf(num, den)`` + Create a transfer function system from its numerator and denominator polynomial coefficients. If `num` and `den` are 1D array_like objects, the function creates a SISO system. - To create a MIMO system, `num` and `den` need to be 2D nested lists - of array_like objects. (A 3 dimensional data structure in total.) - (For details see note below.) + To create a MIMO system, `num` and `den` need to be 2D arrays of + of array_like objects (a 3 dimensional data structure in total; + for details see note below). If the denominator for all transfer + function is the same, `den` can be specified as a 1D array. ``tf(num, den, dt)`` - Create a discrete time transfer function system; dt can either be a - positive number indicating the sampling time or 'True' if no + + Create a discrete-time transfer function system; dt can either be a + positive number indicating the sampling time or True if no specific timebase is given. + ``tf([[G11, ..., G1m], ..., [Gp1, ..., Gpm]][, dt])`` + + Create a p x m MIMO system from SISO transfer functions Gij. See + `combine_tf` for more details. + ``tf('s')`` or ``tf('z')`` + Create a transfer function representing the differential operator ('s') or delay operator ('z'). 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 - display_format: None, 'poly' or 'zpk' - Set the display format used in printing the TransferFunction object. + sys : `LTI` (`StateSpace` or `TransferFunction`) + A linear system that will be converted to a transfer function. + arr : 2D list of `TransferFunction` + 2D list of SISO transfer functions to create MIMO transfer function. + 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. + 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). + display_format : None, 'poly' or 'zpk' + Set the display format used in printing the `TransferFunction` object. Default behavior is polynomial display and can be changed by - changing config.defaults['xferfcn.display_format'].. + changing `config.defaults['xferfcn.display_format']`. Returns ------- - out: :class:`TransferFunction` - The new linear system + sys : `TransferFunction` + The new linear system. Other Parameters ---------------- @@ -1593,31 +1655,31 @@ def tf(*args, **kwargs): 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. + input_prefix, output_prefix : string, optional + Set the prefix for input and output signals. Defaults = 'u', 'y'. name : string, optional - System name. If unspecified, a generic name is generated + System name. If unspecified, a generic name 'sys[id]' is generated with a unique integer id. Raises ------ ValueError - if `num` and `den` have invalid or unequal dimensions + If `num` and `den` have invalid or unequal dimensions. TypeError - if `num` or `den` are of incorrect type + If `num` or `den` are of incorrect type. See Also -------- - TransferFunction - ss - ss2tf - tf2ss + TransferFunction, ss, ss2tf, tf2ss Notes ----- + MIMO transfer functions are created by passing a 2D array of coefficients: ``num[i][j]`` contains the polynomial coefficients of the numerator - for the transfer function from the (j+1)st input to the (i+1)st output. - ``den[i][j]`` works the same way. + for the transfer function from the (j+1)st input to the (i+1)st output, + and ``den[i][j]`` works the same way. - The list ``[2, 3, 4]`` denotes the polynomial :math:`2s^2 + 3s + 4`. + The list ``[2, 3, 4]`` denotes the polynomial :math:`2 s^2 + 3 s + 4`. The special forms ``tf('s')`` and ``tf('z')`` can be used to create transfer functions for differentiation and unit delays. @@ -1635,16 +1697,12 @@ def tf(*args, **kwargs): >>> s = ct.tf('s') >>> G = (s + 1)/(s**2 + 2*s + 1) - >>> # Convert a StateSpace to a TransferFunction object. + >>> # Convert a state space system to a transfer function: >>> sys_ss = ct.ss([[1, -2], [3, -4]], [[5], [7]], [[6, 8]], 9) >>> sys_tf = ct.tf(sys_ss) """ - - if len(args) == 2 or len(args) == 3: - return TransferFunction(*args, **kwargs) - - elif len(args) == 1 and isinstance(args[0], str): + if len(args) == 1 and isinstance(args[0], str): # Make sure there were no extraneous keywords if kwargs: raise TypeError("unrecognized keywords: ", str(kwargs)) @@ -1655,19 +1713,53 @@ def tf(*args, **kwargs): elif args[0] == 'z': return TransferFunction.z + elif len(args) == 1 and isinstance(args[0], list): + # Allow passing an array of SISO transfer functions + from .bdalg import combine_tf + return combine_tf(*args) + elif len(args) == 1: from .statesp import StateSpace - sys = args[0] - if isinstance(sys, StateSpace): + if isinstance(sys := args[0], StateSpace): return ss2tf(sys, **kwargs) elif isinstance(sys, TransferFunction): # Use copy constructor return TransferFunction(sys, **kwargs) + elif isinstance(data := args[0], np.ndarray) and data.ndim == 2 or \ + isinstance(data, list) and isinstance(data[0], list): + raise NotImplementedError( + "arrays of transfer functions not (yet) supported") else: raise TypeError("tf(sys): sys must be a StateSpace or " "TransferFunction object. It is %s." % type(sys)) - else: - raise ValueError("Needs 1 or 2 arguments; received %i." % len(args)) + + elif len(args) == 3: + if 'dt' in kwargs: + warn("received multiple dt arguments, " + f"using positional arg {args[2]}") + kwargs['dt'] = args[2] + args = args[:2] + + elif len(args) != 2: + raise ValueError("Needs 1, 2, or 3 arguments; received %i." % len(args)) + + # + # Process the numerator and denominator arguments + # + # If we got through to here, we have two arguments (num, den) and + # the keywords (including dt). The only thing left to do is look + # for some special cases, like having a common denominator. + # + num, den = args + + num = _clean_part(num, "numerator") + den = _clean_part(den, "denominator") + + if den.size == 1 and num.size > 1: + # Broadcast denominator to shape of numerator + den = np.broadcast_to(den, num.shape).copy() + + return TransferFunction(num, den, **kwargs) def zpk(zeros, poles, gain, *args, **kwargs): @@ -1687,31 +1779,30 @@ def zpk(zeros, poles, gain, *args, **kwargs): zeros : array_like Array containing the location of zeros. poles : array_like - Array containing the location of zeros. + Array containing the location of poles. gain : float - System gain + 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). + 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. + 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 + `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. - display_format: None, 'poly' or 'zpk' - Set the display format used in printing the TransferFunction object. + name 'sys[id]' is generated with a unique integer id. + display_format : None, 'poly' or 'zpk', optional + Set the display format used in printing the `TransferFunction` object. Default behavior is polynomial display and can be changed by - changing config.defaults['xferfcn.display_format']. + changing `config.defaults['xferfcn.display_format']`. Returns ------- - out: :class:`TransferFunction` + out : `TransferFunction` Transfer function with given zeros, poles, and gain. Examples @@ -1737,32 +1828,36 @@ def ss2tf(*args, **kwargs): The function accepts either 1 or 4 parameters: ``ss2tf(sys)`` + Convert a linear system from state space into transfer function form. Always creates a new system. ``ss2tf(A, B, C, D)`` + Create a transfer function system from the matrices of its state and output equations. - For details see: :func:`tf` + For details see: `tf`. Parameters ---------- - sys: StateSpace - A linear system - A: array_like or string - System matrix - B: array_like or string - Control matrix - C: array_like or string - Output matrix - D: array_like or string - Feedthrough matrix + sys : `StateSpace` + A linear system. + A : array_like or string + System matrix. + B : array_like or string + Control matrix. + C : array_like or string + Output matrix. + D : array_like or string + Feedthrough matrix. + **kwargs : keyword arguments + Additional arguments passed to `tf` (e.g., signal names). Returns ------- - out: TransferFunction - New linear system in transfer function form + out : `TransferFunction` + New linear system in transfer function form. Other Parameters ---------------- @@ -1771,22 +1866,20 @@ def ss2tf(*args, **kwargs): 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 + System name. If unspecified, a generic name 'sys[id]' is generated with a unique integer id. Raises ------ ValueError - if matrix sizes are not self-consistent, or if an invalid number of - arguments is passed in + If matrix sizes are not self-consistent, or if an invalid number of + arguments is passed in. TypeError - if `sys` is not a StateSpace object + If `sys` is not a `StateSpace` object. See Also -------- - tf - ss - tf2ss + tf, ss, tf2ss Examples -------- @@ -1832,56 +1925,69 @@ def tfdata(sys): Parameters ---------- - sys: LTI (StateSpace, or TransferFunction) - LTI system whose data will be returned + sys : `StateSpace` or `TransferFunction` + LTI system whose data will be returned. Returns ------- - (num, den): numerator and denominator arrays - Transfer function coefficients (SISO only) + num, den : numerator and denominator arrays + Transfer function coefficients (SISO only). + """ tf = _convert_to_transfer_function(sys) return tf.num, tf.den -def _clean_part(data): +def _clean_part(data, name=""): """ Return a valid, cleaned up numerator or denominator - for the TransferFunction class. + for the `TransferFunction` class. Parameters ---------- - data: numerator or denominator of a transfer function. + data : numerator or denominator of a transfer function. Returns ------- data: list of lists of ndarrays, with int converted to float + """ valid_types = (int, float, complex, np.number) + unsupported_types = (complex, np.complexfloating) valid_collection = (list, tuple, ndarray) - if (isinstance(data, valid_types) or + if isinstance(data, np.ndarray) and data.ndim == 2 and \ + data.dtype == object and isinstance(data[0, 0], np.ndarray): + # Data is already in the right format + return data + elif isinstance(data, ndarray) and data.ndim == 3 and \ + isinstance(data[0, 0, 0], valid_types): + out = np.empty(data.shape[0:2], dtype=np.ndarray) + for i, j in product(range(out.shape[0]), range(out.shape[1])): + out[i, j] = data[i, j, :] + elif (isinstance(data, valid_types) or (isinstance(data, ndarray) and data.ndim == 0)): # Data is a scalar (including 0d ndarray) - data = [[array([data])]] - elif (isinstance(data, ndarray) and data.ndim == 3 and - isinstance(data[0, 0, 0], valid_types)): - data = [[array(data[i, j]) - for j in range(data.shape[1])] - for i in range(data.shape[0])] + out = np.empty((1,1), dtype=np.ndarray) + out[0, 0] = array([data]) elif (isinstance(data, valid_collection) and all([isinstance(d, valid_types) for d in data])): - data = [[array(data)]] - elif (isinstance(data, (list, tuple)) and - isinstance(data[0], (list, tuple)) and - (isinstance(data[0][0], valid_collection) and - all([isinstance(d, valid_types) for d in data[0][0]]))): - data = list(data) - for j in range(len(data)): - data[j] = list(data[j]) - for k in range(len(data[j])): - data[j][k] = array(data[j][k]) + out = np.empty((1,1), dtype=np.ndarray) + out[0, 0] = array(data) + elif isinstance(data, (list, tuple)) and \ + isinstance(data[0], (list, tuple)) and \ + (isinstance(data[0][0], valid_collection) and + all([isinstance(d, valid_types) for d in data[0][0]]) or \ + isinstance(data[0][0], valid_types)): + out = np.empty((len(data), len(data[0])), dtype=np.ndarray) + for i in range(out.shape[0]): + if len(data[i]) != out.shape[1]: + raise ValueError( + "Row 0 of the %s matrix has %i elements, but row " + "%i has %i." % (name, out.shape[1], i, len(data[i]))) + for j in range(out.shape[1]): + out[i, j] = np.atleast_1d(data[i][j]) else: # If the user passed in anything else, then it's unclear what # the meaning is. @@ -1890,20 +1996,39 @@ def _clean_part(data): "(for\nSISO), or lists of lists of vectors (for SISO or MIMO).") # Check for coefficients that are ints and convert to floats - for i in range(len(data)): - for j in range(len(data[i])): - for k in range(len(data[i][j])): - if isinstance(data[i][j][k], (int, np.int32, np.int64)): - data[i][j][k] = float(data[i][j][k]) + for i in range(out.shape[0]): + for j in range(out.shape[1]): + for k in range(len(out[i, j])): + if isinstance(out[i, j][k], (int, np.integer)): + out[i, j][k] = float(out[i, j][k]) + elif isinstance(out[i, j][k], unsupported_types): + raise TypeError( + f"unsupported data type: {type(out[i, j][k])}") + return out + + +# +# Define constants to represent differentiation, unit delay. +# +# Set the docstring explicitly to avoid having Sphinx document this as +# a method instead of a property/attribute. - return data - - -# Define constants to represent differentiation, unit delay TransferFunction.s = TransferFunction([1, 0], [1], 0, name='s') +TransferFunction.s.__doc__ = "Differentiation operator (continuous time)." + TransferFunction.z = TransferFunction([1, 0], [1], True, name='z') +TransferFunction.z.__doc__ = "Delay operator (discrete time)." def _float2str(value): _num_format = config.defaults.get('xferfcn.floating_point_format', ':.4g') return f"{value:{_num_format}}" + + +def _create_poly_array(shape, default=None): + out = np.empty(shape, dtype=np.ndarray) + if default is not None: + default = np.array(default) + for i, j in product(range(shape[0]), range(shape[1])): + out[i, j] = default + return out diff --git a/doc/.gitignore b/doc/.gitignore index 38303de2b..caaf55013 100644 --- a/doc/.gitignore +++ b/doc/.gitignore @@ -1,2 +1,2 @@ *.fig.bak -_static/ +.docfigs diff --git a/doc/Makefile b/doc/Makefile index dfd34f4f1..493fd7da5 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -1,5 +1,18 @@ -# Minimal makefile for Sphinx documentation -# +# Makefile for python-control Sphinx documentation +# RMM, 15 Jan 2025 + +FIGS = figures/classes.pdf +RST_FIGS = figures/flatsys-steering-compare.png \ + figures/iosys-predprey-open.png \ + figures/timeplot-servomech-combined.png \ + figures/steering-optimal.png figures/ctrlplot-servomech.png \ + figures/phaseplot-dampedosc-default.png \ + figures/timeplot-mimo_step-default.png \ + figures/freqplot-siso_bode-default.png \ + figures/pzmap-siso_ctime-default.png \ + figures/rlocus-siso_ctime-default.png \ + figures/stochastic-whitenoise-response.png \ + figures/xferfcn-delay-compare.png figures/descfcn-pade-backlash.png # You can set these variables from the command line. SPHINXOPTS = @@ -12,28 +25,46 @@ BUILDDIR = _build help: @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) -.PHONY: help Makefile +.PHONY: help Makefile html latexpdf doctest clean distclean -# Rules to create figures -FIGS = classes.pdf timeplot-mimo_step-default.png \ - freqplot-siso_bode-default.png rlocus-siso_ctime-default.png \ - phaseplot-dampedosc-default.png -classes.pdf: classes.fig - fig2dev -Lpdf $< $@ +# List of the first RST figure of each type in each file that is generated +figures/flatsys-steering-compare.png: flatsys.rst + @$(SPHINXBUILD) -M doctest "$(SOURCEDIR)" "$(BUILDDIR)" +figures/iosys-predprey-open.png: iosys.rst + @$(SPHINXBUILD) -M doctest "$(SOURCEDIR)" "$(BUILDDIR)" +figures/timeplot-servomech-combined.png: nlsys.rst + @$(SPHINXBUILD) -M doctest "$(SOURCEDIR)" "$(BUILDDIR)" +figures/steering-optimal.png: optimal.rst + @$(SPHINXBUILD) -M doctest "$(SOURCEDIR)" "$(BUILDDIR)" +figures/phaseplot-dampedosc-default.png: phaseplot.rst + @$(SPHINXBUILD) -M doctest "$(SOURCEDIR)" "$(BUILDDIR)" +figures/timeplot-mimo_step-default.png \ + figures/freqplot-siso_bode-default.png \ + figures/pzmap-siso_ctime-default.png \ + figures/rlocus-siso_ctime-default.png \ + figures/ctrlplot-servomech.png: response.rst + @$(SPHINXBUILD) -M doctest "$(SOURCEDIR)" "$(BUILDDIR)" -timeplot-mimo_step-default.png: ../control/tests/timeplot_test.py - PYTHONPATH=.. python $< +figures/stochastic-whitenoise-response.png: stochastic.rst + @$(SPHINXBUILD) -M doctest "$(SOURCEDIR)" "$(BUILDDIR)" -freqplot-siso_bode-default.png: ../control/tests/freqplot_test.py - PYTHONPATH=.. python $< +figures/xferfcn-delay-compare.png: xferfcn.rst + @$(SPHINXBUILD) -M doctest "$(SOURCEDIR)" "$(BUILDDIR)" -rlocus-siso_ctime-default.png: ../control/tests/rlocus_test.py - PYTHONPATH=.. python $< +figures/descfcn-pade-backlash.png: descfcn.rst + @$(SPHINXBUILD) -M doctest "$(SOURCEDIR)" "$(BUILDDIR)" -phaseplot-dampedosc-default.png: ../control/tests/phaseplot_test.py - PYTHONPATH=.. python $< +# Other figure rules +figure/classes.pdf: figure/classes.fig + make -C figures classes.pdf # 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) +html latexpdf: Makefile $(FIGS) $(RST_FIGS) + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +doctest clean: Makefile @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +distclean: clean + /bin/rm -rf generated diff --git a/doc/_static/css/custom.css b/doc/_static/css/custom.css new file mode 100644 index 000000000..41bbb3f9e --- /dev/null +++ b/doc/_static/css/custom.css @@ -0,0 +1,20 @@ +/* Center equations with equation numbers on the right */ +.math { + text-align: center; +} +.eqno { + float: right; +} + +/* Make code blocks show up in in dark grey, rather than RTD default (red) */ +code.literal { + color: #404040 !important; +} +/* Make py:obj objects non-bold by default */ +.py-obj .pre { + font-weight: normal; +} +/* Turn bold back on for py:obj objects that actually link to something */ +a .py-obj .pre { + font-weight: bold; +} diff --git a/doc/_templates/custom-class-template.rst b/doc/_templates/custom-class-template.rst index 53a76e905..1f01e7e8f 100644 --- a/doc/_templates/custom-class-template.rst +++ b/doc/_templates/custom-class-template.rst @@ -8,14 +8,33 @@ :inherited-members: :special-members: + {% block attributes %} + {% if attributes %} + .. rubric:: {{ _('Attributes') }} + + .. autosummary:: + :nosignatures: + + {% for item in attributes %} + {%- if not item.startswith('_') %} + ~{{ name }}.{{ item }} + {%- endif -%} + {%- endfor %} + {% endif %} + {% endblock %} + {% block methods %} {% if methods %} .. rubric:: {{ _('Methods') }} .. autosummary:: :nosignatures: - {% for item in methods %} - {%- if not item.startswith('_') %} + + {% for item in members %} + {%- if not item.startswith('_') and item not in attributes %} + ~{{ name }}.{{ item }} + {%- endif -%} + {%- if item == '__call__' %} ~{{ name }}.{{ item }} {%- endif -%} {%- endfor %} diff --git a/doc/_templates/list-class-template.rst b/doc/_templates/list-class-template.rst new file mode 100644 index 000000000..3c85596b3 --- /dev/null +++ b/doc/_templates/list-class-template.rst @@ -0,0 +1,8 @@ +{{ fullname | escape | underline}} + +.. currentmodule:: {{ module }} + +.. autoclass:: {{ objname }} + :members: plot + :no-inherited-members: + :show-inheritance: diff --git a/doc/classes.rst b/doc/classes.rst index 3bf8492ee..0ab508a3a 100644 --- a/doc/classes.rst +++ b/doc/classes.rst @@ -1,52 +1,99 @@ -.. _class-ref: .. currentmodule:: control +.. _class-ref: + ********************** -Control system classes +Control System Classes ********************** +Input/Output System Classes +=========================== + The classes listed below are used to represent models of input/output systems (both linear time-invariant and nonlinear). They are usually created from factory functions such as :func:`tf` and :func:`ss`, so the user should normally not need to instantiate these directly. - + +The following figure illustrates the relationship between the classes. + +.. image:: figures/classes.pdf + :width: 800 + :align: center + .. autosummary:: :toctree: generated/ :template: custom-class-template.rst + :nosignatures: InputOutputSystem + NonlinearIOSystem LTI StateSpace TransferFunction FrequencyResponseData - 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 -another: -.. image:: classes.pdf - :width: 800 +Response and Plotting Classes +============================= + +These classes are used as the outputs of `_response`, `_map`, and +`_plot` functions: -Additional classes -================== .. autosummary:: + :toctree: generated/ + :template: custom-class-template.rst + :nosignatures: + + ControlPlot + FrequencyResponseData + NyquistResponseData + PoleZeroData + TimeResponseData + +In addition, the following classes are used to store lists of +responses, which can then be plotted using the ``.plot()`` method: + +.. autosummary:: + :toctree: generated/ + :template: list-class-template.rst + :nosignatures: + + FrequencyResponseList + NyquistResponseList + PoleZeroList + TimeResponseList + +More information on the functions used to create these classes can be +found in the :ref:`response-chapter` chapter. + + +Nonlinear System Classes +======================== + +These classes are used for various nonlinear input/output system +operations: + +.. autosummary:: + :toctree: generated/ :template: custom-class-template.rst :nosignatures: DescribingFunctionNonlinearity DescribingFunctionResponse flatsys.BasisFamily + flatsys.BezierFamily + flatsys.BSplineFamily flatsys.FlatSystem flatsys.LinearFlatSystem flatsys.PolyFamily flatsys.SystemTrajectory + OperatingPoint 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 +More informaton on the functions used to create these classes can be +found in the :ref:`nonlinear-systems` chapter. diff --git a/doc/conf.py b/doc/conf.py index 7a45ba3f9..f07ee3fa2 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -23,14 +23,13 @@ try: import sphinx_rtd_theme html_theme = 'sphinx_rtd_theme' - html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] except ImportError: html_theme = 'default' # -- Project information ----------------------------------------------------- project = u'Python Control Systems Library' -copyright = u'2023, python-control.org' +copyright = u'2025, python-control.org' author = u'Python Control Developers' # Version information - read from the source code @@ -49,16 +48,15 @@ # If your documentation needs a minimal Sphinx version, state it here. # -needs_sphinx = '3.1' +needs_sphinx = '3.4' # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. 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.doctest' + 'sphinx.ext.autodoc', 'sphinx.ext.todo', 'sphinx.ext.intersphinx', + 'sphinx.ext.imgmath', 'sphinx.ext.autosummary', 'nbsphinx', 'numpydoc', + 'sphinx.ext.linkcode', 'sphinx.ext.doctest', 'sphinx_copybutton' ] # scan documents for autosummary directives and generate stub pages for each. @@ -94,8 +92,9 @@ # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. # This pattern also affects html_static_path and html_extra_path . -exclude_patterns = [u'_build', 'Thumbs.db', '.DS_Store', - '*.ipynb_checkpoints'] +exclude_patterns = [ + u'_build', 'Thumbs.db', '.DS_Store', '*.ipynb_checkpoints', + 'releases/template.rst'] # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' @@ -103,11 +102,15 @@ # This config value contains the locations and names of other projects that # should be linked to in this documentation. intersphinx_mapping = \ - {'scipy': ('https://docs.scipy.org/doc/scipy/reference', None), + {'scipy': ('https://docs.scipy.org/doc/scipy', None), 'numpy': ('https://numpy.org/doc/stable', None), - 'matplotlib': ('https://matplotlib.org/', None), + 'matplotlib': ('https://matplotlib.org/stable/', None), + 'python': ('https://docs.python.org/3/', None), } +# Don't generate external links to (local) keywords +intersphinx_disabled_reftypes = ["py:keyword"] + # If this is True, todo and todolist produce output, else they produce nothing. # The default is False. todo_include_todos = True @@ -120,6 +123,16 @@ # html_theme = 'sphinx_rtd_theme' +# Set the default role to render items in backticks as code +default_role = 'py:obj' + +# Align inline math with text +imgmath_use_preview = True + +# Skip prompts when using copy button +copybutton_prompt_text = r">>> |\.\.\. " +copybutton_prompt_is_regexp = True + # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. @@ -131,8 +144,7 @@ # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] -def setup(app): - app.add_css_file('css/custom.css') +html_css_files = ['css/custom.css'] # Custom sidebar templates, must be a dictionary that maps document names # to template names. @@ -212,7 +224,7 @@ def linkcode_resolve(domain, info): 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 +# Don't automatically 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 @@ -248,8 +260,9 @@ def linkcode_resolve(domain, info): # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ - (master_doc, 'PythonControlLibrary.tex', u'Python Control Library Documentation', - u'RMM', 'manual'), + (master_doc, 'python-control.tex', + u'Python Control Systems Library User Guide', + u'Python Control Developers', 'manual'), ] @@ -280,8 +293,21 @@ def linkcode_resolve(domain, info): doctest_global_setup = """ import numpy as np import control as ct -import control.optimal as obc +import control.optimal as opt import control.flatsys as fs import control.phaseplot as pp ct.reset_defaults() """ + +# -- Customization for python-control ---------------------------------------- +# +# This code does custom processing of docstrings for the python-control +# package. + +def process_docstring(app, what, name, obj, options, lines): + # Loop through each line in docstring and replace `sys` with :code:`sys` + for i in range(len(lines)): + lines[i] = lines[i].replace("`sys`", ":code:`sys`") + +def setup(app): + app.connect('autodoc-process-docstring', process_docstring) diff --git a/doc/config.rst b/doc/config.rst new file mode 100644 index 000000000..9313fdded --- /dev/null +++ b/doc/config.rst @@ -0,0 +1,664 @@ +.. currentmodule:: control + +.. _package-configuration-parameters: + +Package Configuration Parameters +================================ + +The python-control package can be customized to allow for different +default values for selected parameters. This includes the ability to +change the way system names are created, to set the style for various +types of plots, and to determine default solvers and parameters to use +in solving optimization problems. + +To set the default value of a configuration parameter, set the appropriate +element of the `config.defaults` dictionary:: + + ct.config.defaults['module.parameter'] = value + +The :func:`set_defaults` function can also be used to set multiple +configuration parameters at the same time:: + + ct.set_defaults('module', param1=val1, param2=val2, ...] + +Several functions available to set collections of parameters based on +standard configurations: + +.. autosummary:: + + reset_defaults + use_fbs_defaults + use_matlab_defaults + use_legacy_defaults + +.. Set the current module to be control.config.defaults so that each of + the parameters gets a link of the form control.config.defaults.. + This can be linked from the documentation using a the construct + `config.defaults['param'] `. + +.. currentmodule:: control.config.defaults + +Finally, the `config.defaults` object can be used as a context manager +for temporarily setting default parameters: + +.. testsetup:: + + import control as ct + +.. doctest:: + + >>> with ct.config.defaults({'iosys.repr_format': 'info'}): + ... sys = ct.rss(4, 2, 2, name='sys') + ... print(repr(sys)) + ['y[0]', 'y[1]']> + +System creation parameters +-------------------------- + +.. py:data:: control.default_dt + :type: int + :value: 0 + + Default value of `dt` when constructing new I/O systems. If `dt` + is not specified explicitly this value will be used. Set to None + to leave the timebase unspecified, 0 for continuous-time systems, + True for discrete-time systems. + +.. py:data:: iosys.converted_system_name_prefix + :type: str + :value: '' + + Prefix to add to system name when converting a system from one + representation to another. + +.. py:data:: iosys.converted_system_name_suffix + :type: str + :value: '$converted' + + Suffix to add to system name when converting a system from one + representation to another. + + +.. _config.defaults['iosys.duplicate_system_name_prefix']: + +.. py:data:: iosys.duplicate_system_name_prefix + :type: str + :value: '' + + Prefix to add to system name when making a copy of a system. + +.. py:data:: iosys.duplicate_system_name_suffix + :type: str + :value: '$copy' + + Suffix to add to system name when making a copy of a system. + +.. py:data:: iosys.indexed_system_name_prefix + :type: str + :value: '' + + Prefix to add to system name when extracting a subset of the inputs + and outputs. + +.. py:data:: iosys.indexed_system_name_suffix + :type: str + :value: '$indexed' + + Suffix to add to system name when extracting a subset of the inputs + and outputs. + +.. py:data:: iosys.linearized_system_name_prefix + :type: str + :value: '' + + Prefix to add to system name when linearizing a system using + :func:`linearize`. + +.. py:data:: iosys.linearized_system_name_suffix + :type: str + :value: '$linearized' + + Suffix to add to system name when linearizing a system using + :func:`linearize`. + +.. py:data:: iosys.sampled_system_name_prefix + :type: str + :value: '' + + Prefix to add to system name when sampling a system at a set of + frequency points in :func:`frd` or converting a continuous-time + system to discrete time in :func:`sample_system`. + +.. py:data:: iosys.sampled_system_name_suffix + :type: str + :value: '$sampled' + + Suffix to add to system name when sampling a system at a set of + frequency points in :func:`frd` or converting a continuous-time + system to discrete time in :func:`sample_system`. + +.. py:data:: iosys.state_name_delim + :type: str + :value: '_' + + Used by :func:`interconnect` to set the names of the states of the + interconnected system. If the state names are not explicitly given, + the states will be given names of the form + '', for each subsys in syslist and + each state_name of each subsys, where is the value of + config.defaults['iosys.state_name_delim']. + +.. py:data:: statesp.remove_useless_states + :type: bool + :value: False + + When creating a :class:`StateSpace` system, remove states that have no + effect on the input-output dynamics of the system. + + +System display parameters +------------------------- + +.. py:data:: iosys.repr_format + :type: str + :value: 'eval' + + Set the default format used by :func:`iosys_repr` to create the + representation of an :class:`InputOutputSystem`: + + * 'info' : [outputs]> + * 'eval' : system specific, loadable representation + * 'latex' : latex representation of the object + +.. py:data:: iosys.repr_show_count + :type: bool + :value: True + + If True, show the input, output, and state count when using + `iosys_repr` and the 'eval' format. Otherwise, the input, + output, and state values are repressed from the output unless + non-generic signal names are present. + +.. py:data:: xferfcn.display_format + :type: str + :value: 'poly' + + Set the display format used in printing the + :class:`TransferFunction` object: + + * 'poly': Single polynomial for numerator and denominator. + * 'zpk': Product of factors, showing poles and zeros. + +.. py:data:: xferfcn.floating_point_format + :type: str + :value: '.4g' + + Format to use for displaying coefficients in + :class:`TransferFunction` objects when generating string + representations. + +.. py:data:: statesp.latex_num_format + :type: str + :value: '.3g' + + Format to use for displaying coefficients in :class:`StateSpace` systems + when generating LaTeX representations. + +.. py:data:: statesp.latex_repr_type + :type: str + :value: 'partitioned' + + Used when generating LaTeX representations of :class:`StateSpace` + systems. If 'partitioned', the A, B, C, D matrices are shown as + a single, partitioned matrix; if 'separate', the matrices are + shown separately. + +.. py:data:: statesp.latex_maxsize + :type: int + :value: 10 + + Maximum number of states plus inputs or outputs for which the LaTeX + representation of the system dynamics will be generated. + + +Response parameters +------------------- + +.. py:data:: control.squeeze_frequency_response + :type: bool + :value: None + + Set the default value of the `squeeze` parameter for + :func:`frequency_response` and :class:`FrequencyResponseData` + objects. If None then if a system is single-input, single-output + (SISO) the outputs (and inputs) are returned as a 1D array (indexed by + frequency), and if a system is multi-input or multi-output, then the + outputs are returned as a 2D array (indexed by output and frequency) or + a 3D array (indexed by output, input (or trace), and frequency). If + `squeeze=True`, access to the output response will remove + single-dimensional entries from the shape of the inputs and outputs even + if the system is not SISO. If `squeeze=False`, the output is returned as + a 3D array (indexed by the output, input, and frequency) even if the + system is SISO. + +.. py:data:: control.squeeze_time_response + :type: bool + :value: None + + Set the default value of the `squeeze` parameter for + :func:`input_output_response` and other time response objects. By + default, if a system is single-input, single-output (SISO) then the + outputs (and inputs) are returned as a 1D array (indexed by time) and if + a system is multi-input or multi-output, then the outputs are returned + as a 2D array (indexed by output and time) or a 3D array (indexed by + output, input, and time). If `squeeze=True`, access to the output + response will remove single-dimensional entries from the shape of the + inputs and outputs even if the system is not SISO. If `squeeze=False`, + the output is returned as a 3D array (indexed by the output, input, and + time) even if the system is SISO. + +.. py:data:: forced_response.return_x + :type: bool + :value: False + + Determine whether :func:`forced_response` returns the values of the + states when the :class:`TimeResponseData` object is evaluated. The + default value was True before version 0.9 and is False since then. + + +Plotting parameters +------------------- + +.. py:data:: ctrlplot.rcParams + :type: dict + :value: {'axes.labelsize': 'small', 'axes.titlesize': 'small', 'figure.titlesize': 'medium', 'legend.fontsize': 'x-small', 'xtick.labelsize': 'small', 'ytick.labelsize': 'small'} + + Overrides the default matplotlib parameters used for generating + plots. This dictionary can also be accessed as `ct.rcParams`. + +.. py:data:: freqplot.dB + :type: bool + :value: False + + If True, the magnitude in :func:`bode_plot` is plotted in dB + (otherwise powers of 10). + +.. py:data:: freqplot.deg + :type: bool + :value: True + + If True, the phase in :func:`bode_plot` is plotted in degrees + (otherwise radians). + +.. py:data:: freqplot.feature_periphery_decades + :type: int + :value: 1 + + Number of decades in frequency to include on both sides of features + (poles, zeros) when generating frequency plots. + +.. py:data:: freqplot.freq_label + :type: bool + :value: 'Frequency [{units}]' + + Label for the frequency axis in frequency plots, with `units` set to + either 'rad/sec' or 'Hz' when the label is created. + +.. py:data:: freqplot.grid + :type: bool + :value: True + + Include grids for magnitude and phase in frequency plots. + +.. py:data:: freqplot.Hz + :type: bool + :value: False + + If True, use Hertz for frequency response plots (otherwise rad/sec). + +.. py:data:: freqplot.magnitude_label + :type: str + :value: 'Magnitude' + + Label to use on the magnitude portion of a frequency plot. Set to + 'Gain' by `use_fbs_defaults()`. + +.. py:data:: freqplot.number_of_samples + :type: int + :value: 1000 + + Number of frequency points to use in in frequency plots. + +.. py:data:: freqplot.share_magnitude + :type: str + :value: 'row' + + Determine whether and how axis limits are shared between the magnitude + variables in :func:`bode_plot`. Can be set set to 'row' to share across + all subplots in a row, 'col' to set across all subplots in a column, or + False to allow independent limits. + +.. py:data:: freqplot.share_phase + :type: str + :value: 'row' + + Determine whether and how axis limits are shared between the phase + variables in :func:`bode_plot`. Can be set set to 'row' to share across + all subplots in a row, 'col' to set across all subplots in a column, or + False to allow independent limits. + +.. py:data:: freqplot.share_frequency + :type: str + :value: 'col' + + Determine whether and how axis limits are shared between the frequency + axes in :func:`bode_plot`. Can be set set to 'row' to share across all + subplots in a row, 'col' to set across all subplots in a column, or + False to allow independent limits. + +.. py:data:: freqplot.title_frame + :type: str + :value: 'axes' + + Set the frame of reference used to center the plot title. If set to + 'axes', the horizontal position of the title will be centered relative + to the axes. If set to 'figure', it will be centered with respect to + the figure (faster execution). + +.. py:data:: freqplot.wrap_phase + :type: bool + :value: False + + If `wrap_phase` is False, then the phase will be unwrapped so that it + is continuously increasing or decreasing. If `wrap_phase` is True the + phase will be restricted to the range [-180, 180) (or [:math:`-\pi`, + :math:`\pi`) radians). If ``wrap_phase`` is specified as a float, the + phase will be offset by 360 degrees if it falls below the specified + value. + +.. py:data:: nichols.grid + :type: bool + :value: True + + Set to True if :func:`nichols_plot` should include a Nichols-chart + grid. + +.. py:data:: nyquist.arrows + :type: int + :value: 2 + + Specify the default number of arrows for :func:`nyquist_plot`. + +.. py:data:: nyquist.arrow_size + :type: float + :value: 8 + + Arrowhead width and length (in display coordinates) for + :func:`nyquist_plot`. + +.. py:data:: nyquist.circle_style + :type: dict + :value: {'color': 'black', 'linestyle': 'dashed', 'linewidth': 1} + + Style for unit circle in :func:`nyquist_plot`. + +.. py:data:: nyquist.encirclement_threshold + :type: float + :value: 0.05 + + Define the threshold in :func:`nyquist_response` for generating a + warning if the number of net encirclements is a non-integer value. + +.. py:data:: nyquist.indent_direction + :type: str + :value: 'right' + + Set the direction of indentation in :func:`nyquist_response` for poles + on the imaginary axis. Valid values are 'right', 'left', or 'none'. + +.. py:data:: nyquist.indent_points + :type: int + :value: 50 + + Set the number of points to insert in the Nyquist contour around poles + that are at or near the imaginary axis in :func:`nyquist_response`. + +.. py:data:: nyquist.indent_radius + :type: float + :value: 0.0001 + + Amount to indent the Nyquist contour around poles on or near the + imaginary axis in :func:`nyquist_response`. Portions of the Nyquist plot + corresponding to indented portions of the contour are plotted using a + different line style. + +.. py:data:: nyquist.max_curve_magnitude + :type: float + :value: 20 + + Restrict the maximum magnitude of the Nyquist plot in + :func:`nyquist_plot`. Portions of the Nyquist plot whose magnitude is + restricted are plotted using a different line style. + +.. py:data:: nyquist.max_curve_offset + :type: float + :value: 0.02 + + When plotting scaled portion of the Nyquist plot in + :func:`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. + +.. py:data:: nyquist.mirror_style + :type: list of str + :value: ['--', ':'] + + Linestyles for mirror image of the Nyquist curve in + :func:`nyquist_plot`. 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 the mirror image curve completely. + +.. py:data:: nyquist.primary_style + :type: list of str + :value: ['-', '-.'] + + Linestyles for primary image of the Nyquist curve in + :func:`nyquist_plot`. 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). + +.. py:data:: nyquist.start_marker + :type: str + :value: 'o' + + Matplotlib marker to use to mark the starting point of the Nyquist plot + in :func:`nyquist_plot`. + +.. py:data:: nyquist.start_marker_size + :type: float + :value: 4 + + Start marker size (in display coordinates) in :func:`nyquist_plot`. + +.. py:data:: phaseplot.arrows + :type: int + :value: 2 + + Set the default number of arrows in :func:`phase_plane_plot` and + :func:`phaseplot.streamlines`. + +.. py:data:: phaseplot.arrow_size + :type: float + :value: 8 + + Set the default size of arrows in :func:`phase_plane_plot` and + :func:`phaseplot.streamlines`. + +.. py:data:: phaseplot.arrow_style + :type: matplotlib patch + :value: None + + Set the default style for arrows in :func:`phase_plane_plot` and + :func:`phaseplot.streamlines`. If set to None, defaults to + + .. code:: + + mpl.patches.ArrowStyle( + 'simple', head_width=int(2 * arrow_size / 3), + head_length=arrow_size) + +.. py:data:: phaseplot.separatrices_radius + :type: float + :value: 0.1 + + In :func:`phaseplot.separatrices`, set the offset from the equilibrium + point to the starting point of the separatix traces, in the direction of + the eigenvectors evaluated at that equilibrium point. + +.. py:data:: pzmap.buffer_factor + :type: float + :value: 1.05 + + The limits of the pole/zero plot generated by :func:`pole_zero_plot` + are set based on the location features in the plot, including the + location of poles, zeros, and local maxima of root locus curves. The + locations of local maxima are expanded by the buffer factor set by + `buffer_factor`. + +.. py:data:: pzmap.expansion_factor + :type: float + :value: 1.8 + + The final axis limits of the pole/zero plot generated by + :func:`pole_zero_plot` are set to by the largest features in the plot + multiplied by an expansion factor set by `expansion_factor`. + +.. py:data:: pzmap.grid + :type: bool + :value: False + + If True plot omega-damping grid in :func:`pole_zero_plot`. If False + or None show imaginary axis for continuous-time systems, unit circle for + discrete-time systems. If 'empty', do not draw any additional lines. + + Note: this setting only applies to pole/zero plots. For root locus + plots, the 'rlocus.grid' parameter value is used as the default. + +.. py:data:: pzmap.marker_size + :type: float + :value: 6 + + Set the size of the markers used for poles and zeros in + :func:`pole_zero_plot`. + +.. py:data:: pzmap.marker_width + :type: float + :value: 1.5 + + Set the line width of the markers used for poles and zeros in + :func:`pole_zero_plot`. + +.. py:data:: rlocus.grid + :type: bool + :value: True + + If True, plot omega-damping grid in :func:`root_locus_plot`. If False + or None show imaginary axis for continuous-time systems, unit circle for + discrete-time systems. If 'empty', do not draw any additional lines. + +.. py:data:: sisotool.initial_gain + :type: float + :value: 1 + + Initial gain to use for plotting root locus in :func:`sisotool`. + +.. py:data:: timeplot.input_props + :type: list of dict + :value: [{'color': 'tab:red'}, {'color': 'tab:purple'}, {'color': 'tab:brown'}, {'color': 'tab:olive'}, {'color': 'tab:cyan'}] + + List of line properties to use when plotting combined inputs in + :func:`time_response_plot`. The line properties for each input will be + cycled through this list. + +.. py:data:: timeplot.output_props + :type: list of dict + :value: [{'color': 'tab:blue'}, {'color': 'tab:orange'}, {'color': 'tab:green'}, {'color': 'tab:pink'}, {'color': 'tab:gray'}] + + List of line properties to use when plotting combined outputs in + :func:`time_response_plot`. The line properties for each input will be + cycled through this list. + +.. py:data:: timeplot.trace_props + :type: list of dict + :value: [{'linestyle': '-'}, {'linestyle': '--'}, {'linestyle': ':'}, {'linestyle': '-.'}] + + List of line properties to use when plotting multiple traces in + :func:`time_response_plot`. The line properties for each input will be + cycled through this list. + +.. py:data:: timeplot.sharex + :type: str + :value: 'col' + + Determine whether and how x-axis limits are shared between subplots in + :func:`time_response_plot`. Can be set set to 'row' to share across all + subplots in a row, 'col' to set across all subplots in a column, 'all' + to share across all subplots, or False to allow independent limits. + +.. py:data:: timeplot.sharey + :type: bool + :value: False + + Determine whether and how y-axis limits are shared between subplots in + :func:`time_response_plot`. Can be set set to 'row' to share across all + subplots in a row, 'col' to set across all subplots in a column, 'all' + to share across all subplots, or False to allow independent limits. + +.. py:data:: timeplot.time_label + :type: str + :value: 'Time [s]' + + Label to use for the time axis in :func:`time_response_plot`. + + +Optimization parameters +----------------------- + +.. py:data:: optimal.minimize_method + :type: str + :value: None + + Set the method used by :func:`scipy.optimize.minimize` when called in + :func:`solve_optimal_trajectory` and :func:`solve_optimal_estimate`. + +.. py:data:: optimal.minimize_options + :type: dict + :value: {} + + Set the value of the options keyword used by + :func:`scipy.optimize.minimize` when called in + :func:`solve_optimal_trajectory` and :func:`solve_optimal_estimate`. + +.. py:data:: optimal.minimize_kwargs + :type: dict + :value: {} + + Set the keyword arguments passed to :func:`scipy.optimize.minimize` + when called in :func:`solve_optimal_trajectory` and + :func:`solve_optimal_estimate`. + +.. py:data:: optimal.solve_ivp_method + :type: str + :value: None + + Set the method used by :func:`scipy.integrate.solve_ivp` when called in + :func:`solve_optimal_trajectory` and :func:`solve_optimal_estimate`. + +.. py:data:: optimal.solve_ivp_options + :type: dict + :value: {} + + Set the value of the options keyword used by + :func:`scipy.integrate.solve_ivp` when called in + :func:`solve_optimal_trajectory` and :func:`solve_optimal_estimate`. diff --git a/doc/control.rst b/doc/control.rst deleted file mode 100644 index 1b1b74069..000000000 --- a/doc/control.rst +++ /dev/null @@ -1,199 +0,0 @@ -.. _function-ref: - -****************** -Function reference -****************** - -.. Include header information from the main control module -.. automodule:: control - :no-members: - :no-inherited-members: - :no-special-members: - -System creation -=============== -.. autosummary:: - :toctree: generated/ - - ss - tf - frd - zpk - rss - drss - nlsys - - -System interconnections -======================= -.. autosummary:: - :toctree: generated/ - - append - connect - feedback - interconnect - negate - parallel - series - connection_table - - -Frequency domain plotting -========================= - -.. autosummary:: - :toctree: generated/ - - bode_plot - describing_function_plot - nyquist_plot - gangof4_plot - nichols_plot - nichols_grid - -Note: For plotting commands that create multiple axes on the same plot, the -individual axes can be retrieved using the axes label (retrieved using the -`get_label` method for the matplotliib axes object). The following labels -are currently defined: - -* Bode plots: `control-bode-magnitude`, `control-bode-phase` -* Gang of 4 plots: `control-gangof4-s`, `control-gangof4-cs`, - `control-gangof4-ps`, `control-gangof4-t` - -Time domain simulation -====================== - -.. autosummary:: - :toctree: generated/ - - forced_response - impulse_response - initial_response - input_output_response - phase_plot - step_response - TimeResponseData - -Control system analysis -======================= -.. autosummary:: - :toctree: generated/ - - dcgain - describing_function - frequency_response - get_input_ff_index - get_output_fb_index - ispassive - margin - stability_margins - step_info - phase_crossover_frequencies - poles - zeros - pzmap - root_locus - sisotool - StateSpace.__call__ - TransferFunction.__call__ - -Matrix computations -=================== -.. autosummary:: - :toctree: generated/ - - care - ctrb - dare - dlyap - lyap - obsv - gram - -Control system synthesis -======================== -.. autosummary:: - :toctree: generated/ - - acker - create_statefbk_iosystem - dlqr - h2syn - hinfsyn - lqr - mixsyn - place - rootlocus_pid_designer - -Model simplification tools -========================== -.. autosummary:: - :toctree: generated/ - - minreal - balred - hsvd - modred - era - markov - -Nonlinear system support -======================== -.. autosummary:: - :toctree: generated/ - - describing_function - find_eqpt - linearize - input_output_response - summing_junction - flatsys.point_to_point - -Stochastic system support -========================= -.. autosummary:: - :toctree: generated/ - - correlation - create_estimator_iosystem - dlqe - lqe - white_noise - -.. _utility-and-conversions: - -Utility functions and conversions -================================= -.. autosummary:: - :toctree: generated/ - - augw - bdschur - canonical_form - damp - db2mag - isctime - isdtime - issiso - issys - mag2db - modal_form - norm - observable_form - pade - reachable_form - reset_defaults - sample_system - set_defaults - similarity_transform - ss2tf - ssdata - tf2ss - tfdata - timebase - unwrap - use_fbs_defaults - use_matlab_defaults - - diff --git a/doc/conventions.rst b/doc/conventions.rst deleted file mode 100644 index 2844fd47a..000000000 --- a/doc/conventions.rst +++ /dev/null @@ -1,321 +0,0 @@ -.. _conventions-ref: - -.. currentmodule:: control - -******************* -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. -Throughout this manual, we assume the `control` package has been -imported as `ct`. - -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 are provided. - -State space systems -------------------- -The :class:`StateSpace` class is used to represent state-space realizations -of linear time-invariant (LTI) systems: - -.. math:: - - \frac{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. - -To create a state space system, use the :func:`ss` function:: - - sys = ct.ss(A, B, C, D) - -State space systems can be manipulated using standard arithmetic operations -as well as the :func:`feedback`, :func:`parallel`, and :func:`series` -function. A full list of functions can be found in :ref:`function-ref`. - -Transfer functions ------------------- -The :class:`TransferFunction` class is used to represent input/output -transfer functions - -.. math:: - - G(s) = \frac{\text{num}(s)}{\text{den}(s)} - = \frac{a_0 s^m + a_1 s^{m-1} + \cdots + a_m} - {b_0 s^n + b_1 s^{n-1} + \cdots + b_n}, - -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:: - - sys = ct.tf(num, den) - -Transfer functions can be manipulated using standard arithmetic operations -as well as the :func:`feedback`, :func:`parallel`, and :func:`series` -function. A full list of functions can be found in :ref:`function-ref`. - -FRD (frequency response data) systems -------------------------------------- -The :class:`FrequencyResponseData` (FRD) class is used to represent systems in -frequency response data form. - -The main data members are `omega` and `fresp`, where `omega` is a 1D array -with the frequency points of the response, and `fresp` is a 3D array, with -the first dimension corresponding to the output index of the FRD, the second -dimension corresponding to the input index, and the 3rd dimension -corresponding to the frequency points in omega. - -FRD systems have a somewhat more limited set of functions that are -available, although all of the standard algebraic manipulations can be -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:: - - 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. If the system is SISO and the -`squeeze` argument to :func:`frequency_response` 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. The processing of the `squeeze` -keyword can be changed by calling the response function with a new -argument:: - - mag, phase, omega = response(squeeze=False) - - -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 - -Only the :class:`StateSpace`, :class:`TransferFunction`, and -:class:`InputOutputSystem` classes allow explicit representation of -discrete time systems. - -Systems must have compatible timebases in order to be combined. A discrete -time system with unspecified sampling time (`dt = True`) can be combined with -a system having a specified sampling time; the result will be a discrete time -system with the sample time of the latter system. Similarly, a system with -timebase `None` can be combined with a system having a specified timebase; the -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']`. - -Conversion between representations ----------------------------------- -LTI systems can be converted between representations either by calling the -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/ - - 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 initial 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 -different components (e.g., inputs, outputs or states). For return -arguments, an array of times is given as the first returned argument, -followed by one or more arrays of variable values. This convention is used -throughout the library, for example in the functions -:func:`forced_response`, :func:`step_response`, :func:`impulse_response`, -and :func:`initial_response`. - -.. note:: - The convention used by python-control is different from the convention - used in the `scipy.signal - `_ library. In - Scipy's convention the meaning of rows and columns is interchanged. - Thus, all 2D values must be transposed when they are used with functions - from `scipy.signal`_. - -The time vector is a 1D array with shape (n, ):: - - T = [t1, t2, t3, ..., tn ] - -Input, state, and output all follow the same convention. Columns are different -points in time, rows are different components:: - - U = [[u1(t1), u1(t2), u1(t3), ..., u1(tn)] - [u2(t1), u2(t2), u2(t3), ..., u2(tn)] - ... - ... - [ui(t1), ui(t2), ui(t3), ..., ui(tn)]] - -(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: - -The initial conditions are either 1D, or 2D with shape (j, 1):: - - X0 = [[x1] - [x2] - ... - ... - [xj]] - -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 -: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) - plot(response.time, response.outputs) - -The dimensions of the response properties depend on the function being -called and whether the system is SISO or MIMO. In addition, some time -response function can return multiple "traces" (input/output pairs), -such as the :func:`step_response` function applied to a MIMO system, -which will compute the step response for each input/output pair. See -:class:`TimeResponseData` for more details. - -The time response functions can also be assigned to a tuple, which extracts -the time and output (and optionally the state, if the `return_x` keyword is -used). This allows simple commands for plotting:: - - t, y = ct.step_response(sys) - plot(t, y) - -The output of a MIMO LTI system can be plotted like this:: - - t, y = ct.forced_response(sys, t, u) - plot(t, y[0], label='y_0') - 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 -response, can be computed like this:: - - ft = D @ U - -Finally, the `to_pandas()` function can be used to create a pandas dataframe:: - - df = response.to_pandas() - -The column labels for the data frame are `time` and the labels for the input, -output, and state signals (`u[i]`, `y[i]`, and `x[i]` by default, but these -can be changed using the `inputs`, `outputs`, and `states` keywords when -constructing the system, as described in :func:`ss`, :func:`tf`, and other -system creation function. Note that when exporting to pandas, "rows" in the -data frame correspond to time and "cols" (DataSeries) correspond to signals. - -.. currentmodule:: control -.. _package-configuration-parameters: - -Package configuration parameters -================================ - -The python-control library can be customized to allow for different default -values for selected parameters. This includes the ability to set the style -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:: - - 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:: - - ct.config.set_defaults('module', param1=val1, param2=val2, ...] - -Finally, there are also functions available set collections of variables based -on standard configurations. - -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). - - * statesp.default_dt and xferfcn.default_dt (None): set the default value - of dt when constructing new LTI systems - - * statesp.remove_useless_states (True): remove states that have no effect - on the input-output dynamics of the system - -Additional parameter variables are documented in individual functions - -Functions that can be used to set standard configurations: - -.. autosummary:: - :toctree: generated/ - - reset_defaults - use_fbs_defaults - use_matlab_defaults - use_legacy_defaults diff --git a/doc/cruise-control.py b/doc/cruise-control.py deleted file mode 120000 index cfa1c8195..000000000 --- a/doc/cruise-control.py +++ /dev/null @@ -1 +0,0 @@ -../examples/cruise-control.py \ No newline at end of file diff --git a/doc/cruise.ipynb b/doc/cruise.ipynb deleted file mode 120000 index f712e2d5f..000000000 --- a/doc/cruise.ipynb +++ /dev/null @@ -1 +0,0 @@ -../examples/cruise.ipynb \ No newline at end of file diff --git a/doc/descfcn.rst b/doc/descfcn.rst index 1e4a2f3fd..edff8603b 100644 --- a/doc/descfcn.rst +++ b/doc/descfcn.rst @@ -1,18 +1,26 @@ +.. currentmodule:: control + .. _descfcn-module: -******************** -Describing functions -******************** +Describing Functions +==================== For nonlinear systems consisting of a feedback connection between a -linear system and a static nonlinearity, it is possible to obtain a +linear system and a nonlinearity, it is possible to obtain a generalization of Nyquist's stability criterion based on the idea of describing functions. The basic concept involves approximating the -response of a static nonlinearity to an input :math:`u = A e^{j \omega -t}` as an output :math:`y = N(A) (A e^{j \omega t})`, where :math:`N(A) -\in \mathbb{C}` represents the (amplitude-dependent) gain and phase +response of a nonlinearity to an input :math:`u = A e^{j \omega t}` as +an output :math:`y = N(A) (A e^{j \omega t})`, where :math:`N(A) \in +\mathbb{C}` represents the (amplitude-dependent) gain and phase associated with the nonlinearity. +In the most common case, the nonlinearity will be a static, +time-invariant nonlinear function :math:`y = h(u)`. However, +describing functions can be defined for nonlinear input/output systems +that have some internal memory, such as hysteresis or backlash. For +simplicity, we take the nonlinearity to be static (memoryless) in the +description below, unless otherwise specified. + Stability analysis of a linear system :math:`H(s)` with a feedback nonlinearity :math:`F(x)` is done by looking for amplitudes :math:`A` and frequencies :math:`\omega` such that @@ -25,39 +33,45 @@ If such an intersection exists, it indicates that there may be a limit cycle of amplitude :math:`A` with frequency :math:`\omega`. Describing function analysis is a simple method, but it is approximate -because it assumes that higher harmonics can be neglected. +because it assumes that higher harmonics can be neglected. More +information on describing functions can be found in `Feedback Systems +`_, Section 10.5 +(Generalized Notions of Gain and Phase). + Module usage -============ +------------ -The function :func:`~control.describing_function` can be used to +The function :func:`describing_function` can be used to compute the describing function of a nonlinear function:: N = ct.describing_function(F, A) +where `F` is a scalar nonlinear function. + Stability analysis using describing functions is done by looking for -amplitudes :math:`a` and frequencies :math`\omega` such that +amplitudes :math:`A` and frequencies :math:`\omega` such that .. math:: 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 +the transfer function :math:`H(j\omega)` intersects the negative reciprocal of the describing function :math:`N(A)`. The -:func:`~control.describing_function_response` function computes the +:func:`describing_function_response` function computes the amplitude and frequency of any points of intersection:: - response = ct.describing_function_response(H, F, amp_range[, omega_range]) - response.intersections # frequency, amplitude pairs + dfresp = ct.describing_function_response(H, F, amp_range[, omega_range]) + dfresp.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. +with the Nyquist curve can be generated using ``dfresp.plot()``, which +calls the :func:`describing_function_plot` function. Pre-defined nonlinearities -========================== +-------------------------- To facilitate the use of common describing functions, the following nonlinearity constructors are predefined: @@ -76,17 +90,52 @@ nonlinearity:: F = ct.saturation_nonlinearity(1) -These functions use the -:class:`~control.DescribingFunctionNonlinearity`, which allows an -analytical description of the describing function. +These functions use the :class:`DescribingFunctionNonlinearity` class, +which allows an analytical description of the describing function. + + +Example +------- + +The following example demonstrates a more complicated interaction +between a (non-static) nonlinearity and a higher order transfer +function, resulting in multiple intersection points: + +.. testcode:: descfcn + + # Linear dynamics + H_simple = ct.tf([1], [1, 2, 2, 1]) + H_multiple = ct.tf(H_simple * ct.tf(*ct.pade(5, 4)) * 4, name='sys') + omega = np.logspace(-3, 3, 500) + + # Nonlinearity + F_backlash = ct.friction_backlash_nonlinearity(1) + amp = np.linspace(0.6, 5, 50) + + # Describing function plot + cplt = ct.describing_function_plot( + H_multiple, F_backlash, amp, omega, mirror_style=False) + +.. testcode:: descfcn + :hide: + + import matplotlib.pyplot as plt + plt.savefig('figures/descfcn-pade-backlash.png') + +.. image:: figures/descfcn-pade-backlash.png + Module classes and functions -============================ +---------------------------- .. autosummary:: - :toctree: generated/ :template: custom-class-template.rst - ~control.DescribingFunctionNonlinearity - ~control.friction_backlash_nonlinearity - ~control.relay_hysteresis_nonlinearity - ~control.saturation_nonlinearity + describing_function + describing_function_response + describing_function_plot + DescribingFunctionNonlinearity + friction_backlash_nonlinearity + relay_hysteresis_nonlinearity + saturation_nonlinearity + ~DescribingFunctionNonlinearity.__call__ + diff --git a/doc/describing_functions.ipynb b/doc/describing_functions.ipynb deleted file mode 120000 index 14bcb69a4..000000000 --- a/doc/describing_functions.ipynb +++ /dev/null @@ -1 +0,0 @@ -../examples/describing_functions.ipynb \ No newline at end of file diff --git a/doc/develop.rst b/doc/develop.rst new file mode 100644 index 000000000..c9b6738a8 --- /dev/null +++ b/doc/develop.rst @@ -0,0 +1,815 @@ +.. currentmodule:: control + +*************** +Developer Notes +*************** + +This chapter contains notes for developers who wish to contribute to +the Python Control Systems Library (python-control). It is mainly a +listing of the practices that have evolved over the course of +development since the package was created in 2009. + + +Package Structure +================= + +The python-control package is maintained on GitHub, with documentation +hosted by ReadTheDocs and a mailing list on SourceForge: + + * Project home page: https://python-control.org + * Source code repository: https://github.com/python-control/python-control + * Documentation: https://python-control.readthedocs.io/ + * Issue tracker: https://github.com/python-control/python-control/issues + * Mailing list: https://sourceforge.net/p/python-control/mailman/ + +GitHub repository file and directory layout: + - **python-control/** - main repository + + * LICENSE, Manifest, pyproject.toml, README.rst - package information + + * **control/** - primary package source code + + + __init__.py, _version.py, config.py - package definition + and configuration + + + iosys.py, nlsys.py, lti.py, statesp.py, xferfcn.py, + frdata.py - I/O system classes + + + bdalg.py, delay.py, canonical.py, margins.py, + sysnorm.py, modelsimp.py, passivity.py, robust.py, + statefbk.py, stochsys.py - analysis and synthesis routines + + + ctrlplot.py, descfcn.py, freqplot.py, grid.py, + nichols.py, pzmap.py, rlocus.py, sisotool.py, + timeplot.py, timeresp.py - response and plotting routines + + + ctrlutil.py, dtime.py, exception.py, mateqn.py - utility functions + + + phaseplot.py - phase plot module + + + optimal.py - optimal control module + + + **flatsys/** - flat systems subpackage + + - __init__.py, basis.py, bezier.py, bspline.py, flatsys.py, + linflat.py, poly.py, systraj.py - subpackage files + + + **matlab/** - MATLAB compatibility subpackage + + - __init__.py, timeresp.py, wrappers.py - subpackage files + + + **tests/** - unit tests + + * **.github/** - GitHub workflows + + * **benchmarks/** - benchmarking files (not well-maintained) + + * **doc/** - user guide and reference manual + + + index.rst - main documentation index + + + conf.py, Makefile - sphinx configuration files + + + intro.rst, linear.rst, statesp.rst, xferfcn.rst, nonlinear.rst, + flatsys.rst, iosys.rst, nlsys.rst, optimal.rst, phaseplot.rst, + response.rst, descfcn.rst, stochastic.rst, examples.rst - User + Guide + + + functions.rst, classes.rst, config.rst, matlab.rst, develop.rst - + Reference Manual + + + **examples/** + + - \*.py, \*.rst - Python scripts (linked to ../examples/\*.py) + + - \*.ipynb - Jupyter notebooks (linked to ../examples.ipynb) + + + **figures/** + + - \*.pdf, \*.png - Figures for inclusion in documentation + + * **examples/** + + + \*.py - Python scripts + + + \*.ipynb - Jupyter notebooks + + +Naming Conventions +================== + +Generally speaking, standard Python and NumPy naming conventions are +used throughout the package. + +* Python PEP 8 (code style): https://peps.python.org/pep-0008/ + + +Filenames +--------- + +* Source files are lower case, usually less than 10 characters (and 8 + or less is better). + +* Unit tests (in `control/tests/`) are of the form `module_test.py` or + `module_function.py`. + + +Class names +----------- + +* Most class names are in camel case, with long form descriptions of + the object purpose/contents (`TimeResponseData`). + +* Input/output class names are written out in long form as they aren't + too long (`StateSpace`, `TransferFunction`), but for very long names + 'IO' can be used in place of 'InputOutput' (`NonlinearIOSystem`) and + 'IC' can be used in place of 'Interconnected' (`LinearICSystem`). + +* Some older classes don't follow these guidelines (e.g., `LTI` instead + of `LinearTimeInvariantSystem` or `LTISystem`). + + +Function names +-------------- + +* Function names are lower case with words separated by underscores. + +* Function names usually describe what they do + (`create_statefbk_iosystem`, `find_operating_points`) or what they + generate (`input_output_response`, `find_operating_point`). + +* Some abbreviations and shortened versions are used when names get + very long (e.g., `create_statefbk_iosystem` instead of + `create_state_feedback_input_output_system`. + +* Factory functions for I/O systems use short names (partly from MATLAB + conventions, partly because they are pretty frequently used): + `frd`, `flatsys`, `nlsys`, `ss`, and `tf`. + +* Short versions of common commands with longer names are created by + creating an object with the shorter name as a copy of the main + object: `bode = bode_plot`, `step = step_response`, etc. + +* The MATLAB compatibility library (`control.matlab`) uses names that + try to line up with MATLAB (e.g., `lsim` instead of `forced_response`). + + +Parameter names +--------------- + +Parameter names are not (yet) very uniform across the package. A few +general patterns are emerging: + +* Use longer description parameter names that describe the action or + role (e.g., `trajectory_constraints` and `print_summary` in + `optimal.solve_optimal_trajectory`. + +System-creating commands: + +* Commands that create an I/O system should allow the use of the + following standard parameters: + + - `name`: system name + + - `inputs`, `outputs`, `states`: number or names of inputs, outputs, state + + - `input_prefix`, `output_prefix`, `state_prefix`: change the default + prefixes used for naming signals. + + - `dt`: set the timebase. This one takes a bit of care, since if it is + not specified then it defaults to + `config.defaults['control.default_dt']`. This is different than + setting `dt` = None, so `dt` should always be part of `**kwargs`. + + These keywords can be parsed in a consistent way using the + `iosys._process_iosys_keywords` function. + +System arguments: + +* :code:`sys` when an argument is a single input/output system + (e.g. `bandwidth`). + +* `syslist` when an argument is a list of systems (e.g., + `interconnect`). A single system should also be OK. + +* `sysdata` when an argument can either be a system, a list of + systems, or data describing a response (e.g, `nyquist_response`). + + .. todo:: For a future release (v 0.11.x?) we should make this more + consistent across the package. + +Signal arguments: + +* Factory functions use `inputs`, `outputs`, and `states` to provide + either the number of each signal or a list of labels for the + signals. + +Order of arguments for functions taking inputs, outputs, state, time, +frequency, etc: + +* The default order for providing arguments in state space models is + ``(t, x, u, params)``. This is the generic order that should be + used in functions that take signals as parameters, but permuted so + that required arguments go first, common arguments go next (as + keywords, in the order listed above if they also work as positional + arguments), and infrequent arguments go last (in order listed + above). For example:: + + def model_update(t, x, u, params) + resp = initial_response(sys, timepts, x0) # x0 required + resp = input_output_response(sys, timepts, u, x0) # u required + resp = TimeResponseData( + timepts, outputs, states=states, inputs=inputs) + + In the last command, note that states precedes inputs because not + all TimeResponseData elements have inputs (e.g., `initial_response`). + +* The default order for providing arguments in the frequency domain is + system/response first, then frequency:: + + resp = frequency_response(sys, omega) + sys_frd = frd(sys_tf, omega) + sys = frd(response, omega) + +Time and frequency responses: + +* Use `timepts` for lists of times and `omega` for lists of + frequencies at which systems are evaluated. For example:: + + ioresp = ct.input_output_response(sys, timepts, U) + cplt = ct.bode_plot(sys, omega) + +* Use `inputs`, `outputs`, `states`, :code:`time` for time response + data attributes. These should be used as parameter names when + creating `TimeResponseData` objects and also as attributes when + retrieving response data (with dimensions dependent on `squeeze` + processing). These are stored internally in non-squeezed form using + `u`, `y`, `x`, and `t`, but the internal data should generally not + be accessed directly. For example:: + + plt.plot(ioresp.time, ioresp.outputs[0]) + tresp = ct.TimeResponseData(time, outputs, states, ...) # (internal call) + + - Note that the use of `inputs`, `outputs`, and `states` for both + factory function specifications as well as response function + attributes is a bit confusing. + +* Use `frdata`, `omega` for frequency response data attributes. These + should be used as parameter names when creating + `FrequencyResponseData` objects and also as attributes when + retrieving response data. The `frdata` attribute is stored as a 3D + array indexed by outputs, inputs, frequency. + +* Use `complex`, `magnitude`, `phase` for frequency response + data attributes with squeeze processing. For example:: + + ax = plt.subplots(2, 1) + ax[0].loglog(fresp.omega, fresp.magnitude) + ax[1].semilogx(fresp.omega, fresp.phase) + + - The frequency response is stored internally in non-squeezed form + as `fresp`, but this is generally not accessed directly by users. + + - Note that when creating time response data the independent + variable (time) is the first argument whereas for frequency + response data the independent variable (omega) is the second + argument. This is because we also create frequency response data + from a linear system using a call ``frd(sys, omega)``, and + rename frequency response data using a call ``frd(sys, + name='newname')``, so the system/data need to be the first + argument. For time response data we use the convention that we + start with time and then list the arguments in the most frequently + used order. + +* Use `response` or `resp` for generic response objects (time, + frequency, describing function, Nyquist, etc). + + - Note that when responses are evaluated as tuples, the ordering of + the dependent and independent variables switches between time and + frequency domain:: + + t, y = ct.step_response(sys) + mag, phase, omega = ct.frequency_response(sys) + + To avoid confusion, it is better to use response objects:: + + tresp = ct.step_response(sys) + t, y = tresp.time, tresp.outputs + + fresp = ct.frequency_response(sys) + omega, response = fresp.omega, fresp.response + mag, phase, omega = fresp.magnitude, fresp.phase, fresp.omega + + +Parameter aliases +----------------- + +As described above, parameter names are generally longer strings that +describe the purpose of the parameter. Similar to `matplotlib` (e.g., +the use of `lw` as an alias for `linewidth`), some commonly used +parameter names can be specified using an "alias" that allows the use +of a shorter key. + +Named parameter and keyword variable aliases are processed using the +:func:`config._process_kwargs` and :func:`config._process_param` +functions. These functions allow the specification of a list of +aliases and a list of legacy keys for a given named parameter or +keyword. To make use of these functions, the +:func:`~config._process_kwargs` is first called to update the `kwargs` +variable by replacing aliases with the full key:: + + _process_kwargs(kwargs, aliases) + +The values for named parameters can then be assigned to a local +variable using a call to :func:`~config._process_param` of the form:: + + var = _process_param('param', param, kwargs, aliases) + +where `param` is the named parameter used in the function signature +and var is the local variable in the function (may also be `param`, +but doesn't have to be). + +For example, the following structure is used in `input_output_response`:: + + def input_output_response( + sys, timepts=None, inputs=0., initial_state=0., params=None, + ignore_errors=False, transpose=False, return_states=False, + squeeze=None, solve_ivp_kwargs=None, evaluation_times='T', **kwargs): + """Compute the output response of a system to a given input. + + ... rest of docstring ... + + """ + _process_kwargs(kwargs, _timeresp_aliases) + T = _process_param('timepts', timepts, kwargs, _timeresp_aliases) + U = _process_param('inputs', inputs, kwargs, _timeresp_aliases, sigval=0.) + X0 = _process_param( + 'initial_state', initial_state, kwargs, _timeresp_aliases, sigval=0.) + +Note that named parameters that have a default value other than None +must given the signature value (`sigval`) so that +`~config._process_param` can detect if the value has been set (and +issue an error if there is an attempt to set the value multiple times +using alias or legacy keys). + +The alias mapping is a dictionary that returns a tuple consisting of +valid aliases and legacy aliases:: + + alias_mapping = { + 'argument_name_1': (['alias', ...], ['legacy', ...]), + ...} + +If an alias is present in the dictionary of keywords, it will be used +to set the value of the argument. If a legacy keyword is used, a +warning is issued. + +The following tables summarize the aliases that are currently in use +through the python-control package: + +Time response aliases (via `timeresp._timeresp_aliases`): + + .. list-table:: + :header-rows: 1 + + * - Key + - Aliases + - Legacy keys + - Comment + * - evaluation_times + - t_eval + - + - List of times to evaluate the time response (defaults to `timepts`). + * - final_output + - yfinal + - + - Final value of the output (used for :func:`step_info`) + * - initial_state + - X0 + - x0 + - Initial value of the state variable. + * - input_indices + - input + - + - Index(es) to use for the input (used in + :func:`step_response`, :func:`impulse_response`. + * - inputs + - U + - u + - Value(s) of the input variable (time trace or individual point). + * - output_indices + - output + - + - Index(es) to use for the output (used in + :func:`step_response`, :func:`impulse_response`. + * - outputs + - Y + - y + - Value(s) of the output variable (time trace or individual point). + * - return_states + - return_x + - + - Return the state when accessing a response via a tuple. + * - timepts + - T + - + - List of time points for time response functions. + * - timepts_num + - T_num + - + - Number of points to use (e.g., if `timepts` is just the final time). + +Optimal control aliases (via `optimal._optimal_aliases`: + + .. list-table:: + :header-rows: 1 + + * - Key + - Aliases + - Comment + * - final_state + - xf + - Final state for trajectory generation problems (flatsys, optimal). + * - final_input + - uf + - Final input for trajectory generation problems (flatsys). + * - initial_state + - x0, X0 + - Initial state for optimization problems (flatsys, optimal). + * - initial_input + - u0, U0 + - Initial input for trajectory generation problems (flatsys). + * - initial_time + - T0 + - Initial time for optimization problems. + * - integral_cost + - trajectory_cost, cost + - Cost function that is integrated along a trajectory. + * - return_states + - return_x + - Return the state when accessing a response via a tuple. + * - trajectory_constraints + - constraints + - List of constraints that hold along a trajectory (flatsys, optimal) + + +Documentation Guidelines +======================== + +The python-control package is documented using docstrings and Sphinx. +Reference documentation (class and function descriptions, with details +on parameters) should all go in docstrings. User documentation in +more narrative form should be in the `.rst` files in `doc/`, where it +can be incorporated into the User Guide. All significant +functionality should have a narrative description in the User Guide in +addition to docstrings. + +Generally speaking, standard Python and NumPy documentation +conventions are used throughout the package: + +* Python PEP 257 (docstrings): https://peps.python.org/pep-0257/ +* Numpydoc Style guide: https://numpydoc.readthedocs.io/en/latest/format.html + + +General docstring info +---------------------- + +The guiding principle used to guide how docstrings are written is +similar to NumPy (as articulated in the `numpydoc style guide +`_): + + A guiding principle is that human readers of the text are given + precedence over contorting docstrings so our tools produce nice + output. Rather than sacrificing the readability of the docstrings, + we have written pre-processors to assist Sphinx in its task. + +To that end, docstrings in `python-control` should use the following +guidelines: + +* Use single backticks around all Python objects. The Sphinx + configuration file (`doc/conf.py`) defines `default_role` to be + `py:obj`, so everything in a single backtick will be rendered in + code form and linked to the appropriate documentation if it exists. + + - Note: consistent with numpydoc recommendations, parameters names + for functions should be in single backticks, even though they + don't generate a link (but the font will still be OK). + + - The `doc/_static/custom.css` file defines the style for Python + objects and is configured so that linked objects will appear in a + bolder type, so that it is easier to see what things you can click + on to get more information. + + - By default, the string \`sys\` in docstrings would normally + generate a link to the :mod:`sys` Python module. To avoid this, + `conf.py` includes code that converts \`sys\` in docstrings to + \:code\:\`sys`, which renders as :code:`sys` (code style, with no + link). In ``.rst`` files this construction should be done + manually, since ``.rst`` files are not pre-processed as a + docstring. + +* Use double backticks for inline code, such as a Python code fragments. + + - In principle single backticks might actually work OK given the way + that the `py:obj` processing works in Sphinx, but the inclusion of + code is somewhat rare and the extra two backticks seem like a + small sacrifice (and far from a "contortion"). + +* Avoid the use of backticks and \:math\: for simple formulas where + the additional annotation or formatting does not add anything. For + example "-c <= x <= c" (without the double quotes) in + `relay_hysteresis_nonlinearity`. + + - Some of these formulas might be interpreted as Python code + fragments, but they only need to be in double quotes if that makes + the documentation easier to understand. + + - Examples: + + * \`dt\` > 0 not \`\`dt > 0\`\` (`dt` is a parameter) + * \`squeeze\` = True not \`\`squeeze = True\`\` nor squeeze = True. + * -c <= x <= c not \`\`-c <= x <= c\`\` nor \:math\:\`-c \\leq x + \\leq c`. + * \:math\:\`|x| < \\epsilon\` (becomes :math:`|x| < \epsilon`) + +* Built-in Python objects (True, False, None) should be written with no + backticks and should be properly capitalized. + + - Another possibility here is to use a single backtick around + built-in objects, and the `py:obj` processing will then generate a + link back to the primary Python documentation. That seems + distracting for built-ins like `True`, `False` and `None` (written + here in single backticks) and using double backticks looks fine in + Sphinx (``True``, ``False``, ``None``), but seemed to cross the + "contortions" threshold. + +* Strings used as arguments to parameters should be in single + (forward) ticks ('eval', 'rows', etc) and don't need to be rendered + as code if just listed as part of a docstring. + + - The rationale here is similar to built-ins: adding 4 backticks + just to get them in a code font seems unnecessary. + + - Note that if a string is included in Python assignment statement + (e.g., ``method='slycot'``) it looks quite ugly in text form to + have it enclosed in double backticks (\`\`method='slycot'\`\`), so + OK to use method='slycot' (no backticks) or `method` = 'slycot' + (backticks with extra spaces). + +* References to the `defaults` dictionary should be of the form + \`config.defaults['module.param']\` (like a parameter), which + renders as `config.defaults['module.param']` in Sphinx. + + - It would be nice to have the term show up as a link to the + documentation for that parameter (in the + :ref:`package-configuration-parameters` section of the Reference + Manual), but the special processing to do that hasn't been + implemented. + + - Depending on placement, you can end up with lots of white space + around defaults parameters (also true in the docstrings). + +* Math formulas can be written as plain text unless the require + special symbols (this is consistent with numpydoc) or include Python + code. Use the ``:math:`` directive to handle symbols. + +Examples of different styles: + +* Single backticks to a a function: `interconnect` + +* Single backticks to a parameter (no link): `squeeze` + +* Double backticks to a code fragment: ``subsys = sys[i][j]``. + +* Built-in Python objects: True, False, None + +* Defaults parameter: `config.defaults['control.squeeze_time_response']` + +* Inline math: :math:`\eta = m \xi + \beta` + + +Function docstrings +------------------- + +Follow numpydoc format with the following additional details: + +* All functions should have a short (< 64 character) summary line that + starts with a capital letter and ends with a period. + +* All parameter descriptions should start with a capital letter and + end with a period. An exception is parameters that have a list of + possible values, in which case a phrase sending in a colon (:) + followed by a list (without punctuation) is OK. + +* All parameters and keywords must be documented. The + `docstrings_test.py` unit test tries to flag as many of these as + possible. + +* Include an "Examples" section for all non-trivial functions, in a + form that can be checked by running `make doctest` in the `doc` + directory. This is also part of the CI checks. + +For functions that return a named tuple, bundle object, or class +instance, the return documentation should include the primary elements +of the return value:: + + Returns + ------- + resp : `TimeResponseData` + Input/output response data object. When accessed as a tuple, returns + ``time, outputs`` (default) or ``time, outputs, states`` if + `return_states` is True. The `~TimeResponseData.plot` method can be + used to create a plot of the time response(s) (see `time_response_plot` + for more information). + resp.time : array + Time values of the output. + resp.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). + resp.states : array + Time evolution of the state vector, represented as a 2D array indexed by + state and time. + resp.inputs : array + Input(s) to the system, indexed by input and time. + + +Class docstrings +---------------- + +Follow numpydoc format with the follow additional details: + +* Parameters used in creating an object go in the class docstring and + not in the `__init__` docstring (which is not included in the + Sphinx-based documentation). OK for the `__init__` function to have + no docstring. + +* Parameters that are also attributes only need to be documented once + (in the "Parameters" or "Additional Parameters" section of the class + docstring). + +* Attributes that are created within a class and that might be of + interest to the user should be documented in the "Attributes" + section of the class docstring. + +* Classes should not include a "Returns" section (since they always + return an instance of the class). + +* Functions and attributes that are not intended to be accessed by + users should start with an underscore. + +I/O system classes: + +* Subclasses of `InputOutputSystem` should always have a factory + function that is used to create them. The class documentation only + needs to document the required parameters; the full list of + parameters (and optional keywords) can and should be documented in + the factory function docstring. + + +User Guide +---------- + +The purpose of the User Guide is provide a *narrative* description of +the key functions of the package. It is not expected to cover every +command, but should allow someone who knows about control system +design to get up and running quickly. + +The User Guide consists of chapters that are each their own separate +`.rst` file and each of them generates a separate page. Chapters are +divided into sections whose names appear in the index on the left of +the web page when that chapter is being viewed. In some cases a +section may be in its own file, included in the chapter page by using +the `include` directive (see `nlsys.py` for an example). + +Sphinx files guidelines: + +* Each file should declare the `currentmodule` at or near the top of + the file. Except for subpackages (`control.flatsys`) and modules + that need to be imported separately (`control.optimal`), + `currentmodule` should be set to control. + +* When possible, sample code in the User Guide should use Sphinx + doctest directives so that the code is executed by `make doctest`. + Two styles are possible: doctest-style blocks (showing code with a + prompt and the expected response) and code blocks (using the + `testcode` directive). + +* When referring to the python-control package, several different forms + can be used: + + - Full name: "the Python Control Systems Library (python-control)" + (used sparingly, mainly at the tops of chapters). + + - Adjective form: "the python-control package" or "a python-control + module" (this is the most common form). + + - Noun form: "`python-control`" (only used occasionally). + +* Unlike docstrings, the documentation in the User Guide should use + backticks and \:math\: more liberally when it is appropriate to + highlight/format code properly. However, Python built-ins should + still just be written as True, False, and None (no backticks), for + formatting consistency. + + - The Sphinx documentation is not read in "raw" form, so OK to add + the additional annotations. + + - The Python built-ins occur frequently and are capitalized, and so + the additional formatting doesn't add much and would be + inconsistent if you jump from the User Guide to the Reference + Manual (e.g., to look at a function more closely via a link in the + User Guide). + + +Reference Manual +---------------- + +The Reference Manual should provide a fairly comprehensive description +of every class, function, and configuration variable in the package. +All primary functions and classes bust be included here, since the +Reference Manual generates the stub files used by Sphinx. + + +Modules and subpackages +----------------------- + +When documenting (independent) modules and subpackages (refereed to +here collectively as modules), use the following guidelines for +documentation: + +* In module docstrings, refer to module functions and classes without + including the module prefix. This will let Sphinx set up the links + to the functions in the proper way and has the advantage that it + keeps the docstrings shorter. + +* Objects in the parent (`control`) package should be referenced using + the `~control` prefix, so that Sphinx generates the links properly + (otherwise it only looks within the package). + +* In the User Guide, set ``currentmodule`` to ``control`` and refer to + the module objects using the prefix `~prefix` in the text portions + of the document but `px` (shortened prefix) in the code sections. + This will let users copy and past code from the examples and is + consistent with the use of the `ct` short prefix. Since this is in + the User Guide, the additional characters are not as big an issue. + +* If you include an `autosummary` of functions in the User Guide + section, list the functions using the regular prefix (without ``~``) + to remind everyone the function is in a module. + +* When referring to a module function or class in a docstring or User + Guide section that is not part of the module, use the fully + qualified function or class (\'prefix.function\'). + +The main overarching principle should be to make sure that references +to objects that have more detailed information should show up as a +link, not as code. + + +Utility Functions +================= + +The following utility functions can be used to help with standard +processing and parsing operations: + +.. autosummary:: + :toctree: generated/ + + config._process_legacy_keyword + config._process_kwargs + config._process_param + exception.cvxopt_check + exception.pandas_check + exception.slycot_check + iosys._process_iosys_keywords + mateqn._check_shape + statesp._convert_to_statespace + statesp._ssmatrix + xferfcn._convert_to_transfer_function + + +Sample Files +============ + + +Code template +------------- + +The following file is a template for a python-control module. It can +be found in `python-control/doc/examples/template.py`. + +.. literalinclude:: examples/template.py + :language: python + :linenos: + + +Documentation template +---------------------- + +The following file is a template for a documentation file. It can be +found in `python-control/doc/examples/template.rst`. + +.. literalinclude:: examples/template.rst + :language: text + :linenos: + :lines: 3- diff --git a/doc/examples.rst b/doc/examples.rst index 21364157e..2937fecab 100644 --- a/doc/examples.rst +++ b/doc/examples.rst @@ -1,16 +1,18 @@ -.. _examples: .. currentmodule:: control +.. _examples: + ******** Examples ******** -The source code for the examples below are available in the `examples/` -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). +The source code for the examples below are available in the +`examples/` subdirectory of the source code distribution. They can +also be accessed online via the `python-control GitHub repository +`_. -Python scripts +Python Scripts ============== The following Python scripts document the use of a variety of methods in the @@ -20,23 +22,25 @@ other sources. .. toctree:: :maxdepth: 1 - secord-matlab - pvtol-nested - pvtol-lqr - rss-balred - phase_plane_plots - robust_siso - robust_mimo - scherer_etal_ex7_H2_h2syn - scherer_etal_ex7_Hinf_hinfsyn - cruise-control - steering-gainsched - steering-optimal - kincar-flatsys - mrac_siso_mit - mrac_siso_lyapunov - -Jupyter notebooks + examples/secord-matlab + examples/pvtol-nested + examples/pvtol-lqr + examples/rss-balred + examples/phase_plane_plots + examples/robust_siso + examples/robust_mimo + examples/scherer_etal_ex7_H2_h2syn + examples/scherer_etal_ex7_Hinf_hinfsyn + examples/cruise-control + examples/steering-gainsched + examples/steering-optimal + examples/kincar-flatsys + examples/mrac_siso_mit + examples/mrac_siso_lyapunov + examples/markov + examples/era_msd + +Jupyter Notebooks ================= The examples below use `python-control` in a Jupyter notebook environment. @@ -49,14 +53,28 @@ online sources. .. toctree:: :maxdepth: 1 - cruise - describing_functions - interconnect_tutorial - kincar-fusion - mhe-pvtol - mpc_aircraft - pvtol-lqr-nested - pvtol-outputfbk - simulating_discrete_nonlinear - steering - stochresp + examples/cruise + examples/describing_functions + examples/interconnect_tutorial + examples/mpc_aircraft + examples/pvtol-lqr-nested + examples/pvtol-outputfbk + examples/simulating_discrete_nonlinear + examples/steering + examples/stochresp + +Google Colab Notebooks +====================== + +A collection of Jupyter notebooks are available on `Google Colab +`_, where they can be executed +through a web browser: + +* `Caltech CDS 110 Google Colab notebooks + `_: + Jupyter notebooks created by Richard Murray for CDS 110 (Analysis + and Design of Feedback Systems) at Caltech. + +Note: in order to execute the Jupyter notebooks in this collection, +you will need a Google account that has access to the Google +Colaboratory application. diff --git a/doc/examples/.gitignore b/doc/examples/.gitignore new file mode 100644 index 000000000..87620ac7e --- /dev/null +++ b/doc/examples/.gitignore @@ -0,0 +1 @@ +.ipynb_checkpoints/ diff --git a/doc/examples/cruise-control.py b/doc/examples/cruise-control.py new file mode 120000 index 000000000..b232fda38 --- /dev/null +++ b/doc/examples/cruise-control.py @@ -0,0 +1 @@ +../../examples/cruise-control.py \ No newline at end of file diff --git a/doc/cruise-control.rst b/doc/examples/cruise-control.rst similarity index 100% rename from doc/cruise-control.rst rename to doc/examples/cruise-control.rst diff --git a/doc/examples/cruise.ipynb b/doc/examples/cruise.ipynb new file mode 120000 index 000000000..4e737aa10 --- /dev/null +++ b/doc/examples/cruise.ipynb @@ -0,0 +1 @@ +../../examples/cruise.ipynb \ No newline at end of file diff --git a/doc/examples/describing_functions.ipynb b/doc/examples/describing_functions.ipynb new file mode 120000 index 000000000..b45877fc1 --- /dev/null +++ b/doc/examples/describing_functions.ipynb @@ -0,0 +1 @@ +../../examples/describing_functions.ipynb \ No newline at end of file diff --git a/doc/examples/era_msd.py b/doc/examples/era_msd.py new file mode 120000 index 000000000..40783be13 --- /dev/null +++ b/doc/examples/era_msd.py @@ -0,0 +1 @@ +../../examples/era_msd.py \ No newline at end of file diff --git a/doc/examples/era_msd.rst b/doc/examples/era_msd.rst new file mode 100644 index 000000000..de702406e --- /dev/null +++ b/doc/examples/era_msd.rst @@ -0,0 +1,15 @@ +ERA example, mass spring damper system +-------------------------------------- + +Code +.... +.. literalinclude:: era_msd.py + :language: python + :linenos: + + +Notes +..... + +1. The environment variable `PYCONTROL_TEST_EXAMPLES` is used for +testing to turn off plotting of the outputs.0 \ No newline at end of file diff --git a/doc/examples/interconnect_tutorial.ipynb b/doc/examples/interconnect_tutorial.ipynb new file mode 120000 index 000000000..69b840e70 --- /dev/null +++ b/doc/examples/interconnect_tutorial.ipynb @@ -0,0 +1 @@ +../../examples/interconnect_tutorial.ipynb \ No newline at end of file diff --git a/doc/examples/kalman-pvtol.ipynb b/doc/examples/kalman-pvtol.ipynb new file mode 100644 index 000000000..cef836d09 --- /dev/null +++ b/doc/examples/kalman-pvtol.ipynb @@ -0,0 +1,625 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "c017196f", + "metadata": {}, + "source": [ + "# Extended Kalman filter example (PVTOL)\n", + "\n", + "This notebook illustrates the implementation of an extended Kalman filter and the use of the estimated state for LQR feedback." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "544525ab", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import matplotlib.patches as patches\n", + "import control as ct" + ] + }, + { + "cell_type": "markdown", + "id": "859834cf", + "metadata": {}, + "source": [ + "## System definition\n", + "\n", + "We consider the dynamics of a planar vertical takeoff and landing (PVTOL) aircraft model:\n", + "\n", + "![PVTOL diagram](https://murray.cds.caltech.edu/images/murray.cds/7/7d/Pvtol-diagram.png)\n", + "\n", + "The dynamics of the system with disturbances on the $x$ and $y$ variables is given by\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", + "The measured values of the system are the position and orientation,\n", + "with added noise $n_x$, $n_y$, and $n_\\theta$:\n", + "$$\n", + " \\vec y = \\begin{bmatrix} x \\\\ y \\\\ \\theta \\end{bmatrix} + \n", + " \\begin{bmatrix} n_x \\\\ n_y \\\\ n_z \\end{bmatrix}.\n", + "$$\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "ffafed74", + "metadata": {}, + "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", + "Parameters: ['m', 'J', 'r', 'g', 'c']\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", + "from pvtol import pvtol, pvtol_noisy, plot_results\n", + "\n", + "# Find the equilibrium point corresponding to the origin\n", + "xe, ue = ct.find_operating_point(\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", + "x0, u0 = ct.find_operating_point(\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": "2b63bf5b", + "metadata": {}, + "source": [ + "We now define the properties of the noise and disturbances. To make things (a bit more) interesting, we include some cross terms between the noise in $\\theta$ and the noise in $x$ and $y$:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "1e1ee7c9", + "metadata": {}, + "outputs": [], + "source": [ + "# Disturbance and noise intensities\n", + "Qv = np.diag([1e-2, 1e-2])\n", + "Qw = np.array([[2e-4, 0, 1e-5], [0, 2e-4, 1e-5], [1e-5, 1e-5, 1e-4]])\n", + "Qwinv = np.linalg.inv(Qw)\n", + "\n", + "# Initial state covariance\n", + "P0 = np.eye(pvtol.nstates)" + ] + }, + { + "cell_type": "markdown", + "id": "e4c52c73", + "metadata": {}, + "source": [ + "## Control system design\n", + "\n", + "To design the control system, we first construct an estimator for the state (given the commanded inputs and measured outputs). Since this is a nonlinear system, we use the update law for the nominal system to compute the state update. We also make use of the linearization around the current state for the covariance update (using the function `pvtol.A(x, u)`, which is defined in `pvtol.py`, making this an extended Kalman filter)." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "3647bf15", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + ": sys[1]\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", + "C = np.eye(3, 6)\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 again\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", + "estimator = 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(estimator)" + ] + }, + { + "cell_type": "markdown", + "id": "ba3d2640", + "metadata": {}, + "source": [ + "For the controller, we will use an LQR feedback with physically motivated weights (see OBC, Example 3.5):" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "9787db61", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + ": sys[2]\n", + "Inputs (14): ['xd[0]', 'xd[1]', 'xd[2]', 'xd[3]', 'xd[4]', 'xd[5]', 'ud[0]', 'ud[1]', 'xh0', 'xh1', 'xh2', 'xh3', 'xh4', 'xh5']\n", + "Outputs (2): ['F1', 'F2']\n", + "States (0): []\n", + "\n", + "A = []\n", + "\n", + "B = []\n", + "\n", + "C = []\n", + "\n", + "D = [[-3.16227766e+00 -1.31948922e-07 8.67680175e+00 -2.35855555e+00\n", + " -6.98881821e-08 1.91220852e+00 1.00000000e+00 0.00000000e+00\n", + " 3.16227766e+00 1.31948922e-07 -8.67680175e+00 2.35855555e+00\n", + " 6.98881821e-08 -1.91220852e+00]\n", + " [-1.31948921e-06 3.16227766e+00 -2.32324826e-07 -2.36396240e-06\n", + " 4.97998224e+00 7.90913276e-08 0.00000000e+00 1.00000000e+00\n", + " 1.31948921e-06 -3.16227766e+00 2.32324826e-07 2.36396240e-06\n", + " -4.97998224e+00 -7.90913276e-08]] \n", + "\n", + ": sys[3]\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): ['pvtol_noisy_x0', 'pvtol_noisy_x1', 'pvtol_noisy_x2', 'pvtol_noisy_x3', 'pvtol_noisy_x4', 'pvtol_noisy_x5', 'sys[1]_x[0]', 'sys[1]_x[1]', 'sys[1]_x[2]', 'sys[1]_x[3]', 'sys[1]_x[4]', 'sys[1]_x[5]', 'sys[1]_x[6]', 'sys[1]_x[7]', 'sys[1]_x[8]', 'sys[1]_x[9]', 'sys[1]_x[10]', 'sys[1]_x[11]', 'sys[1]_x[12]', 'sys[1]_x[13]', 'sys[1]_x[14]', 'sys[1]_x[15]', 'sys[1]_x[16]', 'sys[1]_x[17]', 'sys[1]_x[18]', 'sys[1]_x[19]', 'sys[1]_x[20]', 'sys[1]_x[21]', 'sys[1]_x[22]', 'sys[1]_x[23]', 'sys[1]_x[24]', 'sys[1]_x[25]', 'sys[1]_x[26]', 'sys[1]_x[27]', 'sys[1]_x[28]', 'sys[1]_x[29]', 'sys[1]_x[30]', 'sys[1]_x[31]', 'sys[1]_x[32]', 'sys[1]_x[33]', 'sys[1]_x[34]', 'sys[1]_x[35]', 'sys[1]_x[36]', 'sys[1]_x[37]', 'sys[1]_x[38]', 'sys[1]_x[39]', 'sys[1]_x[40]', 'sys[1]_x[41]']\n", + "\n", + "Subsystems (3):\n", + " * ['x0', 'x1', 'x2', 'x3', 'x4', 'x5']>\n", + " * ['F1',\n", + " 'F2']>\n", + " * ['xh0', 'xh1', 'xh2', 'xh3', 'xh4', 'xh5']>\n", + "\n", + "Connections:\n", + " * pvtol_noisy.F1 <- sys[2].F1\n", + " * pvtol_noisy.F2 <- sys[2].F2\n", + " * pvtol_noisy.Dx <- Dx\n", + " * pvtol_noisy.Dy <- Dy\n", + " * pvtol_noisy.Nx <- Nx\n", + " * pvtol_noisy.Ny <- Ny\n", + " * pvtol_noisy.Nth <- Nth\n", + " * sys[2].xd[0] <- xd[0]\n", + " * sys[2].xd[1] <- xd[1]\n", + " * sys[2].xd[2] <- xd[2]\n", + " * sys[2].xd[3] <- xd[3]\n", + " * sys[2].xd[4] <- xd[4]\n", + " * sys[2].xd[5] <- xd[5]\n", + " * sys[2].ud[0] <- ud[0]\n", + " * sys[2].ud[1] <- ud[1]\n", + " * sys[2].xh0 <- sys[1].xh0\n", + " * sys[2].xh1 <- sys[1].xh1\n", + " * sys[2].xh2 <- sys[1].xh2\n", + " * sys[2].xh3 <- sys[1].xh3\n", + " * sys[2].xh4 <- sys[1].xh4\n", + " * sys[2].xh5 <- sys[1].xh5\n", + " * sys[1].x0 <- pvtol_noisy.x0\n", + " * sys[1].x1 <- pvtol_noisy.x1\n", + " * sys[1].x2 <- pvtol_noisy.x2\n", + " * sys[1].x3 <- pvtol_noisy.x3\n", + " * sys[1].x4 <- pvtol_noisy.x4\n", + " * sys[1].x5 <- pvtol_noisy.x5\n", + " * sys[1].F1 <- sys[2].F1\n", + " * sys[1].F2 <- sys[2].F2\n", + "\n", + "Outputs:\n", + " * x0 <- pvtol_noisy.x0\n", + " * x1 <- pvtol_noisy.x1\n", + " * x2 <- pvtol_noisy.x2\n", + " * x3 <- pvtol_noisy.x3\n", + " * x4 <- pvtol_noisy.x4\n", + " * x5 <- pvtol_noisy.x5\n", + " * F1 <- sys[2].F1\n", + " * F2 <- sys[2].F2\n", + " * xh0 <- sys[1].xh0\n", + " * xh1 <- sys[1].xh1\n", + " * xh2 <- sys[1].xh2\n", + " * xh3 <- sys[1].xh3\n", + " * xh4 <- sys[1].xh4\n", + " * xh5 <- sys[1].xh5\n" + ] + } + ], + "source": [ + "#\n", + "# LQR design w/ physically motivated weighting\n", + "#\n", + "# Shoot for 1 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", + "#\n", + "# Control system construction: combine LQR w/ EKF\n", + "#\n", + "# Use the linearization around the origin to design the optimal gains\n", + "# to see how they compare to the final value of P for the EKF\n", + "#\n", + "\n", + "# Construct the state feedback controller with estimated state as input\n", + "statefbk, _ = ct.create_statefbk_iosystem(pvtol, K, estimator=estimator)\n", + "print(statefbk, \"\\n\")\n", + "\n", + "# 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", + " [pvtol_noisy, statefbk, estimator],\n", + " inplist = statefbk.input_labels[0:pvtol.ninputs + pvtol.nstates] + \\\n", + " pvtol_noisy.input_labels[pvtol.ninputs:],\n", + " inputs = statefbk.input_labels[0:pvtol.ninputs + pvtol.nstates] + \\\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", + "print(clsys)" + ] + }, + { + "cell_type": "markdown", + "id": "5f527f16", + "metadata": {}, + "source": [ + "Note that we have to construct the closed loop system manually since we need to allow the disturbance and noise inputs to be sent to the closed loop system and `create_statefbk_iosystem` does not support this (to be fixed in an upcoming release)." + ] + }, + { + "cell_type": "markdown", + "id": "7bf558a0", + "metadata": {}, + "source": [ + "## Simulations\n", + "\n", + "Finally, we can simulate the system to see how it all works. We start by creating the noise for the system:" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "c2583a0e", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjUAAAGzCAYAAADXFObAAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAA1cVJREFUeJzsnXXcFMUfxz978RTw8NDdnYJgACIgoRiIiS0IKmJgByq22PJTVEQFbDGwFQUEaSkB6e6u5wGeuNrfH/fc3ezuzO7M3t49Ne/XC71nY2a2Zr7zrVFUVVUhkUgkEolEUsJxFXUDJBKJRCKRSJxACjUSiUQikUhKBVKokUgkEolEUiqQQo1EIpFIJJJSgRRqJBKJRCKRlAqkUCORSCQSiaRUIIUaiUQikUgkpQIp1EgkEolEIikVeIq6AckkFAph7969qFChAhRFKermSCQSiUQi4UBVVZw4cQK1a9eGy8XWx5QpoWbv3r2oV69eUTdDIpFIJBKJDXbt2oW6desy95cpoaZChQoAwjclMzOziFsjkUgkEomEh5ycHNSrVy86jrMoU0JNxOSUmZkphRqJRCKRSEoYVq4j0lFYIpFIJBJJqUAKNRKJRCKRSEoFUqiRSCQSiURSKihTPjUSiUQikSSCYDAIv99f1M0osXi9Xrjd7rjLkUKNRCKRSCQ2UVUV+/fvx/Hjx4u6KSWerKws1KxZM648clKokUgkEonEJhGBpnr16sjIyJCJXW2gqipyc3Nx8OBBAECtWrVslyWFGolEIpFIbBAMBqMCTZUqVYq6OSWa9PR0AMDBgwdRvXp126Yo6SgskUgkEokNIj40GRkZRdyS0kHkPsbjmySFGolEIpFI4kCanJzBifsohRqJRCKRSCSlAinUSCQSiUQi0TB79mwoigJFUTBw4EChc3v27Bk9d8WKFQlpHwsp1EgkEolEUoa45JJL0KdPH+q+hQsXQlEULF++HACwYcMGTJ48WXPMu+++i0aNGiEtLQ2dOnXC3LlzNfunTp2KxYsXJ6TtVkihRiIpARw95cOs9QcRDKlF3RSJRFLCGTp0KP766y/s2LHDsG/ixIno0KEDTj/9dABA9erVkZWVFd0/ZcoU3HvvvXj88cfx77//onv37ujfvz927twZPaZy5cqoVq1awq+DhhRqJJISwCVvz8OQyUvw6cLtRd0UiURigqqqyPUFiuSfqvJNei6++GJUr17doIHJzc3FlClTMHToUOa5b7zxBoYOHYphw4ahVatWGDt2LOrVq4f33nsvntvmGDJPjURSAthzPA8AMG3Nfgzu1qiIWyORSFjk+YNoPfqPIql77bPnIyPFelj3eDy46aabMHnyZIwePToadfTNN9/A5/Ph+uuvx8qVKw3n+Xw+LFu2DI8++qhme79+/bBgwQJnLiJOpKZGIpFIJJIyxi233ILt27dj9uzZ0W0TJ07E5ZdfjkqVKlHPOXz4MILBIGrUqKHZXqNGDezfvz+RzeVGamokEolEInGIdK8ba589v8jq5qVly5bo2rUrJk6ciF69emHLli2YO3cu/vzzT8tz9flkVFUtNrl6pFAjkUgkEolDKIrCZQIqDgwdOhR33XUX3nnnHUyaNAkNGjRA7969mcdXrVoVbrfboJU5ePCgQXtTVJRY89OYMWOgKAruvffeom6KRCKRSCQljquvvhputxtffPEFPv74YwwZMsRU45KSkoJOnTph+vTpmu3Tp09H165dE91cLkqGOKljyZIlmDBhAtq3b1/UTZFIJBKJpERSvnx5DBo0CKNGjUJ2djYGDx5sec7999+PG2+8EZ07d0aXLl0wYcIE7Ny5E8OHD098gzkocZqakydP4vrrr8cHH3zAdGaSSCQSiURizdChQ3Hs2DH06dMH9evXtzx+0KBBGDt2LJ599ll06NABc+bMwW+//YYGDRokobXWlDhNzZ133omLLroIffr0wfPPP296bEFBAQoKCqJ/5+TkJLp5EklCUVA8nPEkEknpoEuXLtz5bSKMGDECI0aMSFCL4qNEaWq++uorLF++HGPGjOE6fsyYMahYsWL0X7169RLcQokksaiQGYUlEknyqFu3Lq699lqhc/r37482bdokqEXmlBhNza5duzBy5Ej8+eefSEtL4zrnsccew/333x/9OycnRwo2EolEIpFYcNZZZ2HTpk0Awr43Inz44YfIywsnDOUxaTlJiRFqli1bhoMHD6JTp07RbcFgEHPmzMG4ceNQUFAAt1sbo5+amorU1NRkN1UiSRjS/CSRSJJBeno6mjZtauvcOnXqONwafkqMUNO7d2/8999/mm1DhgxBy5Yt8cgjjxgEGolEIpFIJGWLEiPUVKhQAW3bttVsK1euHKpUqWLYLpFIJBKJpOxRohyFJRKJRCKRSFiUGE0NDXIhLolEIpFIJGUbqamRSCQSiURSKpBCjUQikUgkklKBFGokEolEIpFYoigKFEVBVlaW0HlPP/109NyxY8cmpG0RpFAjkUgkEkkZYvz48ahQoQICgUB028mTJ+H1etG9e3fNsXPnzoWiKNi4cSMAYNKkSdHfEf7++2906tQJaWlpaNy4McaPH6/Z/+CDD2Lfvn2oW7dugq4ohhRqJBKJRCIpQ/Tq1QsnT57E0qVLo9vmzp2LmjVrYsmSJcjNzY1unz17NmrXro3mzZsDALKyslC9evXo/m3btuHCCy9E9+7d8e+//2LUqFG455578N1330WPKV++PGrWrJmUfHIlOvpJIpFIJJJihaoC/lzr4xKBNwNQrLOOt2jRArVr18bs2bNx9tlnAwgLL5deeilmzZqFBQsWoE+fPtHtvXr1YpY1fvx41K9fP2pWatWqFZYuXYrXXnsNV1xxRfzXJIgUaiQSiUQicQp/LvBi7aKpe9ReIKUc16E9e/bErFmz8OijjwIAZs2ahYcffhihUAizZs1Cnz594PP5sHDhQrz99tvMchYuXIh+/fpptp1//vn46KOP4Pf74fV67V+PDaT5SSKRSCSSMkbPnj0xf/58BAIBnDhxAv/++y/OPfdc9OjRI5oDbtGiRcjLyzPV1Ozfvx81atTQbKtRowYCgQAOHz6cyEugIjU1EkkJgkOzLJFIihJvRlhjUlR1c9KrVy+cOnUKS5YswbFjx9C8eXNUr14dPXr0wI033ohTp05h9uzZqF+/Pho3bmxalqLrmFRVpW5PBlKokUgkEonEKRSF2wRUlDRt2hR169bFrFmzcOzYMfTo0QMAULNmTTRq1Ajz58/HrFmzcN5555mWU7NmTezfv1+z7eDBg/B4PKhSpUrC2s9Cmp8kEolEIimD9OrVC7Nnz8bs2bPRs2fP6PYePXrgjz/+wKJFi0xNTwDQpUsXTJ8+XbPtzz//ROfOnZPuTwNIoUYikUgkkjJJr169MG/ePKxYsSKqqQHCQs0HH3yA/Px8S6Fm+PDh2LFjB+6//36sW7cOEydOxEcffYQHH3ww0c2nIoUaiUQikUjKIL169UJeXh6aNm2qcfbt0aMHTpw4gSZNmqBevXqmZTRq1Ai//fYbZs+ejQ4dOuC5557DW2+9VSTh3ID0qZFIJBKJpEzSsGHDqFMvSd26danbWfTo0QPLly93smm2kZoaiUQikUgkXFx77bXCyx28+OKLKF++PHbu3JmgVsWQmhqJRCKRSCSWbNq0CQCElzsYPnw4rr76agBAtWrVHG8XiRRqJBKJRCKRWNK0aVNb51WuXBmVK1d2uDV0pPlJIpFIJBJJqUAKNRKJRCKRxIGIU62EjRP3UQo1EolEIpHYIJJcLje3iFblLmVE7mM8SfukT41EIpFIJDZwu93IysrCwYMHAQAZGRlFst5RSUdVVeTm5uLgwYPIysoSdkQmkUKNRFKCkP2lRFK8qFmzJgBEBRuJfbKysqL30y5SqJFIJBKJxCaKoqBWrVqoXr06/H5/UTenxOL1euPS0ESQQo1EIpFIJHHidrsdGZQl8SEdhSUSiUQikZQKpFAjkUgkEomkVCCFGolEIpFIJKUCKdRIJBKJRCIpFUihRiKRSCQSSalACjWSMk92rh+3frIU01bvK+qmSEoZoZCKUEim0JdIkoUUaiRlnjdnbMT0tQcw/LPlRd0USSlCVVVcMm4ezh87Rwo2EkmSkHlqJGWewycLiroJklLIiYIA1uzNAQDsz8lH7az0Im6RRFL6kZoaSZlHrtUikUgkpQMp1EjKPFKkkSQCVVqcJJKkU2KEmvfeew/t27dHZmYmMjMz0aVLF/z+++9F3awyhVpKe+mSpKhRpAhWIilJ75hEUpIpMUJN3bp18dJLL2Hp0qVYunQpzjvvPFx66aVYs2ZNUTetTPDUj6vRZcxfOJ7rK+qmOI4cbyQSiaR0UGKEmksuuQQXXnghmjdvjubNm+OFF15A+fLlsWjRoqJuWpng44U7sD8nH18u3lXUTXEc6VMjkUgkpYMSGf0UDAbxzTff4NSpU+jSpQvzuIKCAhQUxCJbcnJyktE8SQlDijQSiURSOigxmhoA+O+//1C+fHmkpqZi+PDh+P7779G6dWvm8WPGjEHFihWj/+rVq5fE1kokEolEIkkmJUqoadGiBVasWIFFixbhjjvuwM0334y1a9cyj3/ssceQnZ0d/bdrV+kznUjiR5qfJAmhdPrVSyTFmhJlfkpJSUHTpk0BAJ07d8aSJUvwv//9D++//z71+NTUVKSmpiaziaWe0jj+l8ZrkhQvZNSaRJIcSpSmRo+qqhqfGYnEDnK4kSQaVaptJJKkUGI0NaNGjUL//v1Rr149nDhxAl999RVmz56NadOmFXXTJCUcqamRSCSS0kGJEWoOHDiAG2+8Efv27UPFihXRvn17TJs2DX379i3qppUpSuP4L00DkkRAamfkOyaRJIcSI9R89NFHRd0ECUqn76PU1EgSQSlNwC2RFGtKtE+NRCKRSCQSSQQp1EiEKI1KDampkSQCqaiRSJKPFGokkhIkqkkBrORQWheAlUiKM1KokZR5pKAgSQRSpJFIko8UaiRClEYBoBRekqQYIBU1EknykUKNpMzjKo2SmqRYIZPvSSTJQQo1pYB92Xk4nusr6maUWKRMI0kEUpCRSJKPFGpKOEdP+dBlzF/o8Oz0om6KRCIhIWSa0m6KCoZUTF97AAdP5Bd1UyRlHCnUlHDW78sp6iaUeKSiRpIISrkco+HLxTtx6ydL0feNOUXdFEkZRwo1kjKPIu1PkgRAamdKu4Azc90BAEB2nr+IWyIp60ihRiKEXMNGIhFH5qwpXuw6motth08VdTMkCaDErP0koZOMrrK0d8hSUSNJBNJRuHgSCIbQ/ZVZAIC1z56PjBQ5DJYmpKamhJMMeaOUyzRS+yRJCGoZchQuSRQEQtHfR0/JqNHShhRqJJaEiB65NGo1zK7p+39344t/diavMZJSg5Rjij/Sn670IfVuJZxkqLhDpbx3ZnVrgWAI901ZCQDo07o6qldIS16jJCWe0m62LQ3IZ1T6kJoaiSUhmx++LxDC2BkbsXznMYdb5CysyVqAkOZOFQST1BpJaUSOncUHqZwp3UihpoRTnH1qPl6wHWNnbMLl7y5wtkEOw6OClv2gRBRtSHfplmpKkhmnrAiYqqrim6W7sHZv2cplJs1PEkvsdsibDp5wuCWJoeR0xxKJxElKkjAmyvS1B/DQt6sAANtfuqiIW5M8pKamhJOMSYddn5oSMyMqvf2apAiR0U+SomT1nuyibkKREJdQk58v1/koTiTKd8WuT01J6cdlSLckEZAazkR8C/M2HcaMtQcSUHLppqT0S/FS2gM8WAgLNaFQCM899xzq1KmD8uXLY+vWrQCAJ598Eh999JHjDZSYQ3rvJ8p3RQ1ZH1OSKcUaaEkpJRhSccNH/2DYJ0tlrhVByD6zNH/6wTKqHhQWap5//nlMnjwZr7zyClJSUqLb27Vrhw8//NDRxkmsSY75qXR/HKyOrZRftiTBaM1Pzr5MQWIaLtdbEqOsfNalvd9mISzUfPLJJ5gwYQKuv/56uN3u6Pb27dtj/fr1jjZOYs6hEwV46bfE33Pb5ieT075avBPvzd5is0XOwtLUkOYDqc2RiKIyfkskyaCMyjTi0U979uxB06ZNDdtDoRD8fjljSCb3f70CGw4kPsIoEbbZR6f+BwC4sF1NNKhSzvkKBJA+NZJEkMjEbsVNyC5mzTGlrAz2oTLqVCOsqWnTpg3mzp1r2P7NN9+gY8eOjjRKwsfyHclJakd2zk6rNE/kBxwtL0JBIIiL3pqLxwqFJzOYmpqy2SdIHEKjqXH4XZLvZhyUkXtXVn1qhDU1Tz31FG688Ubs2bMHoVAIU6dOxYYNG/DJJ5/gl19+SUQbJQxcSZqukZ+GE8J/MlKTz95wCGv25mDN3hyMubyd6bFMnxrnmyUpszj7NmlMo46WXPop7YkQI5RRmUZcU3PJJZdgypQp+O2336AoCkaPHo1169bh559/Rt++fRPRRgmDZKmgSe2MyIfC6jycEoxmrjuAPcfzGPsFCiNupKq51jLaK0gcIZGvj3w17VNW7l1ZdRS2lVH4/PPPx/nnn+90WySCuFzJkWpIIUToQ2Ec6sTH9sea/Rj+2XIA9GyZbo578/t/+wBoZ7qqGpNxyFZKvxuJOPYmAyWR4ubjY4bmuy5B7RYlKH1q+Ni1axd2794d/Xvx4sW49957MWHCBEcbJrHGnaQvknQ4c0J74UQHP3/zEdP9Hguh5lRBAHd8vhx3fL4cpwpifj12tVKljVBIxcEcmVwzHsry+6Nn5roDuHbCIuw+llvUTSkzGlgnZZrJ87ehx6uzisXzs0JYqLnuuuswa9YsAMD+/fvRp08fLF68GKNGjcKzzz7reAMlbJK1bonT6d6d0NRY2cWttFj5/tiq2wWBWHZBVqmleUZH447Pl+HMF2di7qZDRd2UEksiQ7pL2rg89OOlWLj1CJfjvlOEQipy8o0RuSXs1tnGyeinp39eix1HcjHm9+KftkVYqFm9ejXOPPNMAMDXX3+Ndu3aYcGCBfjiiy8wefJkp9snMSFJ1ieNECLynbAOdaJDtiqD1GJZfdykwKIRuMrw2j1/rAmn3/9g7rYibknpwPHopxI6NB8+mbzsx7d+shTtn/4T6/ezV6kuzd91Inxq/IHin15eWKjx+/1ITU0FAMyYMQMDBgwAALRs2RL79u1ztnUSU5IV/aQVauL/UJww8VidRvrUWIU26n1qYnUUvx6vNK8qXNpIlqOwfCXozFx/EADw+aKdmu2MeUuJ52BOPmauOxCdxJXVkG5beWrGjx+PuXPnYvr06bjgggsAAHv37kWVKlUcb6CETfI0NbHfTnwmjpRh8cFqhBoB9RLL1FZcBo6Vu47jp5V7LY87dKIAb8/chP3Z8fnFlBX/g0SgXdAycfexJD0is/cp1xeALwmagOI4WXGCHq/OxtCPl+LHlXsAJOa9KC79oBnCQs3LL7+M999/Hz179sS1116L0047DQDw008/Rc1SiWDMmDE444wzUKFCBVSvXh0DBw7Ehg0bElZfSSB5PjXOOgqTmhq7l2BpfiLebJpQQ9478neiV1aOl+w8P+758l+s2HXc9Lg7PluG16dvxOBJi5PTMIkBp33RNGU7W1yRk+cLovXoP9BlzEzHyzYIMQlck6soySv0E5yz8TAAGdLNTc+ePXH48GHk5OSgUqVK0e233XYbMjIyHG0cyd9//40777wTZ5xxBgKBAB5//HH069cPa9euRblyRZtmv6hwCYuk9tAm3xPRetCPdWLVb6t2uImbExDQ1IRKSIe3/fApdKiXxdy/tDDb9Pr98S2jUVY7RidIrPkp/okBSTCkYtjHS9CiZiYe7d8y/gIF2Vi43MuRJKw4nshMz8WByPtQRiO67eWpcbvdGoEGABo2bOhEe5hMmzZN8/ekSZNQvXp1LFu2DOeee25C6y6uJC2k23byPWfL05Qt4CgsZn4qGT1BSVADS2IUd03N/M2HMWvDIczacCipQs2RkwXYfiTXMgWDkxTnT/y1PzagWoVU3Ny1oe0yIr6WiVj7qSTk6+ISak4//XTMnDkTlSpVQseOHU3NHsuXL3escWZkZ2cDACpXrsw8pqCgAAUFBdG/c3LYXvAlkaQ5ChOaFUeyAcdfhFAZgZC5aoi8j077D5V0ivMAUNxJpE8N+VwO5BSgeoU0pKe4bZeXDF8WGt1e/gv5/hAevqBF0uosrj41mw6cwLhZmwEgTqEm/P+yqmXlEmouvfTSaMTTwIEDE9keLlRVxf33349zzjkHbdu2ZR43ZswYPPPMM0lsWXKxK9McPeXDZ4t24IpOdVEnK93y+FACfWrsdjBWzSDLtdLUkPdRdUCLVNLRJlsswobEyZ7jeaiVmZa0zNt6knXvrn5/IaqWT8XSJ/rYLiNZj1l/T/L9YWFq9obE5UPSaxcS6esUDycKnFncNxIkUVYzCnMJNU899RT1d1Fx1113YdWqVZg3b57pcY899hjuv//+6N85OTmoV69eopuXNOxqah78ZiX+Wn8QXy3eiQWP9bY83m4IJKvDcMb8xH9iIFh6QrojJNJJ/PEfYgnSivM9MOPHFXsw8qsVuPz0Onjj6g5F3RznB09deYdPFtCPK2aw3qeiMvsWp/fbqVsQNT/J6Ccxli1bhs8++wyff/45/v33XyfbZMrdd9+Nn376CbNmzULdunVNj01NTUVmZqbmX3Fk+c5j+GWVdZiuHrtCzfzNYe/4vZzhvpo8NQ7bn+yqSM3OUlUVt0xeGv1bZMZSUpLvJbJv+XLxrujv4nbdvLw1cxMAYOryPUXWBqt798O/ezD802XI8wXND6SVXYwG4zDxvZFa7Ulir6243bkYzrTs8392QlVVaX7i5eDBg7jmmmswe/ZsZGVlQVVVZGdno1evXvjqq69QrVq1RLQTqqri7rvvxvfff4/Zs2ejUaNGCamnKLj83QUAgEZVy6FN7Yrc59lVq9OEoVxfABkp9NfBbkZhFtoFMu2VYdbx7Tqap5m50qKfmJFZzN8ls4MoCTOrROB1Jyk0MA7unbICANBm7lbc3buZ0LmlbbxKZqK44mpi1gt28Whj/1p/MCFCTUnoT4S//Lvvvhs5OTlYs2YNjh49imPHjmH16tXIycnBPffck4g2AgDuvPNOfPbZZ/jiiy9QoUIF7N+/H/v370deXl7C6kw22w+LLRZm11VAf96cjYfQevQfePUP+roeWudZgUgixnbtx2bvwzMThvSOwTRNDasFpW12E29USUm9G6keetcWCqlJ8zXQOAqbVHnwhLjpqKQ+F7ZJ2vyY7YdP4cr3FuCv9QccbUNxuo/afii+srYeOpWQ97wkdI/CQs20adPw3nvvoVWrVtFtrVu3xjvvvIPff//d0caRvPfee8jOzkbPnj1Rq1at6L8pU6YkrM5kI6oNsGt+0p/3zM9rAADvzNrCOMNmSDfjYCc0P2an6cukRT8xnQUZ24vbx8z76D3xJjMqZtfNSwpFqFFVFZe9Ox/93vyb2uHn+gJ4+qc1+Ger+QrwvPD6Z/mDxX89Hadg3QWN9oSy//6vV2DpjmMas3JpJl4TnKIUvz4rWQj3eKFQCF6v17Dd6/UiZBE6Gw+qqlL/DR48OGF1JhvRl9DuJFw/ILotCtKai+L/Usgi7PromLVD3yHQXktykGEJWU5mF1ZVFdsPn3LMX4A3X0T8mpqS2TPSzE8FgRBW7s7GlkOnsPOoUSv69l+bMXnBdgyasMiRNvDeOZ8Nocbue/Tf7myc99ps/LFmv63zE4WVT028SflOFgSivkvJ9N8RQdMvOmLml+YnLs477zyMHDkSe/fGHFv37NmD++67D717W0fSSNiIvoJ2ba56XxwrjY/TIb6OfLwm5/Foaljn85oMRHnv7y3o+dpsPPfLOkfK49bUuEtAL5QAaJoaEpqst+3QKUfbwOu7YSdHjN1X89ZPlmLr4VO4/dNlNktIDFYTiHi+xXx/EG2f+gPtnv6Dq66iQtVMruJvWWkzpfMiLNSMGzcOJ06cQMOGDdGkSRM0bdoUjRo1wokTJ/D2228noo1lBtFZg32fGu2JVgOf05oaJ/LemGkQ9G208qlha2qI33Fe9yvTwuuUTZy/La5yRPHE6TBbUvvFFMp1a9YcS3JmVLPbaMf8ZPe5nPI5kwvFLkyTdIg8xtk6I1q5QCii4U9cXcWJRBhOSk1GYZJ69eph+fLlmD59OtavXw9VVdG6dWv06WM/8ZMkjLj5ya5PjfZvq+UWVMagbwXTfk78th/9xN6nF2qs1n5iqaOLk2raLmXVUdhL9amJ/U6GGp3b/GRLU+Psk0nWu86qxWqyFM/1ks+6OOejczpgwaqMJduP4uXf1+PpAW3Qtk7FuOsrLtha+wkA+vbti759+zrZljKPsKOwzQFLb7ayKkfbETj7sdn9eM19arR/UzU1DO0Tq9ji1hfyPvl4zU9mg92pggAGT1qMvq1r4LZzm8RVj9PQNDVk2HBShBpO3w2/RXLIskCykl6qqr704nPvnfapsQqTv2r8QgDADR/9gxWj+8VfYTHBllAzc+ZMzJw5EwcPHjQ4B0+cONGRhpVFkuUorD/PajavTb5nr04Sq0gHvjLY+/RCDDVPDcOuHlJVLNp6BOVSPMjKiDnEFzelDe+g7I0z+snssj9btANLth/Dku3HSoRQM+a3WMoCpzMyH8/14cO523DZ6XXQpFr5wq18L40dR+FEjsXx5kixg9XEIp7vjzSZhFT7eWp2Hc1F7ax0y8AKu2j9+eJ7wIqicAtGx3P9AgXba08yEe7xnnnmGfTr1w8zZ87E4cOHcezYMc0/iX2SZ34SdBS2q1lhHOqEj47ZWUafGquQ7tgfe4/n45oJi3DJuHlYvO2orbYlB75nn6gOGADy/OKZcJMFzVH4y8U7o79pt0VEQ3D0lE/z3jz+w2qMm7UZ/cfOjZXH8M/Sk0xHYZ4TE2qiYfYJiatUa36ypweatnofur8yC7d9kpyQctFnQBOCSoP53A7Cmprx48dj8uTJuPHGGxPRnjKN6IftlFBjZaJQGb+tYK/zQv62KdSY+tRo/6at/aR1Ao79PpYbCx1ds5dc1b1kdhBl1VGYDOkOBEOG+xCPw+OMtQcw7JOluPbM+hhzeTsAwL87whM6ltbF7D4m01GYWZ6mbBWiU3KyS/ls0Q7ccHYDy3rY9QtVbYl2wVp+YZPkg7nbAAAz1x90rmF64ugXaUJQWV3QUrjH8/l86Nq1ayLaUuaJvIK5vgDXS21XQ6w/z0o4SmSooV1zlvn90WtqzGcxZFHksQdP8K2NVRTwJ98rq47CseumCRrx+G289mc4ko3U/NDgrcGWUGOz/TwrQcf7zJ/4YbXwOVY+NU4JOuG+R9z8lAyri9YMLnauPm2FAnsaQCtKgPVJXKgZNmwYvvjii0S0RaICGw+cQOvRf+CBr1fieK4P3/+7GycZHZFd04JeiLFMvudwuKUTjsLm5ift3zSHOZajMPmbTF9fUjUWceepKaEXnkpoZgr85uZHJ6D5oGjrsHYUPnrKh/7/m4sP5251tnGF/PbfPq7jiiK/SbJMJcdyfbDjwlScHMtp0CaHZSlTNYmw+Sk/Px8TJkzAjBkz0L59e0N24TfeeMOxxpU1VKiYMCfcoU39dw+2HD6FlbuOA1iJG86uj+cHttMcn6yQ7qBGqxF/5+OEl79Zx6vXzFipYcm95LGHSaFGrHkJh/fJx+soXFIhhYwCyow1nufJ+wmIJt97Z9ZmrNuXg+d/zcGw7o0daQPJJwu3cx2XSPmCvXRK4uonTY3nvDwL1SqkxurifBOSkZ8lnuVjaAlGy2pUnbBQs2rVKnTo0AEAsHq1Vs2YbI/5ksTv/+3Dh/O24X/XdEDdShnUY1RVO1iFBZowny3aSRFqaGVYRy6Iamps56lhHJt4nxrtTquPmzyejJQ6ZGOhweJGvI7CJbVbJN8rmho+HuGcdyDkrSFiHhMxF9hpfXFInMZqtyb6iXZeHM9L3x0esqOBTcKti2fyqJ+4KQpdmC8LCAs1s2bNSkQ7Sj13fL4cAPDkD6sxaciZ0e16gUFELmSpvK3KKOq1n6w6MB5MPWpU/d8WNnry+oiLLSDUtyKX/d/ubNw75V882r8V+rauwX+iALwTiPjz1Ji0oRgMkizIZhcEjFFa8bzGtHOtHodZdREzgYj8mUhzTdGYn8jfyau/WPnUxNEv0rTRPsp7XxYom7rpIiQ7T5sTQO8gJ2JSoh3J8zEYQroF8tQIRXQzjnXEp0Z3nqqqUcdefZnUmR9jQUsnTG13fL4MWw6dwq0JDP80e2JkB0db2FGEkrqgJfnoeGesjkcUcZpU/IXtE9F022krb/FF4UZlNaAX9VuYDCME6QIj2i9ShRrNpMyZO1gSrDFSqEky+pdCLzCIaWqM23heXkNIt4VQQ34wTgxyZAlOLZPw8LercOYLM/HHmv3GMil1sPx6SE2N3evOT0L+FrP3hHQQjNv8lMDRZF92nsbE6iTk83JcU0PZRv0WBc1UxWW8SKQAwZ7omB+TqPewtPjU6IMh9NFPZSm6Wwo1SUb/aWisIIJfLu1D4ynBYH6yDOmO/RYJwWbnqYlfG6Iv+5tluwEA/5uxiaKpoZifGL9Jnxq7zou0bLZOY9aegEZTU3yFmi5j/sKl78zH5oMnHC+bfHbU6CeLd8IM7ndW0KRi1/HfaYrE/JRAUUpkSZWihJxQhQSlEFourpDg+1dakEJNktH3W/pEUEIqaJv5HOIxPznjU0MvWwSz04ymKfNjNOYnB6Y0tGy2opCdGtUniHHeH2v2Y8P+mJDgSeAyCU6xane242VqzE+0PDUWF/bzyr3ssinbyAnG+v05eG/2Fo3Zy6y6SFtERBqnzU+8prJ4iayYbVZ/5Ga99scGvPrH+sJN9hvlxPUkQ96Mp+sRifCMh+Ihdpsj1OP5/X4MGTIEW7cmJo9CWUCvXTGYnwTKog7WHK+vfpwjzU+0GYJWCOFuHhO7mh8SljCkKMYyLZvMIWSJdIzx+rFk5/nR7eW/MOr7/5jH0ASdZTuO4vZPl+GK9xZEt8W7SkJJneFpzE9UTY05d3/5r1B95KB3wdi5eHnaerz39xahMkQWqE2or5MdgUng2L83HjJs0wYPqMjO9WPcrM14Z9YWZIusTUSB5xX+Z+sR0zw+yRFq7E8erRavtPMZ+wKhuO99USDU+3q9Xnz//feJakvZwHS2pAp9PDQBI15NjZ8iZVhpDURxxlGYvU//gdOFP3p7WPmqRAYREaEmFFLx5A+r8fXSXdFt3yzdhX3Z+fjin3DGWqv2R9h22DgLTqh/RJG7b5pAamqoPjUOO9VQWL0npoHiqU7k27elqeEUPex8kyJt/3WVUQumN/WS/ZDVgG2F2XsaKXrQhEUY8flybD98inqcqE+NLxDCkEmL8e7szdznxOVToztBn0Xbzrfa542/cdqzf2oyqxcTC6kpwlPKyy67DD/88EMCmlI2MPjU6LQgYh+PvY9db+IiNTV02ywx6At0MDzRT3b7K9ZpikIxP1mY6bTPILnmp5nrD+LTRTvw8LerhOqgNbNGZirXcYlg5roDhsg+Xsg2bth/Ale/vxALtxyJqz3kcywIhCjvhLNQIxE1pmV2jZHPUcSnhlbao9+tciSLbFGIqpbRTxaNCgSNz5j3XJL9OfSlUUQH89/+24dZGw7hlWkbuM/R9ouCmhqdUKPXTvZ8dTZyfdZLZJBETIXzNh0WOq+oEc5T07RpUzz33HNYsGABOnXqhHLlymn233PPPY41rjSi/zj0OVvMPp5QSNVoVexravR/E0KNhflJxOeEdSRvZ2+rcBjvC/2e0LVFLAe9RDkKkwtosqB38satiViR2+y6SQF86MdLcVrdivjxrnPiqu+Oz5Zh6+FTuPaDRdj+0kW2y9GHdPO9E5xl2z/VlHif3ldLdqFzw8q4slPduMpRVRWqquLuL/9F5XIpePbStnG2TF++cZveqVXk+WTn+tH9lb/QvXk1vHPd6cb6zNqSoKdpZwV7bUi36Lnmmpp92fn4ddU+XNW5nnC7ShrCQs2HH36IrKwsLFu2DMuWLdPsUxRFCjUW6DUx5KuoqqppxxYIqUghBi66AymHT43e/EQKNZSZnjZ3i2XxlpBlPPLdfxh0Rv3o3yt3HceUpbvwQN/mqFI+Fb5ACFeOX4A2tStGV0QGTHxqoBg+cKuZn0ZoS7KmRs+mAyew6cBJzTZeR2FeM5UIIp3+SpsOv+TrePgkPYtzMBT+Nnj9TshW+yiamsgRGw+cwLM/r8V9fZtzt5f2PCwd/E1uY6Q4IU0N4z09kc/WlpkXrzV9bD18Cr+sCvuYPDOgTcLzk1hmFDY594cVe5CTH8Cvq/bhneso5xZB9JOdcuPR1Ogno4lYzLKkICzUbNu2LRHtKDMYo59U3X5256EfrJ3S1JBV0jQ1ZBudiA4yM/Fc+s78cDuCIbxy5WmYt/kQVu3Oxqrd2VxCDXWfpVBgrakRwW4YtT8YQt8353AdS5/tmj87OyTbTzjF4wagVZMHQyr6vvk30r1uvHxFeyzbcQw3nt3AVMDRamqCTE3N4ImLsTc7H/M2H+bO/ky7JVZPnOc2CmUUZmxP87r5CyHLIwo8ke/HziMx/6xgSI1/YVSyLov6qeeYCoXmJ5uea15tFCuBMzvXj4oZXtNjrNCEdAt+d/pvn5ZwsiQkznMCYaGGJPIylZWb5QRG81Pst9WH7Q+FkI5Yp0U7nMcnRP+8yFOo5icyIZ3DPjXh44zrVe09nm9aBqsVimIUvJzQ1BQEQnh52nr0bF4NZzWuwqg9jN3oJ5Y/BH3mam4mNDu3OJNK0XLtPpaLrYfCDpwXvz0PAFAhzYPLT2ebWTQ+Nf4QM8v03my6D4UwTnSBjH401xdAutet+UZYwnea1967RxZ33ut/a/YFQio89mQlgfrZ2uB4b60T34DZEPfG9I14a+YmjB3UAQM71rFdh2YsEGx1Iicf5LXrb0MwpGLR1iM4rV4WyqfGJU44hq0v4JNPPkG7du2Qnp6O9PR0tG/fHp9++qnTbSuVzN98RBPpog8nNvt49E68IvlLSMgZoaqqlmpPqyROoZCK0T+uxleLd3LUbvwAaf1zlfIpANh+ImYf8ft/a1MOWM8CrWdIk+Zvw3uzt2DQhEXmhcG++YnlJG7lgxA7zvmeLRlCEdlsXi3X+v38Cfuoq3Tb1HKyjrPU1JiUHfn+aK/6mr3ZaD36DzykcyS//N0FxoMB3DdlpS3Tg9kg6oR21gp99m5je+y3wdz8FP+1vTVzE4Dwun7xQE6oRFNd8FxHIlQPE+ZsxfUf/oMbPvwnAaXbQ7j3feONN3DHHXfgwgsvxNdff40pU6bgggsuwPDhw/Hmm28moo2lDjLShfx4VZhHP+mXl7fbMZOqVINWw8KsQevg/t54CJ8s3IFHp7Lzqmjq0Bt/KJVWLmcUarQdH5sNB7QDnpXvEWuZBJJtjFBPGnYzCovMziwX6YwVGhfJzlNDEwjtpKjXr9LNk2Wau2zOc3mPKwiE8NXindTrfHd2ONfNt4UZsyOcKGBHsvyzjR45ZqZRN5NbaNpbp9E8H72pMM6yzc7nLTvZC1qKRmHyHE0+/o/mbRMqn8U3hRP0FQla7sQOwvqit99+G++99x5uuumm6LZLL70Ubdq0wdNPP4377rvP0QaWdvTmJ/M1fVQEQ2p0oKd2mqJCjU5TQ/uYtCHdxvKOnrKO4NGUx0iOd4roqKuWD4cnk0s4+IMhuF1hPThrsKWG1tK2MfpQ3lnpoRMFyEhxoxxF5UqanwLBEDycQg7tkoIh2qyVDtWnJs4hIdnmK14tl4gPS0hVsWCzdqCPK/qJpqmxWmrE4k4+OvU/PEBxVnZyMDUry0x4dVpTYxn9BG1braKhrFonoqllIepiYee7i+c+/7F6v9Dxz/2y1lY9BtcFW6UkFuEp5b59+9C1a1fD9q5du2LfPnZGRgkdbX4G1dRZ8Kr3FqDvm39HI5RoKkqej0njGBzUdhi078rK/MT2s6FvN/rUhP9/nMhzkl7o8Eg6g2rSzgt8TVYaLY0jNEfBR04W4IwXZuCMF2ZQ95MDM+8K0QD9bum1c9FjuU1S3NXTKTx/++FTOMjI4eEkNH8kOy57ekF9mG7F9GQ7QHNpUCkfvx1/RRGtYgSz9rHeQSfRaGFVaD4G3Z8G3v7LPMGdqaZG5XPKFX0Kb/y5UfAM+8vH7Dqaiw91mhd6hJ5wk0okwkJN06ZN8fXXXxu2T5kyBc2aNXOkUWUJ8tULa2rYb97e7HxsPXQKGwtDfu2u/aRxOFS1mgBLTY2FIzFPW4zW8vCWIKEGivxy6TQ1+nPC9cR+08KK6VYZ+jUz20xs/3fncQBAro+ei4I0mYkkQ6Pde73QGW0P1VE4vpE6FFLx785jhu1HT/nQ87XZOPPFmZrtTnWS+7Lzos/QqcVAyVtBe2edXkvIaT/hvcfz8NbMTTjOkcdIz+gf11CzKJtR1D41engDKDYdOGGpKTbXxKim+/dl52Hy/G3Mb53GlkMncURQew3Yj37adYy+nhaNifO2odtLf4k0q8QhbH565plnMGjQIMyZMwfdunWDoiiYN28eZs6cSRV2JObwJH5jQR/sxFDB5wgcgdbBieZ2YS04SXNYJrdphBoL7ZJZffrzrQZAPTQfg+lrD+D1PzfgzUEdmPVYQTs2QJgbSahaOl4/GwYT52/D87+u054PYOuhk/QTHOK1PzdCURTc2aupI4uBAkbzk2G/w+N0HGlqYmUQotHIr/7Fku1GAZOX3IIgUgVClkw1NTSbsw47ywhsPEB39jb43JncvZx8rW/Ril3H8fC3K/HERa1j51s03+yTH/jOfBzIoedOYnHKxN/JvB3mk0sWPM8HCE8Qn7VpdopQEpQ9wj3IFVdcgX/++QdVq1bFDz/8gKlTp6Jq1apYvHgxLrvsskS0sXRDDqgW0U8RIsfQzSo8HRBxfIg9wEewUovyCGObDpzAkz+sxv7sfGYnYlW2P0CfycTrzCq6DARN8Ln1k6VYv/8E7vx8uWY7rbR8VrZRmlAjEOZND+nmvzcfL9xuPJ/znbSiIBDE1OW7mSasV/8Ip5NPhKYmCdYTyzbwvKOk7Gom0Nh9302zlZsUmQhNzQPfrIyG5+sxmIRMqtdf040f/YONB07ipomLidPZBaiq+X5RgSYe7CQ5Xbs3R3Ot0fOdapQFxXHBW1uB5Z06dcJnn33mdFvKJJoZZUgVmvFQzU+C9YdUrfqV7lNjvp/V6ZFbB01YhKOnfFi7LwdDujXUHkfV1BSWTUaxBIPEfqOpyi7aAdC6tDu/iAku+hw7+vWPaB/9oAmL8OOd3YztoFxJMMQwP1mYCWPHGc9lQffRMtZr5eeRnefH3uN5aFUrM7rtrZmb8M6sLaiZmYZFo3ozz6VGPwkKVSfy/fiSSC9AE1TjcxQ2nmwnQksPaWqtXTGNmUPHrpBh11HY6egnFSp+Xmlc1DK23/h98wYGnMg3akmsnIyLy7gsKgQD4clUotG82yVAVSM8LVq+fDn++y8Wuvvjjz9i4MCBGDVqFHw+cTtiWUcvMCRjlW6yjpCqdxSmDZbEb6r5ybrOiN172Y5jhjZGBnNa8imyA/cRmhor7ZKmfIv7ZHX9APu5WCX6o5W2khH+yDI/8Qqv8XTOq/dkY8/xPMvjeOo456W/0P9/czX+OTPWHgQQWzCQ1WmTjsKmHbvJdxLR+kRwOirMzplc5ifimupWymAel4gQa7NbnWyfGn20U1ibQofHkdpUqFEdFGriHPB5fWo2HzyBHUfCzuA5jEVkqX5fTqhci4kAaIawUHP77bdj48awZ/fWrVsxaNAgZGRk4JtvvsHDDz/seANLOxp/DtV87SfjufY6a70/imVIt0VGYVFfIFb0U5DyUTN9ajT5fczrpwsF9PNZfr2sjk8/wOifiYhtnHYky17OranhrNvMFEDCoyKP5FCZveEQsz7WK0NqaiL3VnTQ2aBLzEd7P+ll8lVEHzDMty3YHF7peNmOY+j35t/UlY/JQcdl0jPzvFOiY4/ZN+R09JNVf6EXNBKdloC8n/EM+yfyA3EJgNpvi15OTr4ffd6Ygx6vzjYV+hO1UGdJQFio2bhxIzp06AAA+Oabb9CjRw988cUXmDx5Mr777jun21fqIV89q4zCeqjfD8e7TB6iqqrub1o95kKPuKMwvT1U8xPRn7IchXk0NZsPnsQDX6+MhruyHI1FI4homhqzRGLm7TQeHAiFLDVNottEUHVZQ0Tuj9l6OaxySE1NJBxe9Br0JkArk2qiIKv4YO42+IMhXP/hImw8cBI3fGTMwPrrqphJJt5keCKLbi7Ychg/rmCbg5zW1Oide2no+wLW4+LpLq0yCpN7AyEVz/y8BtPXHuAo2cjHC7bbOg/Q90P0Y0ifNNFX2K7AprlDpdH8pKoqQoWS+4wZM3DhhRcCAOrVq4fDh42zDyeZM2cOLrnkEtSuXRuKouCHH35IaH3JQKNyFPap4dtmOEZn8hIzPxnLY/rUML46VkZhsmy6+Sl2AE8YdqwsYND7C/Hd8t0YOnlJdButLNEOXD/AhHQ+MCKlUTU1HP5K0bqpNyLOWa7udPIZWQngZjmXmIOUzjQK0GedZt+JXiVP9alhN80Su7PgZo//jnw/W+uxvDBVQGElTIIc9l6R1/i6D/7Bgi30LMRA+B3ccijsfLt0+1H+gpltE9M0qTDxqeHoLs3q05f963/7MGn+dtu+Kn+uNSbB4/WPIccCnnNUQEjIsGt9MlPUFUd9kLBQ07lzZzz//PP49NNP8ffff+Oiiy4CEF69u0YNvlVu7XLq1CmcdtppGDduXELrcRrelzoYEnzxbDpA6oUYK0dhq1W6mXlqGPWzMgrTBBVym09jfiLPt1ZnR/JGbI1qauhCUdyaGlXbHpHymHlqKMfSNWrcVXGjqnRBgwfNQniGhVy15UTC1vWReZE2iKDXBPCbn/hImL8CWYepOcimpsZmW4IhFbd+vBRzNh7CleMXxh3iz6NZ1X6fzgrmesjbSUYm2qk3Hm2pvq+btno/jpxkR1+ZCmsO9gVkUU44xCcaYaFm7NixWL58Oe666y48/vjjaNq0KQDg22+/pWYadpL+/fvj+eefx+WXX57QepzGbPavH1BFXhm7Ibwa4QFsrUUEra8LZT/HF0T6Shh8akLscsi6/WRyPlIbYqmpiR0Q0R5ohCKigF9WiWXFNqzHJdg2w8mU8nl9p5KRj0XE1Cgy0MeW/ogRcyAXu4iTujwhTmuwkjE7NbtkHm2ikwJuIKhGJwMAMHjSkrjKs2qaCtWQfI91TryD7KT525Dri70v1SukRX/bSaAHULSbHO/vwRP50XW+gPCivMM/W4aB787nrscKs3v19ZJdwhp3O21IBsIh3e3bt9dEP0V49dVX4XYneH16QQoKClBQEJN0c3JyiqQdZjMr8oVftuMYerWszl2u3YzC+oR/VqYcJ/LUpHlcUfOR0adGLdxunJ2RQoPWp0YrmJlB1pfmNb6j8XyX+o4gpOo6ZKsCLI4NhFQczzVGOPCu0u10nyPiFM6SafL9QaOmhnJw5BBajSKKEZrzt9OdMe+aY7yYDYQ8jru082n3jCdjsf4d33mUP4MtDSsNSHg3u0+asfYAamelo3XtTK73wKy2P9Yc0PQJZHbe/YyQelF4PpkHvl6p+Xvh1rA5cNfRPOT7g7jri+Xo0bwaujSpSpTr3Ev88Her8PB3q3BWo8r44tazNQk/i6HcYortTFc+nw+7d+/Gzp07sXPnThw8eLDYrf00ZswYVKxYMfqvXr16RdIOK5tuhP/2ZKOAlZiNPKfwJJ68ImbnR35r/zbXAIhkFCY3k4s6Gn1qImXHtuXkBzDm93W4b0rsYyd9aqy0SyxSCzVG8ZicSPTRScYOmV42r0kktyCI7q/MMu7g1MrEr7rXag9FNAAsR+GHv11lKMdDccCZVxgxFG/f7bSwRzc/xVEgrQ6TfTyaGp7rW70nGx2enW55nOPRT1ZCDSjpHYi/h32yFBe+NZf73bY6bj6x2OmvhKb2kInph1kXjPeeR3u+Zi97wv310l2Yse4gnvxxjVA79Jj5uEX4Z9tR41IpRGH697w4ridlK/qpe/fuSE9PR4MGDdCoUSM0atQIDRs2RKNGjRLRRts89thjyM7Ojv7btWtXkbTD3Pyk3cfMNkueE9FscJRHrzP22xcM6gQE8zLpyfes69esDM7hUzNhzla8//dWzXE+29FPsQNiszJz7RQvxugnY44NGry5U/YycsfQik2IT42uLhFHalYn+tPKvYb3hLaY491f/htuQ5xSjdPJ95JBvNFPPBq1yZyROjzPXChqk0NG4vmGXpq2nqs+uyIgyyH7san/YbfJekuslBV2oSUUpNVjVSfvM9KfmizfHacQNj8NGTIEHo8Hv/zyC2rVquW4g5yTpKamIjU1Nal1zt10CE//tAZjLm+PMxtVBkD/iPP9QVw6bj4qlfNqtvM5AUb+b6+zJgfPPm/MQZ2s9OjfVj4ztM5Sb76ivRLkmDVznTZcMhb9ZCWd0Ou06rXIQ+maGvPzzTBEPxk0X/Tzgqpq+PhoxzKjnyib48lTw4JHk8fCPKRb+3dEU0PVNnHXSIe6oGVcvbHxXKe7QVaCRoBTU0M9RDH5i43Tyf4sNTWqivX7Y5oL1tFfLNqJS9rXtqzPetJD387SUH25eCf+3XkM0+49l7pf34/FayZivVvmj8V+nfrqiqHcYoqwULNixQosW7YMLVu2TER7Sjw3fhReh+O+KSsw/9HzANA/jpnrDmIDZUE3PifAQk0NVati3UZ9FWQm2ZCqYtXu46hXKQOVyqUYjrdy5g2pKlyU7pK00c5cf1DbZka79KgM7Yp18r0YEU0NuS2eAc7wvFS9Iza/UEI7MsjoWOlOwXxCbiAYwkfztqFrk6poV7citfxYm7TRcaI5iVh0f1m7UnDs/dCWz1omQgTee81bD3UWnMSoEJ4FDHl8angFMafz1FgKGQBGfrWCOJ7+FaWluDmjPe2130yYW7+fvhgnYOzH4r19CiNPlN40rKmT2m3wPXD9e0HePqPAU/xEHmHzU+vWrROej4bFyZMnsWLFCqxYsQJAOIx8xYoV2Llzp/mJRQxtIOBNu08jcohVplwWZh/5km3HMGDcfFxGeN1rzU/mQo1GWNDUadaewnK4HAiNWApDFpqaeAZNvcAa0nXAQuYnyjYxTQ3lOMq5XyzeiTG/r8cl4+hZhPX1kM/3s0U7or+tukgzTY0+7Doi1Og744/mbWWu5swLXVNjvzzaqdRLTVB/LzLxMYNXEEvE2k+m+43zBOq3UTkjxZHsyqz9toQ5lWKSjlMqJ7Xc/d6cE/1t1jwnI/6SkajSSYQ1NS+//DIefvhhvPjii2jXrh28Xq35JDMzk3Fm/CxduhS9evWK/n3//fcDAG6++WZMnjw5YfXyQr689SuH1255a+YmLKQktvIyViPmmQlHXjK7az+ZfQw/rNgDANh+JGYzJgca2gyAlXGYvB8+1voDiHVyPA6EtLItoymIM1M9bsM5jjoKQ2/aopfNO9DyLBZqVRfJWzM34Y3pGy2PI+shm/DOrC3o37YW2tYx1/AAfI6JEWIh3dprePE3ut+EWOoDe8K/CMk0wvNFP1mXw6+pcdpR2OoIvVDAOorvKYr43JHwaMR4yrO63r/WH4iujUeD+ZzMJorUdpm3I1aftsKSJdLYEGr69OkDAOjdW7vSbmT13mDQ2tHVLj179oxb6k0k5IymcqHphjWAeN30N5XPXq5q/q/ZZ3m2+TGkU1r0mVqYHzSaGkbh/oBJxxjRPAloajTrpJiepdPUeF04pctjEs8bRVv7SbuuFB1egdRvsfZTni+ILxbvRO+W1S2dvLcdPiUk0ETapH8uu47m8gk1hFRj5XvnNvGpiReqsBePpoYo738zNuGmLg3sF2YDkT6CxK7gZXdwZyHynRduMfmOeDQ19tpv1+ym7yOtrveWyebZi1kaT7Nrj8e/zlBbMR5zaQgLNbNmzUpEO0oFet8Ss0imFIamhiuyISoEGPfxRT+xjzlZEMuJcqIggMw0L1MTQ9vGKtpcUxPG5JDC48h2ENutZmLE77mbDqPNU3/gyYtbE+fbV2H7AiEs2BIzx/I6ClNDuim1HDxBz5Xxw4o9GHRGPXy6aAdembYBz/2yFk9c1IrZfgAoCNibcFDchpiQ91Io+V7hsYmI4KJqxRwq+80ZG7Fy9/GkxraK9BEkRp8avjY77VMjWhxTU0MRuKn1WfYrdPw2NVSO+9QwnpP5d2jcZlcjLVpPUSMs1PTo0SMR7SgV6IUaVigeALz4+zrqdp5QzMgxVBWj5dnmLyK5Ns2Rkz5kpnkNg3REgxPBKuMwoE2cx2qPdVRE7LdmnRRLG71x/7uzNhPn2+edWZuj+VTo9dFL583+O2n+dur5q/fk4P6vVyKdSBxGF3Jjv1mCtDmqoa1mj4l8FxSEo/xu+mgx1u0zT3zpYpifWIjIEDQhwEmfmoVbjqB5zQr2CxTEMZ8aznuY63NW+25tLjb+zVK28TzHPYy0CLH20Ldb3edgSMXibdq1sFSohj7cSZ8aEmFNDWcz9EIUeT3FONg5iq3ke3PnzsUNN9yArl27Ys+esA/Gp59+innzrB0PSzOa0GcVOJFvzAQbYfUeeicv5ChMeUsf/GalYZvxfL63O7LuiP54fRs1eWqYdbLrifrUWFw7uVdkQUvaoEZ+uDy3g/Ut6wUaQN9O+nk0M57oTGr62gNoWLVc9O88ixxHbhEnl0Ly/SGjUGMieJDX5VIUfLtsNxZzLIIY0dQkYuZHM+HF41NDa2NyfWqcEWp4YeVKsotVywyOwir9eamq6ohmz65PzUfztuLaDxYZtuvvffzRT3RUla3FodWZCE1NcURYqPnuu+9w/vnnIz09HcuXL48uQ3DixAm8+OKLjjewJKFfZdVMU8NCxF5OO/RfcqVf5vl8bYnM0PRtGjBuPh7+NiY8WZmneNtjeemkbw+HH0+0TVShhtjv8EjKY36iq4fF66qUEXPUpw0+LJMdLycLAoaZbqTttOLI5+JS+JJJArHnkQifuQBFSxiXpobz5ESFu/I47sYjqOux0nTw1hfBOiCAT4gOa2oSN+SaaZcB4KvF9GSujkc/MSYjqqoiO48+cY6nTv25xdHEZIawUPP8889j/Pjx+OCDDzSRT127dsXy5csdbVxJg3yZgyF7Qo2QT02CQ/RY+XDW7svB10t3R/9mCRi8H0OkHsuQbvI3WY/FfaAJimQ/wdNOkTutaSfjTOpq5zZ6D9aCn9H6VfqxEaat3oezXpxhWsfMdfS8QlbtMQvppjF/82H8sGKv0Dl6eMPiadfAe/dpx9EuNVGDge08Nfrke5yPh0dTI9IXWfq40DQ1jAfmiKaGsd2q/2Z9r0771LD4aSX7W7EyRZth1MyKl1GUCAs1GzZswLnnGjMpZmZm4vjx4060qcRCDsqBkIocE/MTC56BLRrS7WykpQFeXxftOYSAw9nRRWf+Aj41mugni2powhI54HLdc4GeSbtgqPUxIu0wrcvCjk67v8M/W44DOeZr3NSqmKb5+/Gp/yEQDFFn+prrFbTJXP/hP9zHsnKs0AQY2ow7FFLxyyrtoBDP7JbWmkT5H9hdpdvgKMz5gFjaABJHNTUUoYZ9bOKkmnGE3x0Nlq+WiLmWB9bz/pTIGaUnnv4lHOxA9q9kn67Fqn8pCoSFmlq1amHzZuPDnjdvHho3buxIo0oqZIfuC4Rw0oamZscR6xVwQ6qKrxbv5FILs84XOU5MqLHVJADWnTUrt4xV++iaGjGfGqFMuhxaJGq+HxtCKjleW2n5nMoGfKIgwNSo6H1qkg1Ni0HbNnfTYdz1xb/2Kinivlskl5UZvI+HlVaAREiTaXEwr1CgCtbLbI/N81gaM16fmpW7jmOtyUKWEVj9olmajHgchY2OznxljJ2xia+CBCMs1Nx+++0YOXIk/vnnHyiKgr179+Lzzz/Hgw8+iBEjRiSijSUGvabGLIyZxc6j1kKNqgKPTv1PuGzyfB4iHxPrMqzWgRJtj/UyCWTdxvNZ0DoFRWN+clZTw1rOQVNeAjQ1NF8LjU+NTc0erV2HGSsY2w3/NUs7LwItDJeWrM5sQUIr6Oan5AlwdvPU6OFf+ym5q3TTou2o1ifVGJkXQeRxOL2Mgv750PqOnHw/Ln1nPi58a67tevZm09M9AAzzk2VNYYKqblFeTd4tdin/m1k8hBrhkO6HH34Y2dnZ6NWrF/Lz83HuueciNTUVDz74IO66665EtLHEQL68h08WwGeWcC6eeuKccYuoIQH2R//4D6vx1CWtuaJ9zOCOfiJ2i9wD2rFa85N1GSJaDruaHzuPVe/HZVam3feGNiNlDazxOo3bId8fxJQlu9CrRXVUSDN2aTRNQ8V0bSZ0oVWmeR2FE3T5BRz9Cq1uu3lquDQ19hSZVAx5kRgnqCb7FI56eNvDgiXs8ZjPsnP5XRNoGemtiCf6SS9Eak4rHhYmU2yFdL/wwgs4fPgwFi9ejEWLFuHQoUN47rnnnG5biYPs6HccycWzv6xNSD3xOp7xdkCxKCv6CV8u3olJ87cz/Wj464FpPbGyYwj51Fhpaji+VBENBM/AThMU7QgBv6/eH/1tlWTOrpBBE8C2HjpFPVYzq0xSBzh2xiY89dMa9Hnjb7qmhqJq1F+TiKnMEN0C9sKCiYAnosxJ51SrKKAwIkK/+bH6+7tk+1HqBJHmvxIhGaZPlvmH9n7oSfHwD71/bzwk1jAw7jGv+UlVwfKjsSpizG/0/GvJxJZQAwAZGRno3LkzWrZsiRkzZmDduqK/mKLG6YXfWMQ7A+Y9O3I5Zpe193ierYgnWnusF7RUo/9nqUdp0PpkssvjeWxC5ieO++FUHgkyqZ2V4GX39aRd+3fLd+MQxQT13M8xQT5ZmpqFW8MzWV8wRL0HfpqZVLct3rWkkuk+xCfUUNpoU/TiEWqENDUWx+rbzpochleQ56/XaWjvFcDnU5Po9yUe83YwxF6U16qM9+ds5aojkQgLNVdffTXGjRsHAMjLy8MZZ5yBq6++Gu3bt8d3333neANLEsnqxO3YgA/k5OOLf3Yizxd01FHY7VKEEuHRMMu7Q2+X+d/G483NT047CvPMbOgh3dxVUKEK1U6YnxgNo/nBTFsT0xwl8msgBwVyfKA7CtM0Ndq/49HUJJs8H8+CltZt5L1knhBykTtiaX6y6b+WbKj5j0ATaiga1AQ326IrMEXftnj792QjLNTMmTMH3bt3BwB8//33CIVCOH78ON566y08//zzjjewJJGszs5ONZe/uwCjvv8P42ZtEs5XYNZBuhRFU972I6ewbEc4gyy3+SlSH6dPjWhyK+pzEXQUFvH51mpq+GZzvO0wg25+IkxhNt9P1nttrRlKfg9IDd+macX0G4V8aozb7GpB7JDPsYYX9dbrmqhP8c+CRwMt8u46pVFUVWfSWth9TamCg2rMcjz6x9WGRXQT/W3QShfp9838mIo7wkJNdnY2KleuDACYNm0arrjiCmRkZOCiiy7Cpk3Fw/u5qEiWUGPne4iEfy/cckRcU2PScbgU7Qd6zYRFuOK9hdh88CQzQkbP/MKlBngzjZolh6JhGdLN0Ua7uXpYrwQ1pDsBmhqt6theuXaFmmTJNKTGgfcb1B8Xt0iSRPNTHsdaTDzv6xqOcGJezGqbr1tKxClhWO/QahentT3665u/+Qjum7JCsy3RQ0U8Pnth8xOpnaH/Fqk7mQgLNfXq1cPChQtx6tQpTJs2Df369QMAHDt2DGlpaRZnl1KmPwVMvhgZu+Ykpbp4pPzNB0/iQA47FFBTT8i6PpdLoXYJg95fiE0HT3LVM/rHNYX1mB/Hcii24yhMZhTmuZ8iAiuPyOVUSLfm/ARpTtiZU62E0MTBkiF4InUAowDoUujvcTztSdT186y2nmwLmdmroE+qKBrSbedYIXOYw/eKNqj/o9OK2dWa8kLVBHOe+/2/ezDg7flEWewyaNe66eBJ5PrEc7Q5hbBQc++99+L6669H3bp1Ubt2bfTs2RNA2CzVrl07p9tXMjiwGtg+F+5TB5JSnejgRIYP5uQHuDt+HvOTotBf7COnfEJtBDjMT9F26bZbmZ8sfGp4OhgRoea/PdlE2/jbFK9QQw0TJ8t32Pxk5WuRrBkbKVDwPif9veb1L0n0YMSDXU1NIpVJIneFZ/VrrjrNzCQ2feCcwCraEkiCTw1FE8x7T35fvR8bDsT85TSncRTR7805WLr9GFddiUA4T82IESNw1llnYefOnejbty9crrBc1Lhx47LrU+MK30Y1JL4sgh0WbTXPW7DneB7qZKXj22W7MW31Poy6sJWtemJCDfsYl6I4NivkTZ8+b5M2xHHOJuNK2ZpyKQ0knVydNj8dOhEzu7HOonUw8XZ09Dw11qYwK3iTjBnrtldfPNBCumno287rKEwrP98fSqqvQb6fJxpJRTCkYuXu41AAdKxfKaEJAlkD5r5sY9Zzx8xPJvUWFSqsvzO9eScx7XCufyHLyhNcoLYoEBZqAKBTp07o1KmTZttFF13kSINKJBGhJsj3wOPlS8bqsBEuHTcPS5/oiwe/Ca+kXT3TnlkwFtLN/hrciuJYx2K9oGV4//DPtAunPmeRD8g6VJyjbTYlAtbMnuZ4HK+mhqY5Wb7zONbty0GrWpn289SwNDUWAkRCnSGJXpMcrG1rajirZWmneJ1unYDHUTgUAgaMmxf1m1nyeJ9EN0tDnzf+xrjrOuIxSuZzq+9RxCnfkQmVw6+p2Xu/7fApXPzWXPRsUd3ZSgvJQD4qKycQUisb9tntp8nT/lp/EHuP56F2Vnp4n60SE4vtPDUSgkKhZunWgxYHJofDJ7Wmn+O54qYggFNT43JOU2P1zdkdI60GupMF1vZfu0IN6yy6T42tKqKw2nj7p8vC+x0XaoqfpobXPKSPRuGVanjCmxMNr/mJdATmWX4lHvTPevPBk7hvykr8u/O44digxT0UcxR2wKfG4aHZrP2v/bEBp3xB/PrfPkfrjDAr9X7MSx2J2n7jYpd2+xf9aQPfmU89jiSZ0YB6pFDjBIVCzbo9yZutiWB/zZ/I+eyvwaU4J60nKnrMCY2BXYGAdVrknpId6ob98UWjsNp4rNC/ye5MjXX/zBbUMzvPacjuk7fG5brBlmZ+mrZ6P1bvyda8/yLrICXKNJLPsUyC/lPyM1ZVBwAF4h3Ei7+t0yQBpAkGBQxThbUwzGt+MoZP28Hpx2SmaUq02amGchwA0CF/KaVue+ifx8ETBVhN+A3SKErzkxRqnKBQqHEjOeYnUex+SFbLJACRPDXOfKjWPjX26nFidm3bHs2MHDJue/G39fYqKYQZes0Rmm/G+n30xSbtLNiaaOwKUrROePhny3Dx2/PQ8bnpmDBnC4DkZQ2nEXmXWMIC7dgIvkCIeo1tlO34N/V23OT+Q6gtE+ZsxcT524j6jMewlgJwyvykqsXQp0Y1d9JOVnODFBHWCfNTBNJvkEYRyjRSqHEEd1io8diY8SQDu2NPZJA0dxR27kMVWdBSqNwi7PhYNUc6difVtCwtQnS1dZv34QTDPFdg4bCaNE2NHVWNDpeiMJcfyM7zRwVOvnWQEkPkdvJoNPWHsBbXfdk7AVnKKTzr/Vi4PbsIk5aQUOOoozBjn0kRdXAI7ZRYOn8nBdVth09xCZ2JJqTShBp7ZdEmxTn5fuT7g+wyS4umZufOnQgmyVm2WOGKCDVFF5tvhv38JIX/NzM/6ZZJiAfLPDU2yy3KtPaRW9NJ2YB+riXR7YkY8FmamEhdTs9qrVaLTpYsSQqGvFW6dBOQo6d8WLTV2nzsjE9NfGZAHuFU/36xtGqeOLTLqR539Ddt4PO6rYQaFT1dK1AH2mhGEZ8aO9/R/LSR+Dn1CdRXnE/BkZ3nx1t/bWbud/6bUNFE2WN4n2nGRrsae1r3OfKrFTjjhRnMc0qNT03Dhg3RunVrTJ061cliiz8uLwDAoxg7jho4itGeT9BQSYxjGA92B1Be85NV+WkoQBboJgwSJ6KU6OXaO88JpiwNR6p9l/oMJqS8Ge1IE6E2ZwlvPAuT2sHK/JRIWVJh/GF1W1/3vocvvM9jYepdeN37rnC9Ij41NLq7VuHf1Ntxvmsx1/HVcAy/pzyKG9zTLZcTyUA+rnDNQUWcNAxfLJ8a/WCYiZOGbSxSvbHhg3bfvW7zga2HaxUmp7yC+WkjNduFEl3G8Y61VozOtE4RvoexximKgvX7czRroznBYPcfmJn6EF72TNDUR3vathe0ZdzkE/nsSXyp8amZNWsWHnvsMXz77bdOFlv8KdTUjPRMNQzeb6e8jVs80/BtyjMJbUIWTjA1RfGabcyFGuvyF6feiRVptyNTOcVVH4v5mw9jMmHH5yURCdN6uf7VqLBZ/LxyL2ZviEXF1VHCOXUi8oCTjoNm+WRGff8fRny+nLqfRiZOIQX28i5d5pqLt71vwRXky1ztJO8X+r7QyEA+rnDPRVf3WtRQjuMK9zyhsjcfPBm3qeJ975uopJzE+yljuY4f6ZmKVq6deN47yVJT85x3El5PGY8JKW8wfGqMI42bEGAaKPuxKu02fOodw9W2VEITQ2tRiseN9EJBizap6eKip2Lgv8VqXBpPXuFNFA8C+DPlYXzpfUGz/YKxcx2va6QnrEC4yjMHKUT/H3TQ/GQVrUaj1PjU9OjRA4MHD8YXX3zhZLHFH1dMDXuH5yc85fkYw90/AQA6KRsBAFWVHJSDMREVSRVkY4BrgfBgUlc5iBVpt2Oy92Xq/pCqoodrJaakPCukMYp0LuyPQTUsaKlHQQiZStj23ta927w+XW9WHcfwqOdL1FXCQsHi7Ufx9M/mOWlosGd+Kl7wfIRb3b8A4O/kGir7MCnlVfyc+gTX8YMnxWblkTpiJiGuIrgIFmoRurpWY5j7V5BDzRf/7OQupzqOYVXardiYdjMGuBYIt+PNlPdwiXsRWu9NgsY24INC3MS5ukSMFdO9sd8wF6qtuPjtuXGbn4KCXa6XMA9FfWoYbbjCHR40z3Kt5zY/kYtDXOX+GwDQzR1etqSJsgePeL5kallTvYX9XtCvkUQiWooUt4KnPZ/g9ZTx+DDldQBAXeUQPva+hHNdK8Eyw0Xya1kRDum2D+/Amwa+NewitFG2o6lrL7q414JsYSLcE0iNDDluhCjvmV0B0I4gn8hEj1bYEmoCgQBmzJiB999/HydOhF/4vXv34uRJvrV+Sh3uWMd5jms1hnj+wKPer+BGEAHEBJ41aUNxNmN2AgDfpTyNt1LG4S7P95ZV1lUO4peUURjomodB7tnhugs7Iz2qCnyc8jLOcq3H7NQHMNA1Dw95vkItmGcm1juYZuFEVMBooOzHktQ70HHbh6bahgyiQwi6Ukzr038741LewnDPz/hCN+MRhSXUtFe24nrPTDzu/QKnKxvxX+pQriiQiLYFAN70voOerhWa/RVxEne7p6KuEvYVIP0WIjPjWEg3P1e5Z2Oi9xVkgK4B6RBag7e8b+OLlBfxhPdz9HbRNTO3uX/G3JSRBl+GCJcRGoy3UsYJtFBLmv+Y7XMjuBFEBRhzrCgKgNyjwBstcd9x9vtRPjWWXzRLia9/yveHbDsKp6EAz3omoYJiPrHRU4BY3xIVanh8anTNZDkKu4g3MA3afFa/pYzCHZ6fMS31UVRGON1ABeSiu2sV3Agixe0CCk4Cr7fEqGNhAd+DAP5IeQRTUp5DiseFywsFrc6u8OTuIc8U9HCvwicpL2sEqgc8Xwub6MOOwvR7URNHcKX7b3gNgoRe+DLndvfPWJ82BN1dqwz7WOeT2q+IUHpR6G9sTrsJ93m+RXyiWIzurlWoosQEzlRSqHF0ssQujNX3lyjz044dO9CuXTtceumluPPOO3HoULhjfOWVV/Dggw863sASgSvWcVYvzBMAAJWRY5CYn/J8ovm7o7IJQ92/QUEIDV1hf4vzXcYcA3qe8nyKtq7tGJvyLqrjuOmxegl9bMq7uNPzExam3Y3TlY3IxCnQPjS9T82KtNsxL/VeVEU27nL/gGpKDjptfcf0A9IMSC726xYKqYaP50zXBgBAfZd28A3PePi/WtYgQHY+76b8D+WUAq4okAI1NtBc5p6PySmvaPa/5P0AD3i/xVcpzxW2NybURAYRay2YkVe9E3CeewVucv9J3T8JT2OAe2H075YKPfP0KO+XqOc6hGGe36j7GygO2f3V+NX7X6S8gP/ShqE6wgJSP9cSvOj5AO6QD1j+MZB7BGfns81I54Xmo7crnHwwXqEGEJu1Ro48TdmM9WlDcJNnunB9pFCjbP4T8OXyRTMG8jWOsCxhjByYU3Ua4lQl/HdN5Rj+Tr0PAPBpyov4NOUlDHX/Fvap2TITyD2MDr7wPa6nHEIz1x6c5VqPijip+cYAaARycty72/MDfkl5HB4EcI97Kk4v1HCboaoqPAXZuNY9E696xuNyV2xB4V9TR+E17/vYlHYTUglhjfwWWUuYZuIUXvWMxzmu//CY90sA4SgxksbKXqxMvRUPe76KnkOrI6I9eU59G0DYXHSP+3vT6+vl+hdjveOowvzTnsnYnnYd1qfejE9TXtLsI81Ph3OMWknbKTGKwXpnIggLNSNHjkTnzp1x7NgxpKenR7dfdtllmDlzpqONKzEQQk01JZaUqLqSbVA3l9eZoL5PfQpPej9Db9e/3NU1Ufagr3tZ9O8ainZGXCnDq/nbTNKemvo0VqXdipc8Hxj2xaKftNuf907EVR5iRfIQW61KzkyHYyoyQR9Ybp60mOujK4c8TE95yNRHqYGyH695x6OpEjZ38ahdKzHaRcNvsbrIeYWam7qFGh2vRqgJ38yIoGXHpyZd4VOHV1BoWWRj9Z0CffmMxi5+oaa7axWe8HwKDwJIgV+bq0lVUevoErzvfQM1YB5Z1FrZjmowanbOcoVDqfu7wya8CSlv4jrPLLTf9w1wwryd1XEMz/lew0cpr8OFELKoz9j6/qehAANd85CFE7Y0NT+mjuY67nzXErTSOa+SQk3a19cAP47AHcHP0dW12rSs8+bfgDmp96GTsgFNlD3w+QN0R2GFrakhiXzHHVxhP7Ir3XPgcbmAkDZ6ihzQawb3acoHgN1qtejvTJ05sLySjxvd03G/91tMTX3a9PqA8JPr+u9DGOP9CFd55uCNlPGojfA3R2owbnFPi/4mNTcsoWao5zdc5ZmDz1JivkXk5NSFEP5KfRAVlDyM8PyEW9y/Y1XarbjYFZ5QeBSjUEMSub42Ct0/cFLKqxjoXmDQ2LsQwmBPeEKTphjLTVViz8+ooYpj7Tcb73xR+tQIr/00b948zJ8/HykpWlNCgwYNsGfPHscaVqJw0W9jfeUAyitaU0F5YpAnJfFqhIYnHQV40DMF3wfPwRa1jqHcmakPGeohaVi1nOZvHgH9Gs9sPBq4TbMtIgxcGJiBFUqV6PYL3Es0x1UP7AegrTMCeY29sAQve4E7/PcZjpu76TAaVMnQ1a8YOsVL3QvQyHUAjXAAbgRxj2cqWiq7cIf/3mjH8473LbR1bcd5ruU4vWAC01E4jegEUimdBAvaB5sCP3yFA5Dedk7+7UYIg93TkHVEAVCbW1NDZn31qV587n0BB5GF+/x3Ms/J1Mz0VHgQ1DhnHlKzqOe1VrZztcmNYHS22N+9GHWUI9gWqkEcEcJF/94GuMMDyG3+B6J7Brrmob97Me71j0Bt5Qh+Sx0Fv+pGs4JPNW2OlaS969s2rUXbkAeRt5K8/xEi5j8g3MnTNDVNlL0Y4fkRi0Kt8U+oFXaqNQzHPO75HDd6ZuDfUFOcCPa2uCv8eBBAoLAL7qysx/spbwIAGubHfBJ9qvaasOZ7DAUwNCV2XDNlN/roTI2VctYBCEfdAcA/24Zga+ZgQxtITQ35PdD4KeVx4rzCRRl12jhy0tYy12j+JM3xlRWjr05b13bN35WRgzNcGzAjdDoq4hRS4cc+xPqiWkcWao7v7NqAn0JVNdvqaN4Do9ZUD034JfO+6AMERnvD7+y4lLfxS34XjcarnFKA6qD7s3VxrcWaYKPwccgrnGTE6qmlaCcC5Rhm5wikpoYm1NhR1KQjHx6/uIazRC1oGQqFqLlodu/ejQoVKjjSqBIHQ6jRqywB3UevxF52UqNT33UId7l+xF2eHzUdHAtyZv1dylP4M38QgG7RbXHlqdk+D48H3gFS2cddlPcjzvT4sSLUBMdRAfWUg/gs2AeAYvAh6O9eApYftF6jFIQLLl0eDfKepcKPkYWzma3uG3BIzcTPwa7RjrFy4SDGMj+lCzoAZuIkHvV8hS1qLcO+/3nHRYU1NyGIpcCvmb1e6l6Ai92LgDmfAOdlc+tpSAGlobI/6sx5v/8OqAyFKylAj/eORQfXZmwM1Y1uU6DCjSBaKruwVq0PAEiHD5kWfh/tlS141fs+fg2eHd1WRwn7ZzVyEQI2cd9rKVr/rbEp4XDqde5botu8ivZZk4ODqhNq0uHDyq0HcV7hGFkBuTiCippjKhLRdl1ca/B8+lfQ9/UTvG+giWtfNBIq8r11VDZhqOd3vOi/Lupj1NG1GbM076iKusrhsBN+sGdUQKFcPpUM5CMH5QEA3Vwxf7gurjW4x/09fg2dpRECaDRR9mB66sPmFQE4a/ckTGk9GFe7Z6GFshuvBq7GRO+rqE0MnJe4F2muTU97V0yz4EIoPFkghBoXQsggJnHn73/fUAb5zdE0Q3rNxjcpz6CJax+e89+AJ72fAQD6FLyCzWpd6v19zTse23za7zPy5lzqmoeTiFkX3JQUHABwUK1k2EZqalpUUhH5HLPVDFQkNKIj3d/hKs/f0b9npDyIw7r3MkKkb+yobML3qU/hk0BfjA4MIerUvvNWgSbk90LLPxQZBwa4FqCHeyUe8w8zTAS0qPgn9S5kbszF95iEfMogoJ8vtlR2woUQXP72AIyLaiYDYaGmb9++GDt2LCZMCA/YiqLg5MmTeOqpp3DhhRc63sASAUOooQ0OZMdN+t+c6zKuZgsAoz2fYGzgCtRWjmCc9y28HrjKtCmdXJvQKed5YGU9ABVQG4dx7/Hx1tcAoKmyG7e4p+G1wNU4isxwp3WEnUgqwsX5vxjepINqFv4MnUG1C5M0VvbiDe972K9WxpzAi5p94Y4kfL9aKDvR0bVZo/XQd4rVlBzc4pkGPTHzmYrOygb0dy/Bq4GrTdXtNF7xfmDQUkVgCWtrU4fgfv8d0b87F/oJhRsWNKjvSdKRj2vcszA91Fkz8yIHjlT4qZ0NoNWSRdpd0x0z8aTAj+c9E3GtZxYA4KhaHnf4jFo0khbKTvyU+mT4t8s8dYNCDHj6AZ/FB97X8V2wOwrgxSY1JoDpfTMGeWZr/i6v5OGIqhNqCPPG5JRXDQINADRx0Z1Tv099CgDCAihBxPykIIRvUp6NOsDWUQ7jvcAAeBDAMWQCUJGJU8hhaDABoDzy4UYIN3v+RDfCnPRlStjxORw9Yw4rLJrFK96wmbmqko2uJuV7LZLyuaAiPXcvcDLWbi8CKG+hTUgntEE0MyqpbejpWhF9PucT392M1IfxhH8IflL7G89XgoaoRAUq2ilb8b8UbV4i8p1qquzGA55vMC5wGXJpg3ehgDHsnEZI3bIhKtTofSbv836n+TtN8aMutBF5EUZ6pqI6jkUDD27yTNcJNS50UjbgPs+3eCZws+UEiBQIU5SI36ExMWXE+X95qBk+D7JXb/cgGI1cbarswWq1MbFXxe3uX7Aj2BzT0AIVkIsTyMDL3gk4zbUVm/fXAJrWs2hxYhAWat5880306tULrVu3Rn5+Pq677jps2rQJVatWxZdffpmINpY6XvG8j1rKEcwKdYxu03eeEW7xTENVJRtNlL1o6tqL91L+x1fJ97cjBR/jOe8knFPA56/zW8pjSFGCSFN8uN8/IizZK+YzRRb93MvCQg3VryPGX6kR5/ItyD36C77AWQCAm9x/aExCf6Q+CgDIU2Nmz3IuPpNRMKSit2sZXvO+j0qF2pt8eLE1VJt5zkj3d7jYvQhX+54sHKSMZjcePEoIrxIaO42QN+lCDDiyD8/jGRQgdl1nKOuRgwxc6Z6DWz2/4R71ewz1xZzwSa1NOgqYQk2kQ0plCG+p8EcFGiCs2ZqS+pzhOBdCCMGF690z8IJ3osUVx+i89/Pobx9nV9PXvSzqL/ZHsHN0e3iWyu7WIxrQmjiCq91/o7NrA8opzufJCanhLLjnu5ZEBRoAuME9A5e75yINPnwc7BfVIH4S6MssK0PJx9SUp1BT5xMngkiuFW8oJkQ0sog0skor0dB1AA3naoWKVPiZkXkRyPBoWoj9+e5YkATpgB9Qtf3Q895J+BFGoYaOinrKQcPWFzwfYUqwFwDg15THkar4UUk5iVnBDoZjI8JLVoYXCiGYZaAAJ9U0g5sBL9d6ZmFxqAWj1UrUfPieMhYP+oeblkX2l1e45uKm1D8xJnAdTqrp+D10Jirm7cad7h+ixwxwL8DN7j/wqP9WLFeb4x73VNRRDuOxwDCE4NJMpCooeaiLg9itVgcAXOqaH3aiDgEfefpjqOd3jPIPjfpJhVIybd0PJxAWamrXro0VK1bgq6++wrJlyxAKhTB06FBcf/31GsfhRPHuu+/i1Vdfxb59+9CmTRuMHTsW3bt3T3i9pghGeVxdqJ5swJmm+2LXImyn2PqtSIFfE35seXyhFqmDEtbOhFRocvCIUE85iEycwhjvR4Z9CkLo4VqFrTozztnHfgIKhRpWFBI508ty85mPAiEVHxXmyYhwp+cnPO6/hXGGGp1x3eiegbeCl0edAO1AdjblyNnprkWoiPCM9I/QmQDCfiDfpD4LAFH/lErKSY0zeFUltpp3eSUPF7n+wVmudYZ6KyAXw90/GaJaIjzg5UuSmQof8pAmJNDo8avi7xE5wA3xTMPdnh+Yx2YquYAKLEq7207zCLSzW8Nev88Q7RapPyJsjiQcPM0insojPy6BprGyl+kXQqNC4Hj0N2lKomEn8eKK1NvwTvBS02PSCQG7uYvfB5OqVTJ/VFEqKSepZhaPEkI1HMchVIx+o2e71mF+sI3h2IimpsGxhbjkaMyBOFXxY1WoEc7giNZicSapvSUIqjEtUE3lqMacTIN8ZvUKI0YjE6p7fSNwxZofkeWN3fOIE/4L3ono73sJ9xf2B3+EOqORsg/Xuf+KHhvRHt7gewzLQs3wlDcWxTvU8zsA4EXvRzishoWZUGoJEmoAID09HUOGDMGQIUOsD3aQKVOm4N5778W7776Lbt264f3330f//v2xdu1a1K9fP6lt0aDaWz9FH6rMwqWoRodBDkZ4fsLxQpu9CI1d+/GB9zX8G3wTUOzlZ2ym7I6+7HrGed/CRe7FOqdSoHbBNrzsmYBHdA7LLKq5rR3YMnESIUK7Q3Kmi74qNumQ19W9BvNCbTEu5W2uNtmhrWt7VKghIyJI/xRSQ1eVMFvOTWWbi5q79uBR11dxty8VfuQxIqV4Oce9Bq9hPB71D+M2RZFUIwQ5GuWRF82lEg9uhBA08WM57/cecdcRoZxgzho9MS2nNX4lBRWC1mtbRUixkSjOpagY5qanCQCAq92zNEJNsujvXqKJSiVxIWS41kyKdjkEFxore3HJf8Z7zpo02KEuoVEifWp88Fj61KSZtGNsyrtguRCqUNBZifWFZ7rWY7jnF+qxn6WMQZ6aoplckhQHTY3wiDVmzBhMnGicsU2cOBEvv0zPaOsUb7zxBoYOHYphw4ahVatWGDt2LOrVq4f33nsvofVaEUrCIp4NbeQOGeH5CcdUcaEGAPq6l+O0gz9ahs2yqKycjKbw1nNRYXiuxqm0kEGe2Shv4YcTYSKetjymqbKXGdLeyUWfXf1NCApnu9bhUvd8rvaEEXfKvtvzAwa5w2agihZLSQDWA7zTPOP9GI2VvXGXc6V7Ds5IScx6O5e756KZEn/0pRcBtFfYSy2k+uJPKBihCsd6aE4RcKWgQpC/7ee5+VNMkNCibiK84JkYtyCnhV9D3pnxracqfkPAAC36qaVrF1OIjDdTNcm81Hujv7VCjdfSX8nK9Mdiq1oT3xZqhwEwBZoILIEGiGn7Q6lFFzQkLNS8//77aNmypWF7mzZtMH48n0OqHXw+H5YtW4Z+/fpptvfr1w8LFoincneSUJyL3PFAy0vAgz5qRISz9n8BzHjK9Jgtlc+1XT6LOcSHHS9NXHuZId11Gaa5qjqhoaWLnsSOht1Z28veD/BLyighc2GyuNS9AO9733SkrPoVVDiVUZWkv3sJ1R9IlHs830cdoRNNPNmaRQkoKcgI8AvDNLMxD7RFfSN4laCtyRmLmiqfptuMD7yva7KeA1qnZB54JiJ2IE2LPtVjaX7K4MxfpcfKKdwOIS/bQT7RCAs1+/fvR61axpDWatWqYd++xK1EffjwYQSDQdSooTVZ1KhRA/v30z+UgoIC5OTkaP4lAtUk+RwPvwfPcKglRhrF0Ylk+azP/bm11ldlS6gW8m2YykgqO5D5NUJ95aAhpPsXIhSZB96ZWAXk4g7PT0Jlk7R1bUcPF9+6N8mmmc7/YWuopq1yvCGfo+p6pxkRx/MrzuS6M5GiWs/kT6rxmRmtsEoXIMJ0V7z+U0AL127U1zkRi7YxK0FCDSnE+OBFFYYJLcLz3km26nEi07YexWaAiRMICzX16tXD/PlGdfz8+fNRuzY7msQp9AtlqarKXDxrzJgxqFixYvRfvXqJCTFTTcJyrTilpuKfUCsHW6OllUub+OkZ/43IUTMYR4sTUoFjSiyUNgC3Re6D5HK35wfUDWlNJz8GuwqVoe/0WPyXNgz3MkxuvLRnZBlNButC9TRJxsz4JtjTVh15uSeFhRoyCkpijxoF2+HbZW5SGu2/2ZYPXnHhrcBAqpOvFd3c9HQaenJVk2RdCDvRvuq/Wrh+Fhe7/4n+9sGLqjAXauxiVzv8dmAgc1+JWvtp2LBhuPfeezFp0iTs2LEDO3bswMSJE3Hffffh1ltvTUQbAQBVq1aF2+02aGUOHjxo0N5EeOyxx5CdnR39t2sXvxlBBDWONW6CcOGIanSqGuaLZV9dF3JOGJsU7I/2BR86UtaSUHOoqoq7M2K+VEG4UcDhCBrkHDyd4E+P1pl2bagB9qn8iaHsqnXtoM+gLMIvwbPiqvu4WgHX+J7AlpBRE7vfpdXM/BMymqB5UAJ5wkLNYbWibd+wssCVBaOxKWTMPK7nGl1uH5Jm+Z/gk+D5wgkpiwKWcFEBeYaISh66M5acWBFqgkNE3/xe4BLTcvyqB9NCidG6F8AbdXaeGLgAHwV4w9mtYZnhrVjKCEX/L9QwjtbEj7BQ8/DDD2Po0KEYMWIEGjdujMaNG+Puu+/GPffcg8ceeywRbQQApKSkoFOnTpg+XRsiOX36dHTtSp95p6amIjMzU/MvEcSjqQFAzTi5Q62BH4Nd8V2wO0b5h8VVfgQrDcWSUHNc43vC9BiSa3xPIqSq2KvEOpIAXKZrI+Wqqfgp2EWTdTcR7KdkBY2QjXI4psbvyPZXsAMuLng+7nKc4Mz8d+LW+B1DeSxWW6G373XDvorq8ejvwb6HsVxtblpWNkMbWM7lx4OerzXb3gkMwIxgR+rxAPBecAA1Q2pRECpCtTqL/9TG2EAkKrSDvzDiS2QNtKIiwBi2KiqnsDzUTLi8ji56gtFvg+fijILxaJ//Aa7xPYHvQ+eYluOHG7mC5ruX/NcYth2h9E3VlWNRjfGCUBs8F7hRqJ5EsFetQt0+xPdIydLUKIqCl19+GYcOHcKiRYuwcuVKHD16FKNH8y3aFg/3338/PvzwQ0ycOBHr1q3Dfffdh507d2L4cPOkRIkmmJoVx9kKVVPjgwcj/XfhAf8dyEH85qJfgmeb5GUJMy/YDotCrfFvqCnzmBWhJgCA6cFOCMKNjQdOapZhCMJtGn7eqeA93OO/i7n/ZcpHboeFodbMfSeRzp0MzoxcpCEf9HBxXvZkiZlWvgz0om4/jvKWKfUjPOyna1SPm2hD0gv9MbaEamF2qINmH82HipU/5dHKf2uyAXcveBPrWt+nWeiQ5PT88ditVhPO/kwjlFoR3wXDju0bQnXxfuAinJH/DnaEqnOXsb7eINzoexSd89/DK/5BcbeJl7nBttTtT/tvQgFSUMEi3Nea8CgUj6aQxdpQA3wbPBczCwXX1XHO5PWOvQCQo6bjvcAA/BLqElfZJJE+IgflsCjUGoeJjNUFqhdv6cwvfniYi8SyoPVT+yla5DrKEbRwhRfoPaQaJ8Es7ir3Bt6sJ5aOYrT/ZuwK0b9HEtrEMFvNwGFUhFKES1raS0ICoHz58jjjjDPQtm1bpKaa2xqdYtCgQRg7diyeffZZdOjQAXPmzMFvv/2GBg0aJKV+FqdOG4zfgmfiaf9NlsfSVKdHaUINMVBkO6B6/zzYGycthKPI+lPbVLYT6G2++/G8/3o84L8dADB97QFsPxILwQ7ApREY/gm1jKpKl6Z3K8x3wn7hxwcvtrwWFqQ9e32oPnUg+DDQH4Ciyew7KXA+V/kFqlYQommlPgv0hk91Y0qgJ+Zx2PeDLjGh6KtgL3QveBNXFGij0nzwcAs1rPeJ5k9xSve+HoHxXaVpiFide3q2Nly6+5lnoHODSpo1eUgi28nlRXhMl7R7f2TwPDwZGILBvocwwPc8xgSuR6vmzXGtgHZyQ9V+mBtqj8OoGJdAO8T3EB71D9OYDA9T+oEI+nT8ERYXmgHNQqlFuNb3OPyqG/+EWuJO3z1xl7crVA0X+sbgQf9wPOAfjgEFz2Gw7xFsCNXFP6GWmBNsJ1wmLcKqZ8Gb2KTWhR8e207sevSTs3yk4o/2Y7G513toUTAZs3WZh2lCzTuBAXjOfwO1/PGBi7FKs/RAGKtEq4cpQs12IufXL8GzcFjNxHDfvdjoaYpDHrH78UnwfFzvH2V53ClKJvN1angsLlELWp46dQovvfQSZs6ciYMHDxrCmbdu3co40xlGjBiBESNGJLQOUULuDIzw3wsg7EleEadQVzmMFaEmOIYKGNrCh8Y5i/HrgUo4y7VOM9NQEVb76yEFAyc0NXkWTm5ArOM0Ww32ICrhw+BFzP1BnaPwKP9Q7FRr4O9Qe5Srfw5wzDw3hwoXfg2eGc1lQ+OPYGdNttkIu4jZ/nGUx9JQC3R3a+3lPwfDMzlRj/8toVq4xPcC1qbFtF0BeAwd35xQezwfuAH5SEUzZTemu80XG7QyZwwoeA7llPxoRs/DakXsQTXsQg18H+yGy6I5dBT4VL7PmTXTy1aNYZh5SEU54n2lCeA001COmoFxmQ/g+RPmAsMLA9vik4U7NALZ/GCb6IKdNKdzH7yaJG65SgYy1JiQmqNm4H1cjnOwRnti+RrIQypmE8uTuBVgL7SrOrMYVPAkzkprDSBsrigwcYh/yX8NHvWyEx/uVKtjVqgjfgx2jTqE5qgZhnQCZhxQs7BWbQgAeCFwA772vIBj6fVRN9eYXZqXhaE2OKPgXWSjHHq5VtguJ8J/aqPo7+OogOOFs/sLfC9BhYJzXKtxLqejLhA2K9OyMJPCxBa1Dhoj5nu5MtQYp7nExyWaNndXtR6o1qASgAU4CK2J2w83gnDjUf8wVEU2FoVaYbnaXLMIb4SgquClwHXUejerdQGw+z+au8KM0OkY5gonO50e7IS7/PcAUNBMBY4r4qZ22mr1ekih/vNAb5RT8vBqofayRAk1w4YNw99//40bb7wRtWrVYkYelSXIkOGxgSsN+7t26IhGbWrirsd/R0/XCkOa9SDcWNRmNM5eE0uARHbmPNFEVuuPHIX1ix3R1CwOtdQIDecU/A+/pTyGKRwRLwHVBb8Se63y1FT44cGc0Gno68kAKAnHtoZqalYat8o4e7v/Pmx3X6/Zdk7B/1CFiA7IVsuhPCUzaGSNpZWhJjjPvQJH1fKGxRJpnEKaYRALqkZNzXG1fHQtJpqQECGSlXNtrSvQ8Mhc5nGr1CY4R4l1+mSHps98y1qtW88mhv/FmsIBkkSvjThKUTl7lCCuLngSz3knRVXkJ5CBlSkd8YR/iGmoqaIocCnaDLY3+B/D8+ok7FTpZiFyRXsMn4e7fj2BibtijpMuhKDUbA/o0pi4FOPK2W4Xf//1j9oK//wV878wE2o+CF6E8cEBeNHzAVKVAK5wx57x4lALbCt0aCXv7161imYwJqEtsjiNSAWxRm2IO+tOxYXuf3D19vhcAY4X9hVmmr9doWrRVPxmKAwzZORd5Un/MCXQEyvUJmhdGXj/cDtNgroI5LPYpNZBXyyL/j0uMBAfpLxhWsfngd7o4lqj6YdY/a6rcMzTTw4ifcFXwfM020nhaGGwNTq4NmO4n50J3ErTVEDREC4LNccF6hLUVQ4XvltE4j7VgznBdpbC4+ZQbdOIJj1kf7NWbYDPA7HFMYvS/CQs1Pz+++/49ddf0a1bt0S0p0TCSu4WQYECpbDznB3qgDb5H2FN2lDNMbnp2hdZ1OcjG+WoGScPq5n4OdiFS/KODBafBPvhSe9n0e271WroUDCBqQInWa02xunEOihkp+1mCMD7dJ35n8HOuNS9AIfVTOytfyna7/pUd4axnN1qNRxEVvRvD4I4RTFpRO7rKP9QjFB/wsfBfshXU9DTtQLfh7qHP2xKUrRcpBmEiHSlwPCcSBNOtskKzZf7nkHPmgWoUNV63TLSZEl2aOTaMAA0K5gHVBczEdoJiuavX8HL2Kgao+zy1FTN7SbNT/mqF2mKH4tCrbFYbYXzfa9ge1p49jkvFDb9mQqMQ8IrqiuKojGfqHDh8YD2+8hR05Gp5GFJqDmaK7tjO2q2Q1BZjJCqRP1B3Agh11UeOHsEsCi2MrOL8v7RtpEcr3UOsvbNo+7Lpyy/sTlUGxOD/aPvyqhA2H8pItR8GuiDJwMxbZ8KF2733YcM5OMM13pAr10qZJR/KLJwCieRhr7u5QCMJilVcWnWapsYuAC/Bs9CW9d2jPD8iBrE8ho8mDn88/ZPVkMbjwkvsmxKt4pVsPvQEcua1oViS+ZMCpxPfd9JriwYjaVqS9TBIYz0TI2uzUcTqhUlNlzrhQv9opvR7US/8WhgGA6pWcg18b3JRnkUqB6kKgFsDNVBU2Wvpa/TSaSjT8GrqK4cN/T1wZCKlwLXGoSarwI90cm1Cc1cezA+cAleClyr2V+gejXr1pmhX1i1RGlqKlWqhMqV+cNhywKsNPwRVGhz6dAGW1XnW6HvNK4oeAqNXfvwaq2/gcMb8GGgP+oph6IalRw1A3UU7Qefq6aic8F74Fr1DbHsw354cEjN1KTjD8EFhTLTjXBxwfO4wL0E7wQuxacpL0W355FCDWNWrJ/N/Ro6Cyd8j2BtqCGGNzsLi6tfhdULp2Fsyrs4oGaFD3J5AF3SQx+8+C7YHb28azAn1A59XcsNdUXu635UwehAbO2yc32xtZXeRlioOaWmRhegpCUlK488w3MitTO0GVWEdWoDZKRUwnkcfpnL1WZ4L3AJNuvCdoO6QY30OzmGCqhGyWuxKhQ2B1zrexynK5tQAC9UgCrQANrnB0Dj1N7X9wp6ulbia0KDd0HBS+jjWoYJwYvRHCr+CnXAM6AsTtr/FaBB2BSoKNaD2yDfaAx2/4E3A1dgUsqrqEio9BVFm6PYhVD47wvGRIUav+qGi/L+6d/JzaHaaOqK5TU6XrsHsvbNo/q7rKfcs+t8jxvMEkA4svAM10Z8HzRG0PxRGAZ8mou+PMO8YBscQyau9YdNedvddLOFogAgzJnPBm4EoGBZsAUUqHiaWISQB9YgDWjfvSPVzkSVQ4vxnP96DG8TxH/+ujhv22vhNllkj84jNFBmawoBQIqbTxP5e+hMzA6ehs1qbTwfuBFtlO3MY0+o6Viqhv2S9qAaHg7cjneCl6Ic8pnfBCkIX17wNKamPg2ALQT6CbNwQHWbCjSRNr0euAq93f/iMf8wHFPL43L3XDzp/Rx5hCA90jcC/0sJv98hKMhHKnXyGgiphszyK0KN8WjgVtTBYfR1L8OXOu0SENZ+8aZfWGIzxUMiEHYUfu655zB69Gjk5vKtz1MW0GesNew3EXoiL9upcvV127WPZpnaIpzwbPAveKfi/Xg1MEijcn2nUG1IZicOrx3CLzLrB0k9ZrPa1WpjvBYYhDykaaR2crAKcC8noWBO6LSwqUVRcDK9Fn4MdcUQ30O4qKBwhdw76TbnB/x3oPITW5CD8qhKycDJs6pxJAHdDDV2LyOC6AjCebK8kmdQUbOSl5GmgojKPWAhDMdQ8HLgWnwX0i5J8Vehb0iBUuhMS2g79J3R0lBz3OO7Czf5HgUQ9p14JzgQHwYvwkcmPlJ5OrPHHjXmf7JLrYFPg/00wtt6tT7GBS+L3pddag2ckf8OftCnE2jSO/rTpSj4KNAf/4Ua4jm/1qwYYZ3aAI8EbsN+VMFd/ruxONQCt6l0fx2adigIF2gytV6oCem+l4OtbsJI3whcXPCC4dzNal0M8T2EzwO9sTTUHKsun0UVaADgOt8T6Jb/P9NQeJa5gzVb1mtqFECjqSG/fVrCzZNqGu7x3YkBrneo5Zv1B+QguajL+7gl9TV8FLwQu895CStrx6LClobMQ//Jd+du/924oOAl5rEpnnB7SE0MjQA8GOx/BM8Xhj3TTHdbQzXxX6ghbvQZ05DsUGtGfZX0KNBqIcj+zc8w15ETH5rgc1b+ONzji0WE5iINE4KXYJBvNLaqtXEMmZgU7I+H/LfhfF8sJ9jM0OmadtFQER5/9FqncOSSgj2ohsnBC6gTMCuHZQA4I/8dDCh4DutV7TMpSqcUYaHm9ddfxx9//IEaNWqgXbt2OP300zX/yiJW5iceoSYvoxZ+C55pXVn56phX7nwUIEXTCf4TaoluwfG40z8SL4XCUVj3+a0dqncTg5R+ANPD+6LqTQkRqlegz1DMyg2rexWocGFWqGPMp6RKE/yWPiB63BWnE34irnCdv4bORkB14e9ge/wU7II5wXZMPw2S83yvYW2HJ/E/NdY5R0xAv4ViSyxUQJ5mYFkRaszUzuSoGbjPdwdOqOm4xf8QACAYCkE1EYi/qcG2uwNh58C73U/ipaafA9ALNdoZb77qxU+hrlF/CSs+D4SFDn2IPc/903MIlfC8/0as8RIRSWkxfwSXEvbjuMT3oqmAFWGLWgdX+57CQrQHEH5/hhbeUwD4OtjT8E4F4KZqCo1Cja5LdKfgx9A52A96To5ZoY54PDAUV/qeRjCrEfUYIDyY7UE1XHF6XTx9CT3dAMtHh+WbpRfAAOB4Oj0SlGaCSUcBfgp1w3433YejkkJ36tfngPIpKdigNAGgwKUoUBSgd8GreMp/MyYHL6CWEYE04eUhBevV+riqgO4T5C3U1FznG4UhvoewlzOB5sGIdhfhUH4gPPm5xPciVqjs9BU0FEUr1FgJLIDW941mwj+AyphBCCiRMh++oIXmvG+CPTWaGLL/Z5l5VVVFIKTiFNJxRj5deGVxj/8uy/DxQ6iEVWoTw/YSZX4aOHBgAppRsrHS1PDMyBVFwYJQG1xoEvUToXDM1vhU+ODFKaUiQghisnohHh31MqaPnsUs47KCZzDSMxXPB67H7+cdwIm10/HDvpifFO2d5H1RK1Eii6qUS0FWRuwjXBFqgg6uLVgTagDFxF6snxmRfFnhZmw54cJvwbNwVprxVd6tVkOngvE4gQwuf6AI29Va2N3sYhxZFnsWNKfJ8oW5Qa4ueBIZSr4mqkbPBrUuvg91xw8F3aKCXiCoMs15uG02OrqbAG+ynYgBBYvdHdA9pSqA3Zqw6FQlvhDfxwO3YEzgWpxEBq73PYbPU8Iasl02hBog7OD8UsXR+PRwoaCYFjPn2HUqjNw6RVEwK9QBHfPHo4trLf4KdYQ+oDsIFzyUF0nv5xWCCx8G+mOY53fsbXGTUOfscfG9Y6zgCtJM8Yr/amxW62Co53c8HRhMPZ4q1GQ0wFDfAzhEDORALNSWJOIYzjILLw61wnFkYmOoFhaG2uC34JnYo1aFHx684J2IFgj7NvmDalQ4dxVOQraodbAlaJ3lOJ8YmCNa1CVqS+SqqYZM3hFNzTFkYlaoIzycq3SfQjp6FrwOv+rBCWSgtnLEoFngRYFWY00KMizHavITZ5njSDNv5NlVTDd3oiYFKr1PC0lkUn2IoUVksV2thWt8T2BmanjCcIvvQdRSjuIF70Q86R9scXYJchR+6inzVZvLIqQmJt3rRp5fG+JqpsmJ7Al3BnzmiMhHVZmYSeUgA+ULt4dUACnmznH/qs0w2P9IuP09h2FBjWEo+MJ8bZjw4GPdxsqUCKcm1bVmmdt99+F6zwx8EeiNsSnvGo6P4FLYn0eBqxxeD4Rz05zNOCjb5lo2iqLAhxSMD1yMoe7fo46vJJEF5xarrZi3ZUDBc+jpWolPg+HV5UnNVdjWzaB2RyiHrMPOFShRs8oPwXPQw7UK80Jtca/nO03o67yQaD4QJZrXaEmoJfanNcFxb3Xk5vMnF9NbG0+5KgBXTgLcKYAnphWMd1YXOf0YMjWaNAA4WL0bqh+cj0+DfXEbzVGYYn4aE7gOPwe74NHOVwutYuZx810I63rJ7//j4Pk4hXT86TOm3Z8S6ImB7nn4mJJfye1SMDPUybB9t1oNZ+S/i+rKceQhBcPcv+Hd4ADTdp9ABq4p/xHWH/ZB/xU+678BR9QK+D7YHTcFVUS6OEUB1czHgjTfkKkBaIN0qkcrNObqnNjN2E4sn5BjEpVIw+NSohNTpVATFWGnWh3LQ02Rp6YyNW05RMAAyzytwoXzC17CXT0aIGd2ocO75YcR22/mkE+zFOh9bFhsUWvju+A5OKxWxF+F2qRvg+ea+gsCJUxTIzFCdt4zH+iBri/9pdlvpckZ3qMJFGj9FcyIzKxqKEej29RCR14ApiYNFh5dT0QVsDhfVNpaSfoP9AAq441CgcRMmNN3Itp9ZNOc/Yoit+OlwHV4PXC1Zkb2T6glznKt51oYc5XaBKuCRvUsAPiDIagqcKvvflzl/hvvBi7FHZ6f8F5gAH4A3+0ODyIxB+9wfgrgv1BjPOH5DJ8HeyNdKcAPFAdVXnzw4vOOX+DwKR9wiH/9tJDuPVQUBWh7OeUa7D27kwUBS9PvkjPG4uvvv8X8UBsMp/nUGDQ1CoJwY6XaFIo7Raht+m+IBesoN+HobWYKfiRwK54I3GIwd4TD49ltOISsqBZgVCC29IrXxAFXdacBFGfRHJTHmEDY/2nTwRM4cqqgsA1iAxqZvoE0n9L6BL2j8N3+u/FJ5nt47MRV/BXawOt2IUAshUPeYxUuXO57pvAv+oUH4Ub7/AkAzCPKNqj1cbxia0Qi4ETSDTDNT4hPqAEUPFDoxtCwSga2H8m1FGjCZxUdwkJNMBjEm2++ia+//ho7d+6Ez6e13R89epRxZuklIrTUyUpH7SxjZJNZx+t1u/Bo/5b4/t/d+CvUEa/4B2kSVtGIdMQ1dEmoIh+BVTSWHpeiwM2pOudhU6gOmrn2YHMotmq7WfFTAj1xVsp6rHUZ120Jd5LaT+T8NjWi+6LlO/wVuQhhSt8R3ep7AOe6Vmns4HbYcSQXb87YCKAzpofCyyXc7r8/up9nQFUYx61RG0ajZZygYkZKWKgRYP1+rcaOdTXxPLvXp28wHUQD3nL4O3RaYT0U85NbL9TEXlSXiUBNw8MRnaOY2FPJgcncXKowB0erEHUaXpOPk2dgnTR/u6Z+u0IqqanRCzU3nF0/an6K8J/aGO+2/xbT5iZ2ZXuvW0FeoVxH10RZX28Or8aYuHciQs0W1kKeqkhAgjlVyqdqssebUZT564RHsmeeeQZvvPEGrr76amRnZ+P+++/H5ZdfDpfLhaeffjoBTSz+RIQI1kvI5VNTGKn0bvBSzA21Nz02ojJ/pdCJc2Ig7IwX6dBE32GXYq2pcfFZngAAt/rvx6eBPlHzVqRtrNd8aqg7BhQ8h7u9zxr20c55+9rTC/fF9jr9DSkmZq8clMMvoS7RJHuJgrdPS0b/kZnuRbzzL1Y77QzEEd6ZRQ+DptZDcxQurPt4oUkiIgCF2yV2xXFrajh9RMzgjHrW4PWw2y0ysALxvYukQ6++mIf6taRqlBwar00h61WI/yYC8nbz3PsLCl7CYN/DhVmI6QS5o06doyg1NcKfwOeff44PPvgADz74IDweD6699lp8+OGHGD16NBYtWpSINhZ7Imp21kvIE/0k0hlEOuLvQucCI1fiucANhWUQalEBE5SiKIa2P1q46OFr/rBq16UoMPEA0bBdrYUnA7doFik0H7gUrFKb4CQlmRkos+XIjE1jfnJ4ZFfimHE61gaOriGSkTfRZKaJeJfQYV1P/LfZfgGR9/7CgjF4xH8r3glcSrTL3JyjJ16fGidWIqcJblaYOTiLCjUuwXsGhFd9f85/QzRfDAA8EwhHcI4PXBJuh1uhasJEtdIAcFF7hlaDgUaYSvD3Rt47M7NghPVqfcMCs3pok2raIspWiI0pwsU7hrD5af/+/WjXLux0WL58eWRnZwMALr74Yjz55JPOtq6EEPmwWC97ego7iRUZwcGLpqOp1BBq1AZrbBMPNE3Nn6Ez0Db/w6izaCCkcs9ELdvMIBA0tjmsv7IeDJ3+hpIhKFjB+0rEo+ngJRyJEee0mOkbVYSq6sK696IqpgR76faJdc7c0U+MG+GEpsbOu2CW1E70mxe9Z0A4y/psdNBs+yzYFzODp2MfwmHbbkWhtsUfFL9nfVpVx/Idx7AvW5uBvX7lDOw8ajSvkJoslrnXKciSnfquybHgDt9IXOv+Cy8HrjE5I35K1CrddevWxb59+wAATZs2xZ9//gkAWLJkSdJW6y5uhCzMT5ocKgxE+g7WbIz8CEQmMDRNDQDDqt6iQxrZWbpMfAkiHKH4bJg5HroSKNUkQ1CwgqcJY6/pkJS2ZqbHH1OQCJ8aAJix7oBhG++s0mwyHAlP5kVUq6FnK8svghMFPBEzRszMT7zap2gbTMzMouxDFUTeGreL3kf5AuJCjdvlMlzXJafVxswHelCP12tMkqWpsTOJrFJOq+1WoZ0s/h46Czf5H8MRyqKYpQVhoeayyy7DzJkzAQAjR47Ek08+iWbNmuGmm27CLbfcYnF26SRI5GjQ07VJFaR5tZqaG86O5UiImJ9YA9OEGzuhfmWtcMHqZ7RCjZgIou8waM25sJ1Yp/vGINI/wV5PwDusOD0zMPOpSRZWM8KxgzrgjIaVk6LqTfWYrybOAzuUuQhndSYDh6ijMO+hrCq/DJ6H/wUuw5WM5HOW9Sv2zE9mmpp0r9hz55i72MLjUuCldHw+G5oaj0sxpBsYfXFrphBB3h8y2tCKId0aCreNLFpUSH5uYFsM695Ys01VVdx9nliCQScoyjmhsFDz0ksvYdSoUQCAK6+8EnPnzsUdd9yBb775Bi+9xE5xXZqJaEV4X/aMFOOsl3bmL3efg35taqJdHa1Uzeq4yOrjFWpoM74XLzPmajGDHKzszmLNNDXkoO/07ElB0Us1VtcUuafJEAri1UIA9nxqHjq/BXunWV2c36LZbLhGZqpQ58zz/asq+3oD8ODNwFUa3xJR7DymcqlsLZyZ6Zxev7hPDVe5LnqEph3zk8elGDR5YbMZvd1aR2H+a2tSrTzWPWueUZnki2Fnadog+s11aVyFqnm85sz6GNy1oVBZJZm4dcpnn302zj77bOsDSzHRbJqcIqLmg4omrdK+wIO7NkTbOnQVIUvFTH4ENPNT+7oVsWp3NvVcvT+Ay6UYCqkg6CyqDbm219GFI1Do55L30emOtFj41HB2oMloqx2zhh5WEeTn0LR6eWw+GEs6qNdy8sJtfmI0qn/bmqiemYbDJwXC2IvBO2NH+KxAycYdIU1QQ5dIUyhNALVjfvK4FUP/aHbfSA2RiDZMUfiFwmoVUtG1aVV8uyy2Ar0tfybGS9ishr0kpHYpUZoaANiwYQPuuusu9O7dG3369MFdd92FDRs2ON22EoNqoqmhPVxaf2v2EuijjlgfoJX5iTxLr8rVlxmPU3CsPUTdNotTwGcCcPojcrmK0igSxuqaIvvtmBxEcSKNEWvAI9/vb4d30Z0Tf71msO5d92bhyD0xTQ3fcYl8s+wIFWaTFX1uGCsUE41HvND8e3yU4AIr3C6XISGqWZv1Id28VyfynNO8xvss+l3TEpVGrpInksqMjvWzhHwqS1Semm+//RZt27bFsmXLcNppp6F9+/ZYvnw52rZti2+++SYRbSz2RAQI3gepUn6bdUZ6+YTL/ERR1ZDt06uc9R2GE+YG6MxPtkrkHij4qZlpneq/WGhqrIQaG+kARGhUNZbeXSi7Kcf7yXtuop2grTRQQj41vAcn8JLs3K/yJuYn/dIEVtjxRcs00RSR0DU14TD4JtX4lz5gmZ9Y6AU73nss8ihoPmuiE0va0ZHLNPOb4mH8DcalN0TbkiyEzU8PP/wwHnvsMTz7rDZR2lNPPYVHHnkEV12V2JTVxZGYT41xH20oJ7+nE0oFVILxJSA/Or1QwzQ/WUQ/kaeVS/HgeG4s/bnBp8YJHwqiCLvmCwWcg4VA+c8PbIthnyy1rLm456mJNC8RM/8L2tREgyoZeH/OVgBig6VbURAUmNeR77e+nnhfQ5YJN1q+RQUi182vqUkUiq3ke2bmp1RB85/LRh6XrIwU5ORbL8BK86mJmJ/u7NUUu47m4dzmVREIqbj+g3+YTsQel6j5Se8obNnU8LF8hwGICY9kv2+nD2b1WaIaNz1Vy6cKXU+JMj/t378fN910k2H7DTfcgP379zvSqJJGyCT6iYYKFUN8D+G/UEM8nxHOuiui3q+RSQ+dJ+vP9xsTeZGtO62etrPXzwoc8aEgf9sVajhDREVK5+ksioOmxqoNkd2JaqvWEdsJTQ3L/MQ+N17Bskm18vh+RFfMe6QXdb/VuyDUkXMenUhhuag1NXaWScjK4PPVM4t+ykhxY2SfZuhYvxLOaFgZG1/ojym3na2JNI0Q9qnRa2rMhJrYPpEAAjFNTaFQQ2zjzXtE1seqMl7zk+hbVZTGe2FNTc+ePTF37lw0baoNE5s3bx66d+/uWMNKElFHYZqmhrJNVYFZoY6Y5euIpq7yhceZmJ90s96h5zTG+v0ncH6bmtT6VBW44cN/KPtiddSrlIEZ95+L8qnewrbrZsiO+NSQ5id7ZYQ1NRzHCZkJrI9xKQr+d00HDJ60hL9gh7EaHKI+NUmYFjlifuI4V38pTmgMO9avxNxnpeJ3+r1KdKoAez41DpufBJsQTuxoDe1d8AfCfSNNADircRUs2W5ci9DtchmSk5q1WZtRWMD8JPCka1U0rhloT1ND304TCJ0o16njnYRLqPnpp5+ivwcMGIBHHnkEy5Yti0Y9LVq0CN988w2eeeaZxLSymBP5PuzMwKL+OLrtGr8bnao0PcWNcdfRF1N0KwoCqoqth08Z9pF1pHrdaFq9QmyffjBxONolnsGJT1MjYiawPlZRgJ4tqkdXpi0KaK0cd11H3PXFv5ojEqWp0ajCHTDDsKOf2FFsTl+b163AH2TXZ8TZ9wpIbIdv5ztLp6SYiCCan8iWTw2nUGOWUdjLEL5oZviwT412m7mmRusozC04ch52TtOqeOqS1uE/iHbZeZa5Pq2GPjIhjtenRnRsK0pFN5dQM3DgQMO2d999F++++65m25133onhw4c70rCSBEswYUF24qGQtemK1ztBic4i6GcoCnBa3YpYuTsbl3aordmnT0al/6BuPLsBZyu09cV+iyUyi8B77UIZmTkaEjnGGYdpe+jbmeJxUYWLRJkzSBW9iCY8Hk2N/vrsXhvrvZl6RzdcMm5erD5Lnxr+OrnHuoSZC+1pWL0m54j6YtgxP/EOuDRtTEGhTw1LE5GT5zds87iNjsJmQru+bN6r4z3us2FnUbfb6XuO6rKyRy6TZwV5K5KwdqgjcF1pKBTi+hcMxr8gW0nELKSbejzxOxiNnHKmLamU0MAIChR8e0dXLHuiD5pU0+Yt0Hde+g+qe7Oqwm0htSe832fH+lmGbTwfk9Oht5Hy9HVfVJhV2YmQd+tGaP906wTDqKNwApqiKNpZrjPRT/Tt5PiiP8Rp01q7uhUx6sJYcjsrIUBkgE6EWUKEsBZB/Dyze2DPp0awfsoJP93VzeBr46YILnuO5wFgC0bHaUKNS6GEdLPbp3UUpicX7NOqOv53TQcM6lwvui3ed9cJoSaesuKiCFU1Qm+s3+9Hr169sHHjxkS1p0QSdRTmTr5HnFuoITH7AFrVrMDcp8dsNWVFCX+gVcobHY1rVkzTvPiOREOR5ifOD9xrMyGKyODDc2zkeejV1A9f0ALfDu+C168+zXCO08KF/paH/45tVKLbE9ODmEUlmcE6llUC6TOmfzYOTDAp7SDec6K+D27qTDlWpFzO4xJpfrJRuJmALpr8UIG40KZ/xuVTPWhfN8uwwK1ZO1maCDLCM1afy2CWEslTQ7u8AR3q4NIOddC3dQ2iTGaRuLlLWPNtljHbzsSJtn4ekPzAhxKzoKXX68Xq1auLPNS1uKHX1Dx3aZvoPvJeta0TXu798tPrRLdFHNb0d5QcUEb0aop7zmuKn+7qZtkWM6c7q8d2f9/m0d/GAVX8mZPn8KrFacITKzms2QzfvF3Wx0TK00dJeNwudG5YmTqDFZ3VWrdB29AWNSvoEhom1kQW0oWX8q68weqM7XQbiRDYyCLJtlYpn2I4RqT+4tAtipifHr6gBWY/2NP0/bFnfhI6xRCqHTldvwSCWTQQy/yUnWcc5Gl5aswg70HYxG88JrKNpkmlMaRbIyx9og/u7KUNuCEFfOHke1CQpev/Ra0ITlGU34JwL3zTTTfho48+SkRbSiz65Hs3dmlIPW7qHd2w4NHzNNEYkY7UTFBM87pxf78WaF83y7ItpkINZ94TgJIEzY4nPnk+51uuTwLI2/kIOQpzhXSHj9ELNZEzac/LrpaJhb6Gcdedrqk3kZqacBSdTUfhOMxPAFAnKxwJcmajygmZQCkMYZs3IzhPuU4cZweRd+HcZtXQsGo5U2FBOPrJJa4VMChZCs8PhPQTChPhi6GpOUbR1HjciiH6yQzDMgm094SSCNOsT1KUcO4XPZqJGncLY4y6sBV1e9KFmqTWpkU4pNvn8+HDDz/E9OnT0blzZ5Qrp83k+MYbbzjWuJKCWfI9khSPC7ULO+zPhp6Ft//ahBcvb8d1Li/xaGq0Idg6HxsbHwV5Cu/16fMpqGD71NgpP3JseNA2PwagZHMurJTWSZh1unYg6zivZXXUzkrH2r050W2R3XrNSM8W1dC7ZXU8+eMa23Wrqva+i2nCBM1Punv81W1n46slO3Fz14ZYvM0YkhsvZDvI1y0ZKnpVTWyHL2Ku43GGt7OgpajpwbDuXGG79IIHb4I8kscvaoUhk5agTe1MrCn8dtyU5Htm6Mumvd5RTQ1pHja5DSLBCiLUrEjPlu7wfMuSorTmCAs1q1evxumnh8OJ9b41ZdUsJZp8DwDOaVYV5xDOt/p7p89Nw0tmOvuRWjWP1dkD9j4KjaOwi6+zE7Ej2zc/hVtidocjz0M/4Eadcynn0DKexgPtmmjqbb1m5IXL2lGTL4qivb/8NzieZRIAoF7lDDx0ftiZ14nUAmbt0JhI49TU2KnfaeyYy2jPKyPFjbMbV0GbWuYZmQ1lRv/Dj77NrEsw04SyQrp7taiOlaP7YfXebFxfmLuLJ6ldo6rlUCHNg5G9m2H9/hOxtoHuKKyYdQwUWNdodyJhdXz1CtZLwzhJidLUzJo1KxHtKNGYJt/jLCMpmhoR85PeYVP3t9et4KvbuqAgEMR1HxgT/VmVx8Kg7VD5TVC8uBQF3ZpWxdxNh5nHRFqhrztq8qH0i6Sa+urOdbH9cC5y/QGs3pNjPFgQNWriJNsS/kMvCCqIv1NRFIrpjbNQZp4aRqt4hEsn0WokzWfWCTHtcT6dquVTcfhkAX+5DNOI2fEAXah5+Yr2uOS02jiRbzTfmBGZMIhgmEAxrsFUU2Oyr2KGV6P14dGoNqpaDhMHnwEA2HoolvOLdXtpMo3Zu8ubK0uEahXomeYj+zo3qISlO46JFUrw4mXt0P9/c7mOLVE+NRIjse/F/kzPqZfAbMVda02NVrNCQvOT6NSgEre5i7ez1R/Hq7FqU5t/RulSFIwd1AH39mmGxlXpC+FFo5/0Oyhq5ghkZ9m5QWV8PbyL8EyX1gZN9ZRthmelaHOFvHPd6WhWvbz+NEtEVPQkrJkwc3ZqIrTaFfbN5GCWsF1cNDXdmlbByN7N8P2IrsJliziNR95h2jlmAo9pmYKCFUB7f+nHmQkjVnlYyBBuHm0wKdDrnZBp10czS5vV4rT5aczl7aiRauS31bNFNe7yaLSqlYk+rapzHVuilkno1auXqQT6119/xdWgkkjMw9x+GU7NSDNMbOC8afcBo2bFIGxweNXbyVNj1UbWbKRb06oYd11HNKtuHf6uKECV8qm4t09zLNtxjJp9meUoHNlOayapHnficVLNT5Q/jM9Ke1zr2pm2jJl2NWQsR2HWu2JWS2KcoOmaGjMH0HgY2bsZ/jdzU/Tv+pUzTI+vlJGC+/o2t3X/7UUpGrdFrltYQFHEo5+MQga9APOQbvNKRReKJG+93rRlppGnmYdpsAV8Y5kA0L5uRazanc0sr3K5FOp2rTnLWOnd5zXF239tZjdUR3FYid4KYU1Nhw4dcNppp0X/tW7dGj6fD8uXL0e7du0S0cZij5lPDe+zdeodMFuczqoOVmdP/n33eeEQxGcKw9ZNhRpSU8Mp1Vgd9ds97PXFLm5fGy04cvpY+VEAsbYbfGpMzvNooiSM+3+6qxv6tKph2M7TTlq5kV8G85PeRwFG4cwKBcYQbrMiambGbPbMSTPr4Zo5bCckT00MrVBjPMZp4VRRwiuHVy1PH4TCxyia/9NoXSvTeB7EV8iOnKeHFqLMVZYifg5NKKeXbSLUWFw4mTGdx6dGq6nRJt+ja0sL92vySPH1jSzI758V1RTBroVe9HWhHX9Hzyb2Kk8QwpqaN998k7r96aefxsmTJ+NuUEkk6lMTRwfs1Iy0nJlQY1EFq7MHYh3PA/1a4OauDaPhiGYzJE15imJTW6D9uxKRZdSuM7WLI+Ilcq9YSbpo95J0FI5GTxFtbF83C23rZGLGugNc7aQ1jdwWaQtNfW8w/RHXUb9yBqqWT8HyncdN6xcRhDSJG1mCIndpMRKdp4a8d7TByhGhhnLll59eFxPmbLVfpgJkpnmQkx/QbBcyP5kILlHzkx1NjXDyPevoIsDKTGleZzAeTY1mlW6GpobSL5g1ia21JBNRxrYnJYM5B7RmD+/RBO/N3mJ5XLJwbB50ww03YOLEiU4VZ+CFF15A165dkZGRgaysrITVY4d4FrSM4JxQY2J+sjhXY34y+NTEfpP5FRpXLYfzWtLtrJocIC4FV3Wua9EC+sdgN7MtCx5NTSyjMMNRmHLe8dxYoq94mnlavSxDGZFW0Gz2NEdLfWgpeRV/P9QTL1xmrVUV8anRCIqieWpMhNNECDUaR2HNuxA7JjrgF4EendfspD8qrCUREGqI81h7xc1PNjQ1uvfXjkO51aAvaspja2oYwq/u//rfekTvq7UgZn19TnxKvH5nRSmCOSbULFy4EGlpiQsb8/l8uOqqq3DHHXckrA672Anp1qM/1a46sZzJiruWPjXEb+NqyeyBauLgMzCkW0PL8mpVTEdvhgDEgtZxxwstK6/xGIVav5lPzb7sfMNxemox8kgAQOcGlTB2UAd8POQMZttoM0H9TJfm10B26ryLi4powkjhQFRT0691TbgU4OzGlQ37EhN9FMPSp8YJTU2COn1aH2FHU2N23eLmJ/Er43UUNksEaHXduuTElmg1NeQyCRbXx9G3AOxrJOslf/OYzKzKc0JA11+Sx2UR4l4ECJufLr/8cs3fqqpi3759WLp0KZ588knHGqbnmWeeAQBMnjw5YXXYxSz5Hn+WUWfaYmp+sjhXm11Vu896NWPzASFyutmCm4BROxBOAsdeG8gO2pBe1jGR+ulONbQO4syGlbF4u3myuCtOr4sN+09i4vxthn3pKW4M7FiHcpahek0bDCtbG3IMGU1/XB2cgGBttm5YtE5GlZXKpWDtsxdQB61EaN1ZId3x+MSZkajunaZ9sJPXJ5MSwRgT3sXLE52QsVZmH9S5HqYs3YV7ejcDANStlIFh5zRC+TQPxs6IOV67ODRU+gUsrSA1NTyriEfNT5zJ93i+P1GTGQ3LiYng89W32+t2xZXKJBEIi3+ZmZmoWLFi9F/lypXRs2dP/Pbbb3jqqacS0UbbFBQUICcnR/MvEagmmhreh+uUmjtRPjVWM2b6N6ega5MqAIABHWqbV15IyG4csQDktTBDQQsPMfrURMrQbm9bJxMvXt7WUIy+L/W4XRh9SWvu0EhWu8i26J+V/lEolHbw9GW2fWpYQo3J+WleN1e4Oi+mLSeKtJun5sxGRq0Ss7oE9PCKQjcPsupqXoMW0h8+uHyqB1/ddrZ2MUYH2siL4f0t/POFy9ril7vPwb2FQg0APHFxa9zbp7nmeB4thqj5SaMlcZu/IyQ0Z3Ma+okHDXJx4ooZ7NQZvDjyHurK8LrpPlRF6VMjrKkpjpoSFmPGjIlqeBJJdO2nOMrQf5d2h/ZycYR0k2+icbVk83NZppLPhp6F/EAQGSZmMRJ9anQVKteCliKQAxUraZeVT43+eod0bYRqRNZOK4GAfr+s3yBaB0ITQLVaMsUwY+N5V4V8ahjaD02ddkwTCTY/WS26Squ+afXyQsI39boduCzaO8a69+9efzr6vDGHWdbZjavgv93ZmL427MSezEFJ3+YujcMTIY/bhbZ1rPM88VhmzLQtmWmxvmnAabXx08q9mogejeDLKIPWL9hJvkc+0RSPC/+M6g1FV5bbZb52Vds6mY4k/KShb7XX7WKYV4tOqhHW1DRu3BhHjhwxbD9+/DgaN24sVNbTTz8dDZFj/Vu6dKloE6M89thjyM7Ojv7btWuX7bLMiPQt8URPONV5V8zwsldJtjhX29lr91mptVmzXJdLYQo042843bBNryZ2OJkwAG1bWZqamFCjP1cp3G88h4ySCFnY8Gn3k+cNoM0EqY7Cms7VhqZGEdPUXNkp5gSe6qEL1qLrCAH2zU9mpzEzChPHRGbJrM45z4FlKFjw3HUFFJOiwhZqaEt46N8Bmr9WMtC3efQlrYXO59HU9GldA71aVMP9fZsb9i18rHf099hBHbD48d7oRfj+6R2FadB8kMzfQfr2i9vVQorHhV6FifJqZKahemaa5nha30F+qu/f2Jm63RFFja5uplBTkjQ127dvRzBo/KALCgqwZ88eobLuuusuXHPNNabHNGzYUKhMktTUVKSmslNHOwXvgpZmOPUOpHrcaF07k5qoyVp1qlB/A9azIaoK0vwUXNC2lmEbbQbstFxDzshJQeTKTnXx7bLdAGJtNzoKh/9vXKtL2zlb2fBF/f6oEXaFP61CYmlCjdXTyfcFkcYphNzRswlOb1Ap+jfNN6ZN7Uzc18c4oFhh14fKfOmF2G+3Tvgbc3k7LN9xDP3a1CzcSC8jkUINLzSTCqsP4hGiebUMlu0S/GLJ7+bmLg1Ms6LT4Ol3vW4XJg05k7qPNNm7XIphnSSt0GUxuSN/mxzKmsRWKpeC/57uZ9AsaTWKAExev8gq94B13yn6lPXHe9x0R+GihFuo+emnn6K///jjD1SsGFMLBoNBzJw5U1gAqVq1KqpWrWp9YDHHmegn3SAZx0jeokYFulBj9UHqTBYkdnxq7NwOUYc+O5BtJWd5TYmlBFgZhSP3kHZtZFlW5gnRSJvcgoDhGJajsH79HTs271Svi9sPoU5WuuZ69EKNx6XgV5OkiWawNA9f3HoWc80xKzTvOdFUBQquPbM+rj2zfmw/4z4V+PnDacj6nHy9Df5eYA8wNCGalqQxQiIWEtW0R4m1P966rJZIiBezhTQj0PoFu5dF03RapaHo3NDax8uJR6r/HlLcroRFDdqFW6gZOHAggPCHcPPNN2v2eb1eNGzYEK+//rqjjSPZuXMnjh49ip07dyIYDGLFihUAgKZNm6J8efF1bZzEieR7Tiza2LhaeB0jlppfyMlNb36y9KmhbLOhfzL61DhvgtI6CtPbGHHkYy3qSPuQhTQ1gl99TuHCgrSZoP690+cKCWtq+H1qzmlaFXf0aIp3ZvGlT1cU7btjFeEmAu21a10rEy1qWGeOZpfJMD9RBfP4zU90LabY80/1uFAQ0ApStD6DZYrhMdFoTBwJTvbmcbvgK7we7TMQrzfRmgKrd0QLcazJMxZtM+lYTJ479+FeyEhxo0p5a4uEMyHdFPNT3KU6C7dQEyp0EmjUqBGWLFmSdA3L6NGj8fHHH0f/7tixI4DwquE9e/ZMalv0mCff43vkgTiifqaO6IqvFu/Ewxe0BKC1AWtaYtEU7VpNopoaZ6R1Mwc4PbZTgxPtIu8VLckfqw6rS7PW1IiVmZ1XKNSQJoLC/+sHLJeiGK7F6H/Bru2zYWcB4Pep0WsIWD41dmAJj7RBumP9LPxrkSXZrHyRrzfPRxdqvhh2Fq77UKtBEvY5oNx2vVCjKHRHbpaQTtXUGNpkrg1wEicFqAQragwZhc3Q3DZT85NYG1hmrVSvi0ugcQp9s+/o2aTkOwpv27bNINAcP37cqfYwmTx5MlRVNfwraoEGIM1Pxn28fYPIYK7n9PqV8MqVp0Uz/aYwklRZRz/FformqXEqxbxhTRtVtb0cAkkFwm5OqrutnKr14zptNV4aVs9TNFQ5JtQQbSz8w5CRVdEtZAf2GlZ6Xr4ilmmY966fyPdr2qV//+J5enQHdMBNGbyv7lyPs0zGIEWti36nCgJ0oaZr06p4c9BpXO0QIZWyAjMNllDDY+LR+BrFIWjwyMIi2jIr7Aygw3uEo5seOr+F5bE8miSaBtesVXYWCqWVa3XtGkdhJ+QMooyRvZthYMc6jvX9TiEs1Lz88suYMmVK9O+rrroKlStXRp06dbBy5UpHG1dSiDkK23+SxkHQ/lDA1NRYnEfu11+LZfQTdZtxq1WH17lhZXxwE+G9b344N1nlYs6HPHlqYhmF6eYn/e3QmwKChX+y2i+ahTO/0IeDdoTRUVjRtIcW0k2rf+qIrhh0RsyfhFcTtvd4nqlPTTzQBleXS7EdPQbosyuT5/N3zh8NPgNpXhfqVU437NOXw5plM6Eco7+n1GIUtv8HTbOlb4s2bNiqkWxo783NXRpoHMV5lirhrs9GL/HIBS0w9+FeGMGxGCN570T6ULN14kQvmZV6wLocq9QSYu0g3+2IuwP9uKJD+NV9//33Ua9eeEY0ffp0zJgxA9OmTUP//v3x0EMPOd7AkkCkkxRRX+tx0kGWqX0QMCEZnAgt3hSnzE+talXQJAEDnPGpIU0iPHlqIoewNBxW12ZlfrI7KOtDtVll6QvmCenWP0O9oMZ6DnuO52vO5cnAygvV/KQoVGHH3thoT0vQq0V1rH76fFzW0biemVFYsNMuLWkcmppuTaoKmp/YwhctBJwkM82DK063XsstwjOXtsXQ7o1idTG0QskyWyiKgnqVM7h8eMwW7Y2WFy3XuI323Yj6DpGH82qDEgGrHcbjik6sEe599u3bFxVqfvnlF1x99dXo168fHn74YSxZssTxBpYEosn34niQFSmpyu1iJ6MroH9hdWVaaWrinI00rloOP9zZDQ2qaKV/p2Q9UtAjBTSWpibSdqOjcHgH76rAVRn2bl6n8icuagUgpibXqp7ZZWl9avg0XvpnzOtTc/npdZLqKOxyMYQa8u7w+gNRBiHWfj28UTd20h3osRIU37nudAw6ox5TS8tjTtIIGhbvd6tambjMYkkPPSw/mnjNT4nGw9O+iAbXxC8xHpjmpyTfMPIZmgo1SWgLC+Hep1KlStEkdtOmTUOfPn0AhGd1tPw1ZYFI/xnPS9ykWnk8eXEs6VQ8g7no2ju0/Qbzk+XaT7Rt/PejbuUMdChcnZoXEbUzS93tZaRAj3ROrDw1Bq2G7riIQHBnrya4oE1NvHu9NtEgr2ZrWPfGWPRY76iaXKtNC//fKrIlbI6yrstgUjMtNcz4G05H/7Y1NZ2r3lE4nsg+WqfdtUkVuqMl5+umWayQuHdUU1ccZq7o8aICP81RWC8o6gq4qH2tQgdqesG0a9On3jfkQrFoorizK/0bdDMG7OKChxFMQEPr82bcZhdWZKpV0VqfGouJAAfk8WZydlEKp7YWtLzuuuvQrFkzHDlyBP379wcArFixAk2bNnW8gSUBJ5LvAcDQcxrhuV/Wxt0e+xmF2Z2alYBC/2D4cSKk3QzyerR5amJ/kEtMxBa01JZjZicniZifKqR5Mf7GTsb2UAqonWX0zwCAmsTK3trTwn9YKQxo4hl1nSWDpkZXDuWaW9eqCEVRtJoaB31qyDY9M6ANXC4FV3eua/2+mTwgUhiuViEVAzvUhsulICsjxbxMThIxe07jjChjZhQm2nT9WfVxaYc6Bu0weaalZkdlXyfrS2ZNmmhO3yIkOrWVSKoGEiffAu29tqfZEtVE0tvBapP+uKKTaoSFmjfffBMNGzbErl278Morr0RzxOzbtw8jRoxwvIElgVieGr7Zd6Kxu/aO2QtrK08NZZtoBxSJcosXlqaGnIXVyEzD4xe2QnqK29K0oL8d+ksNWuRmI8+/p3cz7D6aiwf6WUdiaOpkaI0AY3g6T/ST/hnz3PeoXw9xrpPRT+Rg3LBqOfRoXs2kLUT7TdqujwgZe01HvjI54TlDb2a1Qq+pYdXBai/5fNrXrUhdkFPE/ATEN4ljpf0vjuYnUptrFdVIkz0UxB/wYJZDzAxNFKQD95bXp6YoERZqvF4vHnzwQcP2e++914n2lEhiPjVF3JBC7JufyIFfu8+qA6O/4Pw3JNGSvaavIf7Q+yrcei7v+mU6AUC313qZhNj5PZpXQydimQHTWimqZ5r5idRGKArQomYFLNhyRLPN0CbdNh6fGppg5WSeGpGBlvcNouUjirdM0zIodVxxel3sOZaHsxpX5sqMHK/2i2wDa1zWfP8WH7wKVTgtAVNTE2fyvUT3u2T7WPnEIlpure+Lcw1jpSFIfj4Y8rkluWpOuISan376Cf3794fX69Usl0BjwIABjjSsJGEW0l0USYhYHbVVW0hTjL4MSy0PbZsDl242rAopcJiaGnsdKqs/z8rw4niuH+cRC+LRz2cLkGYoMLaXlGneLzR16e/Nm4M64M3pG3FjlwaGcqLt0DWkfuUMzIdx8VpNeyjmOEfNTy7++2TnfYu3TJqp17i0hhG3S8F9lMUVAbqvWDnOVe55YAmrZDu58toI1qv1x6B/j3a6jESbn7wcy5/Q/GcSJWxp+mahviN+eM1PRQnXlzJw4EDs378f1atXjy6XQENRlDLpLOxE8j0nYYd0m5/Xu1V1tK6ViQ71s+JKDmW2TRRVdabTYqm77a4bY7i2wjbOebgX9h3PR4ua5mn8WZ26Zb2U5pJlsTQ+NTLT8NIV7aN/0zU12o2PXNASvoAaXYGbGppa+H9yn95UEs/zcwl0ory3kWyOHV8xkpu7NMT3/+5B/7Y1o9v8QZ1Q40AfkJnuxeiLW+NZB3zu2AMzXehgwfSpYQlNjAGfJ2S6KHFxaGoiaCYdCWsRUZ9FJU77KpLVlWjzU2SJBP1vSZjIe1OUqaFJWGphq9aletz4bWR44cFnfl4T3T6kW0PLOqk+NZZnWdOiZgUs33GMu04WtKghQJunRqS9rLoz07zIrGkdnm/XNk3rNGn+QlZdGa1G/WuTlZGC1682z44bqY/0NXAyT41bc23mx/J+f5rEhHF691fM8GLWgz0124K6PpKsIZ4x5pZzGkWFmnjGE5ZfCCvk+sxGlbF421HNsapqJ/qJrIsh1Nu4rgQrajQwBcLI/5OgyXAJ3C6tTw3NkiBatz0NczJxTqdZhjHT1Nglns7PrqaGhHx5e7YwN6WEy6Z8MJT6WGHY+kN/veccbDxwAt2aVsUyhlAjco/I8sm2kpqaTIFcQfHOUlhClhW02S7t9PqVM9C8RnlkpHjo5iAOTY1IewLEQM5apsMOItoDO5oaO1idH886bsmA7VMT+03e669uPRvbj5zCea//Hd0WDukWe19YPnuaPDA2pBpfIHkTbaZPTcQMq9lG7HNQY6JNwCkwIXJgfBJ1Ji8KhISaUCiEyZMnY+rUqdi+fTsURUGjRo1w5ZVX4sYbbyy2NrZEE9XUFJPrZyff42+fW1CDQV+g0f79aFO7ItrUrmj7fK9b0ZgBMlLprzqp+q6ZmUY9hgfRVO1aDYSIpob8XdiREudHtBBul4JpI8+ForBmaBRzoQ2pPHJGOuHz4aRQYzfqw5QEyxx6TYgT/YLIKutWsH1q6O+ky6VQBX7We8sM6Wacq4mcs2GKYi0umgj0Wjg9cSqdhBHSLjtcX3EZ7/RwCzWqqmLAgAH47bffcNppp6Fdu3ZQVRXr1q3D4MGDMXXqVPzwww8JbGrxJaap4dNWJBq70U+sY3kGXdoRTl07a5JjNjb9dk93fP7PTkxesB0AcGfPJmhevTyqVtBm+D1VEIj+rp7Jv9ptvGYLTWZOARmAtkwCWRY5npq1kSf6SaQ9dbLS8cRFrZCZ7o171WVtm0RmooRw51gLxAmY+NTwXA7tfXfyelhCDSmY65+hE9836z5oltiwIRD7rPInOIi1Fs6eBlYEkXKddqI2i5AtLnALNZMnT8acOXMwc+ZM9OrVS7Pvr7/+wsCBA/HJJ5/gpptucryRxR2nku+RxLMyNSuJm1h0j9jHWVxy9ERoVqMCnh7QBvf1aY5dx3LRtk5FnNW4iuG4Y6d80d886+tEMOapEbtYbVRPfCpkLzEQsEyPhnIo2+yok8lThnUPh8NvPHBCuBwW8QqPNJxY9d0Mg6YmobWJw5IBSCWE/l3Q9x2qqsZlfmItk+Ckli8RWOWp0b6uRpOUE9g1XdMOjqePdnLy4iTcb9CXX36JUaNGGQQaADjvvPPw6KOP4vPPP3e0cSUF0+R7RdClnV6/EnW7mE+N2Hn0mZwz9l5ePxwaFTO8aFuHbcbq364WMtM8uKhdLY7SyLp1nbzgQGk/pJv4XfhHZpoXI3s3w93nNUWlcsasuNRyqB2ceUN4Iqb0bYwX2iDBgrfeRIcA+/UmCuHB38HGUGBramLotYe0JoloGA3nagSc2HYnncwTAUuo0fjPFJKoMV9r4jKvxPHoJ824UMKFmlWrVuGCCy5g7u/fvz9WrlzpSKNKGqbJ94rouV97Zj3DNpGmiCaRKooX3InPtWr5VCx5og/GXddR6Dx9h1W3Uobt88WEP/pzua9vc6GMxFRNjVXCNZOQbs02B9+FeLVYNOJ9b6yqCQYTb/yK5x6zInhIYcdgftJVR3MUjmoJOS5fK9TEhqEUBxM3JgJWUs1qhQvX0nxOnO4aaRMb0fPs112KzE9Hjx5FjRo1mPtr1KiBY8foUSqlHbPke0VHfKpGmu+G+fHGbbRZgp2JQ6Jn1nYy4JL3p3bFNHRtYjRtmUFq9YQ0yEK1mNRPeWD2fGr4ttlF207+HCFm2H2fWtSogA0HTuDpAW1Mj9P7XYjeDqpPjYPfAGtgVs2EGr1mUhfS/coV7dGzBXsJCzNIU5e3mOes0Qus1Suk4pELWqJh1fCyFzRH4UT6tSQbVth/cYJbqAkGg/B42Ie73W4EAgHm/tJMcQvpZiFiCuNdYl7kGMcpQm9Q8nIHd2so3NEw83QInBfXLacKIzZ8amhRVA6+C3ad2xPBfX2bo2eLapa+V8boJ+fbogC49sz6+HLxTq48UiQstxCyzzH4V1m8L2c3roLqNqMHyQUti7tPzem65JY9mlfDFYXJKQHt95AwR2Hyt0Udcu0nE1RVxeDBg5GaSo8QKSgocKxRJY3ilnyPhZhPjdjHmUihvThm/Yj3g7Yd0q3Qf4tCO9epmZeTr4K2Tfw+NXUr0Z3lgXgchVUuZ3KjpiYxH8ezl7bB1Z3rop2JzxgNlvkpKGB+Avj7iC9uPcuwjTye/BbsLLHx0c2dhc8RZe7DvbDl0El0a1rV9Diav4vj5icBnxryVacdKzqREdXgFwXcQs3NN99seUxZjHwCYmpbqio+yW2J1htnW0SyVoaPMR5lNzleYk9yhnirTiOWErDbOcQzWNLOdEowdXIGJyrwfXXb2fjin5148uLWzOMSbc40ZBRO0HvqdbvQkREUAAC1KqbhvJbVce2Z9QEAfVpVx4x1BzHoDKO/HaDV4FgNdiq07xBpTtULjc1rGJcM0Qg1cUQ/XdmpLnq3YrtFOEW9yhmoV1nMby5xId1F1/GRNZd489OkSZMS2Y4STSJ8ahLR79p2SOU4j7foqzvXw59rDwjNLi9oUxNvzdyEOvpQ9SJU4ZDP2s4gWY3IlyMStuycpiZxZiNnfWqEasbZjavgbEroPon914avMfq1n0Sh56nhN2m1qZ2JNXtzcPu5jTG4W6Po9g9u6ow8fxAZrMUxTV5kuhAc22qWDoC2h7W4pVcw+qmoh1X9HUtECgI9IuYnzXlONK00mZ8kbGg+NVXLp+DwSR/6tanJOCv5JNL8xCsw9WldA9PvO9cw6zEbBlrXzsTch3tpBIGiRiH6XjtDGOl/INIPxruisdm5xVGoSUga+ASraq7uXC+a9BFI/sD75W1n47/d2QbhTlEUtkADtq9N5FwNqqrzr4j9Pr9NTTzy3X/EPooWl0z0R+wXDekubuMqTeAIC3DOvXMZKTETaLIvvyREPxVvr6wSQqSPJKX06ff1wBe3noVL2ovlP3EKq9mRFWTfYjejMGvsaFajglCiOyCs/hU9J5HE+z1XJwQ0keeSSJ8aq06K1xelqNTjia6VNzKnde1MfDO8S/TvxDgKswvNTPOiW9OqwuYBVv4aGip0EXzERWZlpOD2Ho2JfeZlkfluRM1Pxc2Pkebv8upV7QEAj/ZviUmDz8Bs3QKovIy6sCX6tKqOi9vXJuqzNhPG2hM/pcpRWMImlqcm9pArlUtB1ybmTmVmxDuZjDfUlswdwXMaLUxUxCGzeH4ebJw0P7FCbGk41YnHG7VUJysdbpeCCmnGLqSoZnC8wlSV8mIav+E9mmD1nmz0aM4fslyFSIJY3AZeFqLvsZl/Raqb7D8oDqoM85OwUFPMbi0t+unSDnXQu1UNlGesP8fLbec2wW3nNsGk+duI+sxxOvmeaFRsUSCFGgdIREh3IhBpHjkr5Xl3aREVFQVWvS5pkPfETjRNqseNB/s1x9FTfqOvEGe98YiCVE2N1SrYRH1/P9QTiqIkJYt2iscFXyCE5jXKW7SPjwva1MQt3RqhQ/0sruMf7d+Ss2SiLbSEJZyQTuTJRERTo8f01bG4flKoqZAq1mcUt3GVpUmNV6DR1MGoz/I8B+4Va9HT4oQUahygeCbfMyKmqRF7eUltwye3nAkgrIZOJIlewwcAnrioFZ7/dZ1he7yaGgC467xmwufY7dCcxmPi++B0u1aO7gdfIIQKaeYDHm+9LpeC0Zewo6OcwO4taFmzAh6hCFGJjtgCBM1PukMNa0Np9hnPJ7d5XC482K85TuQHUL+KWIRRUdOtqc5vifidqPFANIgjeqwDkw2N+amYOq9IocYBoiHdRdwOknjNC17BN5bU1JzTtGpSogCSwbDujXGyIICxMzZptheVQKFdJiGecuJvS7LKTk9xIz3F2p+quM4pFACn1cvCyl3HcRWRqE1PiseFafeeS91nEDcScK2igpNmrSiT9lg11aXYE/D5Sk8MCx87D6t2Z6OvPpzcvoIuIWgeqSOamhjFdRIvhRoHUEuIpkbkpXZrnACtjyezqNoRaIrr4mgA3YxWVH4SWvV2HOanBLa/yO5NsRhGwuif07fDu+BATr7pGmFO+z+IYhb9pP+k9VpSs76PuniqxX5eimruVKtiOv7f3t0HR1GneQD/doZkEvIykMS8QRISEkiAECBBNxAhEQhv6nIoLipINspdXEBCSgsQDhCVKCq3FiiYvVpq73Yt2VXwpbYsyYkmy1EQQLKw6OLxIlAkbPT0SDZIeJm+P1jCDEwm0zPd/evu+X6qpiqZTHc/0+npfub5vXSy4/ZmY9Vm/PZC3dGF/i9g1OudQQtI5uL1hpaCeJwxVkGAvWzKDl4d7uEnjKd373oy1fNipNYhpuWxqteFZumUW5ppjPT5c+0wiuvzr/R001PNJ6vsgbfmp95hvbom8fOF66q0PB6MdM4Fbv2/iA/O9f/gKRqlXwTcKzV+haQ5JjUqMEufml4KjsJeIcpmvL11FlUr8XQxUqNPjT/Uqmj5sxZ/h3T/ulybaeyfLBmIhaVZN7eryVb848/Qe29JheAiDgCgZmae2+++7m+PF06Dnyv9pUfF2d8tqDElhnufGmP+D9n8pIKu0U8qpoiBdoL1dLjZFASotFLjrXStFb1O9BNyE/B02SAMdZkFWdQ5Wa0KkZYnX9cY33hkFO7J0W4ae9chwEZuwvSFiM+Qq1tvxOmNLF+/DcPE3ATYQ22I9DK6x2NHYX8C9LRuQ6WyxkqsbzVlWBLGDboDDV9/6/c6OPopSDxdNhgVYzOQmxwjOhSvevk4eRjgXtXxZSklJ0SzkSTpto6MrhdQPd+560klkO26/k9fmpmHe/NTun2t8nXfXLvCCWL92Jbnn43EoOf+2yg5P8jy9c/Av88b7de21PrMGG3f6hKPgo24fjkOtYXgPyruxPhXPsPp/72odFUAgD69b/YvNGihhkmNGvJT+4gOwSeKmp9sSpuf1K8smYWuTQMq7SjX/2lCjF3deTR0bNRWa4ZltXmaWVar9atl7k/S8WFTM6YMC/zWLq4XU01H2mm3ar/oUTlSsgVP5yZflo+y98Id0Xac+q7D7fmshJtzRbH5iXTlqRSvZNp0t0qNLx2FLVyp6Yke8+XcoNYFwp+mGl9P2Hqe6tyHuBvnJOs+l4gG69fgvUaHh3Y7pPxWSo54TUfaGSmTBXQ5+AN9y93ts38Zl4m3Gk56XXZw0s07riv5kqwnU3QU/uabb/D4448jIyMDERERGDhwIFavXo3Lly+LDk07GlwnlXUUVtb85O9spBnxkQCAe/PF3CNLDbp2FNZknequVVRbu9Gub+oy15cGt1E3GvapMRr3U6y4/1np4Ou39Jj7k/Tb/tbdvl8+LbfH9cZH2fHyA3l4YcYwrzdHFcmYUd3ir3/9K5xOJ9566y1kZWXhL3/5C+bPn4+Ojg68+uqrosMzDZuCDg69bPpUaj5YOBb/87d2jErrq3hZc53m1SFq1JUSeiYXat21XG1GikU0j0OJNWhGNQJ9Rj/1vI03Hh2FA9/8cNud2v+xgh6lxfbGxctXPf7tZ6N9H9ovgimSmilTpmDKlCldv2dmZuLYsWPYvHkzkxoF/B3S7ctiSm7K6ComPBQF6bF+LWsUunap0aZU4xNfm9ncKzXanuR13JQiak2SaFRKRt55qtxx9JO2eof1wrhubsDq7SPz/oKx2PL5CSyfloN5v27ULD4tmaL5yZMLFy4gNtb7xbCzsxNtbW1uD7MI9EIZ6OR7bjMK+/BRHZd9/QNk1HZWTek6+V4Q7l8v3E/Qxtw3muShxnyrHpkp1kDp8V616lMDACNS+2DL3AKkx0UGthGBTJnUnDhxAhs3bkRlZaXX19XU1MDhcHQ9UlNTdYrQmJT0Vg9VOPppbFY8/lBZhL3PTvAnNPKR+/9CnWRK7fOwnhcxw45+cp1RWIW4jNrU6AtPF9GCdOXNzZ7XrcpqVCN5rYMYg69RmfWQE5rUrFmzBpIkeX0cOHDAbZnm5mZMmTIFs2bNwhNPPOF1/cuXL8eFCxe6HmfPntXy7ajqRgdaNSmZM0TpvZ8AYPSAWMRH2RVG5b9pedc7F6cLvrOvqOYno17o9OwobNjqjEpDuh8rSkeIBFSOH9jt+o2op0Mz2RGB3UtLcXhNWUDbMVphWJdKTaDLG2yfqU1on5qFCxdi9uzZXl8zYMCArp+bm5tRWlqKoqIi1NbW9rh+u90Ou12/i6wa/lBZhLov/4Z/HpcZ0HoCvku3wo7CIpSPGYDMOyIxon8foXHoO/pJizlP1F2nvkO6xWy3J2rFsvanw/Cv9w5xq5waQWxkmNe/9/SZCJE8335EKaOem7QUcPOTylVEoxGa1MTHxyM+Pt6n1547dw6lpaUoKCjA1q1bEaLmPQkMZPSAWIweEHjHWU8Hay8F+8y1UmO0b0M32EIklA5OEB2GKeep0ZKoId1GnQws0N1hpITm1+WFqG04iZcfGB7QeqyajLgf+9qcFwL9YuPrrjdqJbgnphj91NzcjJKSEqSlpeHVV1/Ft9/evHdFUlLgs18GCyXnRrc+NYb6Dmw85p+nRuX16dqn5ubGlEwuqTmDVpACdU9OYkD38rozIxaNp77HVBVmLQaMt28tmquZiimSmp07d+L48eM4fvw4+vfv7/a3QG7qF2yUfDsy1AWCupjhG67Ws+m6bcvlZyWj+7SmpMT/i5KBePPzE3jqnizvLwTgiAjFhR+vGKJC6Y935v8El65eU2/iNuP8ywHoFI6Go59c6VmBVpMpkpry8nKUl5eLDsNUPB22Sk76oS5NVf7OFhws9Nw7rrmmVScwU8I1diMl4u771Htcz0wejFmFqRjgQ4f3nUvG4cA3P2DyUO3ufK6lkBBJ1ZlojXanaFN86fDxdWY97RunsZZU5XGeGgUnfZtLR+Fgvq+T0UiShAdG9ceEnAQMvCOq5wW8COt1/eM/LMXh0+vv+8edvEWPNnPlVqkxUFKjhCRJyIiP9OmCmBgTjunDk91uOGtEWn/Lrxw/EMmOcDxRnKHpdpTS4whUc/STFbsWmKJSQ+pQ0pHSdRI9Vmq803v3vPZQvirraVo1CT9evoa+PYxkueHu7DvwSdU4pMZGqLJ9NbgmAkaa+NFtthLjhKUfjT8Ty6bmYOmUwYarjLiGkxgTLi4QL9hRmCzD3xmFb3yjJ8/M2vbcO6yX4qYA17v0GoFrHmOk0U9Gu9hakRH3sSRJ2Lt8Ai5fdSI6PFSzbQS0vAWrM66Y1FiUpwNfySj4UFsIVt07BB2dV5HsMM43c0MyZ05jDa6jnwx0kTNOJKS3JIe2FRpOvucdk5ogorRTXYXB2quNijmNOFboU0OkROCT76m3LiNiu0IQ4UlfG5xWQBxzjH4iMhCLH5xMaizK45BuA530idTg2j/AWB2FjROLCEzztaNmpcaKmNRYlach3RbP0EVhoUYc10PaSB2FLX/lIGGi7IF1QPZ99JM5T2zsUxNEWKkhvWl9xLlON2CkSo0rY0alLbNeEM3gnpwE/NPIfsjr59v8UrdyPR4fGp2Krf/9DUpz7lAnOANgUhNEjDb7plXw9C2O67yQRqrUuH7UeHyQmmwhEv7tZyP8Xt51ZGxMeCh2Ly31OFrWrMctm58sylObflgv45z0rYRfSruXlRDYrMc9ca0IGKl51TiRELm79dhUe76fpyZkq7o+pVipCQIP35mK/7t4JeBp9ckzs06+p6X/qh6H1vZOZGp8zLnewsNIzatGnBiOCABmFfbHgdM/YEhyjOrrdkSEonrSINXXqwSTGotyPafWzBwuLpAgwErN7bISopGVoP3sw67NT0ZKalwZMypt8TNhXA8VpiIrIRo5PcwO7s//0Ah9qdj8RESm5XSy+YlICUmSUJDeF5F27zUNJRXoB0b1BwAsukds0xPASo1l8aRKwcB19BM7ChOJsf7B4XiyJNMQXRyY1BAFyAgl12DlNOiu5+R7ZHZKTmu2EEmX5mZfsPmJiEzLaYKEMrjTGyJ9MamxKAN1L7A8419WrcuoVTJ+/ojEYFJjUcFe/tYT97Q415yiIyBPDJprkgJm/RcyqSHy01MTspEYY8cvSrNEhxK0jNr8xEoNmd247Ou3ToiPsguORBl2FCbyU/WkQVgyMZsTrQlk1KSGyOye++lQ5CZHY2pesuhQFGFSY1FJjnDRIQQFJjRiGTWpYfMvmV2UvReeuDtTdBiKMamxqJ+NTsWx8+24OztedChEmjHskO4gz2l46xAShUmNRYXaQvD8jGGiwyDSlNOoWY0LVvOI9MOOwkRkWsZtfrrJqMPOtRSEb5kMgkkNEZmWUYd0szpDJAaTGiIyLTNUaohIP0xqiMi0zNC0w6oNkX6Y1BCRaRm1nzDzGCIxmNQQkWlFhxtzAKdrdcYM1SQiqzDmGYGIyAeVJQNx5NwF3J+fIjoUcsFEjkRhUkNEphUTHor/fPwu0WF4xT41RPph8xMRERFZgmmSmvvvvx9paWkIDw9HcnIy5s6di+bmZtFhERERkUGYJqkpLS3F73//exw7dgzvvfceTpw4gQcffFB0WERERGQQpulTs2TJkq6f09PTsWzZMsyYMQNXrlxBaGiowMiIiMgVuwmTKKap1Lj6/vvv8bvf/Q5jxoxhQkNEREQATJbULF26FJGRkYiLi8OZM2fwwQcfeH19Z2cn2tra3B5ERKQtjugmUYQmNWvWrIEkSV4fBw4c6Hr9M888g0OHDmHnzp2w2Wx47LHHvM6HUFNTA4fD0fVITU3V420RERGRAEL71CxcuBCzZ8/2+poBAwZ0/RwfH4/4+HgMGjQIubm5SE1Nxd69e1FUVORx2eXLl6O6urrr97a2NiY2REQaS4vtLToEClJCk5obSYo/blRoOjs7u32N3W6H3W73a/1EROSfeWMG4HzbJZQMvkN0KBRkTDH6qbGxEY2NjSguLkbfvn1x8uRJrFq1CgMHDuy2SkNERGKE9QrBv947RHQYFIRM0VE4IiIC27dvx4QJEzB48GBUVFRg2LBhqK+vZyWGiIiIAJikUpOXl4ddu3aJDoOISDHe+YlIP6ao1BARmRVHNxPph0kNERERWQKTGiIiIrIEJjVERBpinxoi/TCpISIiIktgUkNEpCF2FCbSD5MaIiIisgQmNUREGmKfGiL9MKkhItJQ38gw0SEQBQ1TzChMRGQ2r88egVPfdWBUWh/RoRAFDSY1REQa+OmIfqJDIAo6bH4iIiIiS2BSQ0RERJbApIaIiIgsgUkNERERWQKTGiIiIrIEJjVERERkCUxqiIiIyBKY1BAREZElMKkhIiIiS2BSQ0RERJbApIaIiIgsgUkNERERWQKTGiIiIrKEoLpLtyzLAIC2tjbBkRAREZGvbly3b1zHuxNUSU17ezsAIDU1VXAkREREpFR7ezscDke3f5fkntIeC3E6nWhubkZ0dDQkSVJtvW1tbUhNTcXZs2cRExOj2nrpdtzX+uB+1gf3sz64n/Wh5X6WZRnt7e1ISUlBSEj3PWeCqlITEhKC/v37a7b+mJgYfmB0wn2tD+5nfXA/64P7WR9a7WdvFZob2FGYiIiILIFJDREREVkCkxoV2O12rF69Gna7XXQolsd9rQ/uZ31wP+uD+1kfRtjPQdVRmIiIiKyLlRoiIiKyBCY1REREZAlMaoiIiMgSmNQQERGRJTCpUcGbb76JjIwMhIeHo6CgAH/6059Eh2QpNTU1GD16NKKjo5GQkIAZM2bg2LFjosOyvJqaGkiShKqqKtGhWM65c+cwZ84cxMXFoXfv3hgxYgQOHjwoOizLuXr1KlauXImMjAxEREQgMzMTa9euhdPpFB2aqTU0NOC+++5DSkoKJEnC+++/7/Z3WZaxZs0apKSkICIiAiUlJTh69KgusTGpCdC2bdtQVVWFFStW4NChQ7j77rsxdepUnDlzRnRollFfX48FCxZg7969qKurw9WrV1FWVoaOjg7RoVnW/v37UVtbi+HDh4sOxXJ++OEHjB07FqGhofj444/x5Zdf4rXXXkOfPn1Eh2Y5L7/8MrZs2YJNmzbhq6++wvr16/HKK69g48aNokMztY6ODuTn52PTpk0e/75+/Xps2LABmzZtwv79+5GUlIRJkyZ13X9RUzIF5M4775QrKyvdnsvJyZGXLVsmKCLra21tlQHI9fX1okOxpPb2djk7O1uuq6uTx48fLy9evFh0SJaydOlSubi4WHQYQWH69OlyRUWF23MzZ86U58yZIygi6wEg79ixo+t3p9MpJyUlyS+99FLXc5cuXZIdDoe8ZcsWzeNhpSYAly9fxsGDB1FWVub2fFlZGfbs2SMoKuu7cOECACA2NlZwJNa0YMECTJ8+HRMnThQdiiV9+OGHKCwsxKxZs5CQkICRI0fiV7/6leiwLKm4uBiffvopvv76awDAn//8Z+zevRvTpk0THJl1nTp1CufPn3e7LtrtdowfP16X62JQ3dBSbd999x2uXbuGxMREt+cTExNx/vx5QVFZmyzLqK6uRnFxMYYNGyY6HMt555138MUXX2D//v2iQ7GskydPYvPmzaiursazzz6LxsZGPPXUU7Db7XjsscdEh2cpS5cuxYULF5CTkwObzYZr167hxRdfxMMPPyw6NMu6ce3zdF08ffq05ttnUqMCSZLcfpdl+bbnSB0LFy7E4cOHsXv3btGhWM7Zs2exePFi7Ny5E+Hh4aLDsSyn04nCwkKsW7cOADBy5EgcPXoUmzdvZlKjsm3btuG3v/0t3n77bQwdOhRNTU2oqqpCSkoK5s2bJzo8SxN1XWRSE4D4+HjYbLbbqjKtra23ZakUuEWLFuHDDz9EQ0MD+vfvLzocyzl48CBaW1tRUFDQ9dy1a9fQ0NCATZs2obOzEzabTWCE1pCcnIwhQ4a4PZebm4v33ntPUETW9cwzz2DZsmWYPXs2ACAvLw+nT59GTU0NkxqNJCUlAbhesUlOTu56Xq/rIvvUBCAsLAwFBQWoq6tze76urg5jxowRFJX1yLKMhQsXYvv27di1axcyMjJEh2RJEyZMwJEjR9DU1NT1KCwsxKOPPoqmpiYmNCoZO3bsbVMSfP3110hPTxcUkXVdvHgRISHulzmbzcYh3RrKyMhAUlKS23Xx8uXLqK+v1+W6yEpNgKqrqzF37lwUFhaiqKgItbW1OHPmDCorK0WHZhkLFizA22+/jQ8++ADR0dFdlTGHw4GIiAjB0VlHdHT0bf2UIiMjERcXx/5LKlqyZAnGjBmDdevW4aGHHkJjYyNqa2tRW1srOjTLue+++/Diiy8iLS0NQ4cOxaFDh7BhwwZUVFSIDs3U/v73v+P48eNdv586dQpNTU2IjY1FWloaqqqqsG7dOmRnZyM7Oxvr1q1D79698cgjj2gfnObjq4LAG2+8Iaenp8thYWHyqFGjONRYZQA8PrZu3So6NMvjkG5tfPTRR/KwYcNku90u5+TkyLW1taJDsqS2tjZ58eLFclpamhweHi5nZmbKK1askDs7O0WHZmqfffaZx3PyvHnzZFm+Pqx79erVclJSkmy32+Vx48bJR44c0SU2SZZlWfvUiYiIiEhb7FNDRERElsCkhoiIiCyBSQ0RERFZApMaIiIisgQmNURERGQJTGqIiIjIEpjUEBERkSUwqSEiIiJLYFJDRERElsCkhoh0U1JSgqqqKtFhdKukpASSJEGSJDQ1Nfm0THl5edcy77//vqbxEZF3TGqISBU3LuzdPcrLy7F9+3Y8//zzQuKrqqrCjBkzenzd/Pnz0dLS4vNNPF9//XW0tLQEGB0RqYF36SYiVbhe2Ldt24ZVq1bh2LFjXc9FRETA4XCICA0AsH//fkyfPr3H1/Xu3RtJSUk+r9fhcAh9X0R0Eys1RKSKpKSkrofD4YAkSbc9d2vzU0lJCRYtWoSqqir07dsXiYmJqK2tRUdHB37+858jOjoaAwcOxMcff9y1jCzLWL9+PTIzMxEREYH8/Hy8++673cZ15coVhIWFYc+ePVixYgUkScJdd92l6L29++67yMvLQ0REBOLi4jBx4kR0dHQo3kdEpC0mNUQk1G9+8xvEx8ejsbERixYtwpNPPolZs2ZhzJgx+OKLLzB58mTMnTsXFy9eBACsXLkSW7duxebNm3H06FEsWbIEc+bMQX19vcf122w27N69GwDQ1NSElpYWfPLJJz7H19LSgocffhgVFRX46quv8Pnnn2PmzJmQZTnwN09EqmLzExEJlZ+fj5UrVwIAli9fjpdeegnx8fGYP38+AGDVqlXYvHkzDh8+jLy8PGzYsAG7du1CUVERACAzMxO7d+/GW2+9hfHjx9+2/pCQEDQ3NyMuLg75+fmK42tpacHVq1cxc+ZMpKenAwDy8vL8fbtEpCEmNUQk1PDhw7t+ttlsiIuLc0saEhMTAQCtra348ssvcenSJUyaNMltHZcvX8bIkSO73cahQ4f8SmiA60nXhAkTkJeXh8mTJ6OsrAwPPvgg+vbt69f6iEg7TGqISKjQ0FC33yVJcntOkiQAgNPphNPpBAD88Y9/RL9+/dyWs9vt3W6jqanJ76TGZrOhrq4Oe/bswc6dO7Fx40asWLEC+/btQ0ZGhl/rJCJtsE8NEZnGkCFDYLfbcebMGWRlZbk9UlNTu13uyJEjbhUhpSRJwtixY/Hcc8/h0KFDCAsLw44dO/xeHxFpg5UaIjKN6OhoPP3001iyZAmcTieKi4vR1taGPXv2ICoqCvPmzfO4nNPpxOHDh9Hc3IzIyEhFQ7D37duHTz/9FGVlZUhISMC+ffvw7bffIjc3V623RUQqYaWGiEzl+eefx6pVq1BTU4Pc3FxMnjwZH330kdemoBdeeAHbtm1Dv379sHbtWkXbi4mJQUNDA6ZNm4ZBgwZh5cqVeO211zB16tRA3woRqUySOS6RiAjA9XlzRowYgV/+8peKl5UkCTt27PBp1mIi0gYrNURELt58801ERUXhyJEjPr2+srISUVFRGkdFRL5gpYaI6B/OnTuHH3/8EQCQlpaGsLCwHpdpbW1FW1sbACA5ORmRkZGaxkhE3WNSQ0RERJbA5iciIiKyBCY1REREZAlMaoiIiMgSmNQQERGRJTCpISIiIktgUkNERESWwKSGiIiILIFJDREREVkCkxoiIiKyBCY1REREZAn/D1newfpyg7MMAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Create the time vector for the simulation\n", + "Tf = 10\n", + "timepts = np.linspace(0, Tf, 1000)\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) # smaller disturbances and noise then design\n", + "W = ct.white_noise(timepts, Qw)\n", + "plt.plot(timepts, V[0], label=\"V[0]\")\n", + "plt.plot(timepts, W[0], label=\"W[0]\")\n", + "plt.xlabel(\"Time $t$ [s]\")\n", + "plt.ylabel(\"Disturbance, sensor noise\")\n", + "plt.legend();" + ] + }, + { + "cell_type": "markdown", + "id": "4d944709", + "metadata": {}, + "source": [ + "### LQR with EKF\n", + "\n", + "We can now feed the desired trajectory plus the noise and disturbances into the system and see how well the controller with a state estimator does in holding the system at an equilibrium point:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "ad7a9750", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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eHt7w8nJyQgRERERmT8m3URERB3IrVu34O3tjffee0+/7dixY1AoFNi9e3ezzjV9+nRMmDAB7733Hry8vODs7IwlS5agqqoKr7zyClxdXeHr64s1a9YY+2MQERF1GHKxAyAiIiLj8fDwwJo1azBhwgRERUWhZ8+eePrppzFnzhxERUU1+3x79uyBr68v9u/fj0OHDmHWrFk4cuQI7rvvPhw7dgybNm3C7NmzMXr0aPj5+ZngExEREZk3VrqJiIg6mIceegjPPvssJk+ejNmzZ8Pa2hrvv/9+i87l6uqKFStWoEePHpg5cyZ69OiB0tJSvPHGG+jWrRsWLVoEhUKBQ4cOGflTEBERdQxMuomIiDqgjz/+GFVVVfjvf/+L7777DtbW1i06T+/evSGV3v664OXlhT59+uify2QyuLm5ITs7u9UxExERdURMuomIiDqgq1evIiMjA1qtFtevX2/xeaysrAyeSySSerdptdoWvwcREVFHxjndREREHUxFRQUmT56MiRMnomfPnpg1axbOnDkDLy8vsUMjIiKyOKx0ExERdTCLFy9GYWEhVqxYgVdffRUhISGYNWuW2GERERFZJCbdREREHcjevXuxfPlyfPvtt3B0dIRUKsW3336LgwcPIjY2VuzwiIiILA6HlxMREXUgw4cPR2VlpcE2f39/FBQUNPtc69atq7Nt7969dbZdu3at2ecmIiKyFEy6iYiICAAwZMgQ9O/fH4cPH27Veezt7VFVVdXijulEREQdCZNuIiIiC+fr64vk5GQAgFKpbPX5kpKSAOiWEyMiIrJ0EkEQBLGDICIiIiIiIuqI2EiNiIiIiIiIyESYdBMRERERERGZCJNuIiIiIiIiIhNh0k1ERERERERkIky6iYiIiIiIiEyESTcRERERERGRiTDpJiIiIiIiIjIRJt1EREREREREJsKkm4iIiIiIiMhEmHQTERERERERmQiTbiIiIiIiIiITYdJNREREREREZCJMuomIiIiIiIhMRC52AG1Nq9UiIyMDDg4OkEgkYodDVC9BEFBUVAQfHx9Ipbw31ly8zqm94zXeOrzGyRzwOm85XuNkDppzjVtc0p2RkQE/Pz+xwyBqkrS0NPj6+oodhtnhdU7mgtd4y/AaJ3PC67z5eI2TOWnKNW5xSbeDgwMA3f8cR0dHkaMhqp9KpYKfn5/+55Wah9c5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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Put together the input for the system\n", + "U = [xe, ue, V, W]\n", + "X0 = [x0, xe, P0.reshape(-1)]\n", + "\n", + "# Initial condition response\n", + "resp = ct.input_output_response(clsys, timepts, U, X0)\n", + "\n", + "# Plot the response\n", + "plot_results(timepts, resp.states, resp.outputs[pvtol.nstates:])" + ] + }, + { + "cell_type": "markdown", + "id": "86f10064", + "metadata": {}, + "source": [ + "To see how well the estimtator did, we can compare the estimated position with the actual position:" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "c5f24119", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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5uWXX97cTWp1/O53vzOHDRvW3M1o9YwcOdI899xzPduOP/5488wzz2ymFrU+AHPatGnO/6lUyqyoqDBvu+02Z1tNTY1ZVFRkPvTQQzukTWI5ambq6ur4+OOPGTFihGf7iBEjmDlzZjO1qvWzfv16AEpKSpq5Ja2Tiy++mJEjR3LYYYc1d1NaLS+++CKDBw/mpJNOory8nD333JNHHnmkuZvV6hg2bBhvvvkmX3zxBQCffPIJ7733HkcffXQzt6z18s0337Bq1SrPvBiNRjnooIN22LwohWebme+//55kMkn79u0929u3b8+qVauaqVWtG9M0ueKKKxg2bBj9+/dv7ua0Op566in++9//MmfOnOZuSqvm66+/ZvLkyVxxxRVcc801fPjhh1x22WVEo1F++ctfNnfzWg2/+93vWL9+Pb179yYYDJJMJrnllls47bTTmrtprRZ77ss0L3733Xc7pA0ijloIhmF4/jdNM22bsG245JJLmD9/Pu+9915zN6XVsXTpUi6//HJef/11YrFYczenVZNKpRg8eDC33norAHvuuScLFy5k8uTJIo62IVOnTuWJJ57gH//4B/369WPevHmMGzeOjh07ctZZZzV381o1zTkvijhqZsrKyggGg2lWojVr1qSpZmHrufTSS3nxxRd599136dy5c3M3p9Xx8ccfs2bNGgYNGuRsSyaTvPvuu9x///3U1tYSDAabsYWthw4dOtC3b1/Ptj59+vDss882U4taJ7/5zW+46qqrOPXUUwEYMGAA3333HZMmTRJxtJ2oqKgAlAWpQ4cOzvYdOS9KzFEzE4lEGDRoENOnT/dsnz59OkOHDm2mVrU+TNPkkksu4bnnnuOtt96isrKyuZvUKjn00ENZsGAB8+bNc34GDx7MGWecwbx580QYbUP233//tHQUX3zxBd26dWumFrVOqqqqCAS8U2UwGJSl/NuRyspKKioqPPNiXV0dM2bM2GHzoliOWgBXXHEFY8aMYfDgwey3335MmTKFJUuWcOGFFzZ301oNF198Mf/4xz944YUXKCwsdCx1RUVFxOPxZm5d66GwsDAtjis/P5/S0lKJ79rGjB8/nqFDh3Lrrbdy8skn8+GHHzJlyhSmTJnS3E1rVYwaNYpbbrmFrl270q9fP+bOncvdd9/Nueee29xN26nZtGkTX331lfP/N998w7x58ygpKaFr166MGzeOW2+9lV133ZVdd92VW2+9lby8PE4//fQd08AdsiZOaJAHHnjA7NatmxmJRMy99tpLlphvY4CMP48//nhzN63VI0v5tx8vvfSS2b9/fzMajZq9e/c2p0yZ0txNanVs2LDBvPzyy82uXbuasVjM7NGjhzlhwgSztra2uZu2U/P2229nHJPPOuss0zTVcv4bbrjBrKioMKPRqHnggQeaCxYs2GHtM0zTNHeMDBMEQRAEQWj5SMyRIAiCIAiChogjQRAEQRAEDRFHgiAIgiAIGiKOBEEQBEEQNEQcCYIgCIIgaIg4EgRBEARB0BBxJAiCIAiCoCHiSBAEQRAEQUPEkSAIgiAIgoaII0EQdiqGDx/OuHHjmrsZWRk+fDiGYWAYBvPmzWvUMWeffbZzzPPPP79d2ycIQsOIOBIEocVgC4RsP2effTbPPfccEydObJb2jRs3jtGjRze439ixY1m5cmWji+3+6U9/YuXKlVvZOkEQthWh5m6AIAiCjS4Qpk6dyvXXX8/ixYudbfF4nKKiouZoGgBz5sxh5MiRDe6Xl5dHRUVFo89bVFTUrNclCIIXsRwJgtBiqKiocH6KioowDCNtm9+tNnz4cC699FLGjRtHcXEx7du3Z8qUKWzevJlzzjmHwsJCdtllF1555RXnGNM0ueOOO+jRowfxeJyBAwfyzDPPZG1XfX09kUiEmTNnMmHCBAzDYJ999mnStT3zzDMMGDCAeDxOaWkphx12GJs3b25yHwmCsP0RcSQIwk7PX//6V8rKyvjwww+59NJLueiiizjppJMYOnQo//3vfzniiCMYM2YMVVVVAFx77bU8/vjjTJ48mYULFzJ+/HjOPPNMZsyYkfH8wWCQ9957D4B58+axcuVKXnvttUa3b+XKlZx22mmce+65LFq0iHfeeYfjjz8e0zS3/uIFQdjmiFtNEISdnoEDB3LttdcCcPXVV3PbbbdRVlbG2LFjAbj++uuZPHky8+fPZ8CAAdx999289dZb7LfffgD06NGD9957j4cffpiDDjoo7fyBQIAVK1ZQWlrKwIEDm9y+lStXkkgkOP744+nWrRsAAwYM2NLLFQRhOyPiSBCEnZ7dd9/d+TsYDFJaWuoRH+3btwdgzZo1fPbZZ9TU1HD44Yd7zlFXV8eee+6Z9T3mzp27RcIIlHg79NBDGTBgAEcccQQjRozgxBNPpLi4eIvOJwjC9kXEkSAIOz3hcNjzv2EYnm2GYQCQSqVIpVIAvPzyy3Tq1MlzXDQazfoe8+bN22JxFAwGmT59OjNnzuT111/nvvvuY8KECcyePZvKysotOqcgCNsPiTkSBOFnRd++fYlGoyxZsoSePXt6frp06ZL1uAULFngsVE3FMAz2339/brrpJubOnUskEmHatGlbfD5BELYfYjkSBOFnRWFhIVdeeSXjx48nlUoxbNgwNmzYwMyZMykoKOCss87KeFwqlWL+/PmsWLGC/Pz8Ji29nz17Nm+++SYjRoygvLyc2bNns3btWvr06bOtLksQhG2IWI4EQfjZMXHiRK6//nomTZpEnz59OOKII3jppZdyurh+//vfM3XqVDp16sTNN9/cpPdr06YN7777LkcffTS9evXi2muv5a677uKoo47a2ksRBGE7YJiyllQQBGGbMXz4cPbYYw/uueeeJh9rGAbTpk1rVBZuQRC2H2I5EgRB2MY8+OCDFBQUsGDBgkbtf+GFF1JQULCdWyUIQmMRy5EgCMI2ZPny5VRXVwPQtWtXIpFIg8esWbOGDRs2ANChQwfy8/O3axsFQciNiCNBEARBEAQNcasJgiAIgiBoiDgSBEEQBEHQEHEkCIIgCIKgIeJIEARBEARBQ8SRIAiCIAiChogjQRAEQRAEDRFHgiAIgiAIGiKOBEEQBEEQNEQcCYIgCIIgaIg4EgRBEARB0Pj/40Sof14AOoUAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Response of the first two states, including internal estimates\n", + "h1, = plt.plot(resp.time, resp.outputs[0], 'b-', linewidth=0.75)\n", + "h2, = plt.plot(resp.time, resp.outputs[1], 'r-', linewidth=0.75)\n", + "\n", + "# Add on the internal estimator states\n", + "xh0 = clsys.find_output('xh0')\n", + "xh1 = clsys.find_output('xh1')\n", + "h3, = plt.plot(resp.time, resp.outputs[xh0], 'k--')\n", + "h4, = plt.plot(resp.time, resp.outputs[xh1], 'k--')\n", + "\n", + "plt.plot([0, 10], [0, 0], 'k--', linewidth=0.5)\n", + "plt.ylabel(r\"Position $x$, $y$ [m]\")\n", + "plt.xlabel(r\"Time $t$ [s]\")\n", + "plt.legend(\n", + " [h1, h2, h3, h4], ['$x$', '$y$', r'$\\hat{x}$', r'$\\hat{y}$'], \n", + " loc='upper right', frameon=False, ncol=2);" + ] + }, + { + "cell_type": "markdown", + "id": "7139202f", + "metadata": {}, + "source": [ + "Note the rapid convergence of the estimate to the proper value, since we are directly measuring the position variables. If we look at the full set of states, we see that other variables have different convergence properties:" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "78a61e74", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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o92p5+FKUSWPnS1Xe8oqNkU3ji2C0BTRuZ8rSz12R8rVqutzbdlyqbDLTIG0ndpyO+k4EUiys7N56qmnSEtLC7Qpjcazzz7LyJEjCQkJITIysvEuXK4uanFhWQzqyZzisuLE0VKcWCijWQi7ffv24XK5eOedd9izZw9///vfWbBggacNVFW8+OKLvPLKK7z55pts2bKFuLg4rrjiCvLz8/1vdKmwo5jswooC1JWnCTt7kAg7wbdkZ2czffp0LBYLFouF6dOnk5OTU+NxycnJTJkyBYvFQnh4OMOHDyc1NdW/xnqEnfvB50y5kiaDbytbDta835zeXbat2xX+tU2olvvuu48tW7bwxz/+MdCmNBo2m42pU6c2/mc2BuNy36qt5YRdalY+MeQAoERIEp5QRrMQduPHj+ejjz5i7NixdOnShSlTpvDggw+yePHiKo9RVZVXX32Vxx57jGuvvZY+ffrw8ccfU1RUxBdffOF/o91tYMKUYrLP8djpCjVhp4ZJinpTo7l7Im688UZ27tzJ8uXLWb58OTt37mT69OnVHnPo0CEuuugievTowerVq/n11195/PHHCQoK8q+x53rsSnK0f8c+UzH2NPicgIXe13rGl9D4fPXVVxQUFPDNN98QGRnJ559/HmiTGoWnnnqK+++/n759+9b6GKvVSl5eXoVXnVEUShQtntReVHZ8VvpxDIoLJzoIi637eYUWS7ONscvNzSUqKqrK948cOUJ6ejpjx471bDObzYwaNYr169dz9913ez3OarVitVo96/UaiOCJiwiniJxzYuxMJVkA6MOlhl1T47777iM7O5sdO3awdOnSQJtTJ5KTk1m+fDkbN25k2LBhALz33nuMGDGClJQUunf3Pn352GOPceWVV/Liiy96tnXp0sX/BnuEnTuezuoea2HnjIvY3hDStqwbRceh/rdNqJIpU6YwZcoUABYuXBhYY5o48+fP56mnnmrweaz6YEIchdiKy+5HeaePAVBobEuEl64uQuulWXjszuXQoUO88cYbzJw5s8p90tPTAYiNrfgkExsb63nPG/Pnz/dMY1ksFjp2rGfsgrnMY3f2HGEXZsvUdmkjtYeaEs3dE7FhwwYsFotH1AEMHz4ci8XC+vXrvR7jcrlYtmwZ559/PuPGjSMmJoZhw4bVKGrr7YlQyt2ASoWd0+3RtrpDJNwPRR7M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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, axs = plt.subplots(2, 3)\n", + "var = ['x', 'y', r'\\theta', r'\\dot x', r'\\dot y', r'\\dot \\theta']\n", + "for i in [0, 1]:\n", + " for j in [0, 1, 2]:\n", + " k = i * 3 + j\n", + " axs[i, j].plot(resp.time, resp.outputs[k], label=f'${var[k]}$')\n", + " axs[i, j].plot(resp.time, resp.outputs[xh0+k], label=f'$\\\\hat {var[k]}$')\n", + " axs[i, j].legend()\n", + " if i == 1:\n", + " axs[i, j].set_xlabel(\"Time $t$ [s]\")\n", + " if j == 0:\n", + " axs[i, j].set_ylabel(\"State\")\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "id": "2039578e", + "metadata": {}, + "source": [ + "Note the (slight) lag in tracking changes in the $\\dot x$ and $\\dot y$ states (varies from simulation to simulation, depending on the specific noise signal)." + ] + }, + { + "cell_type": "markdown", + "id": "0c0d5c99", + "metadata": {}, + "source": [ + "### Full state feedback\n", + "\n", + "To see how the inclusion of the estimator affects the system performance, we compare it with the case where we are able to directly measure the state of the system." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "3b6a1f1c", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/murray/Library/CloudStorage/Dropbox/macosx/src/python-control/murrayrm/control/statefbk.py:788: UserWarning: cannot verify system output is system state\n", + " warnings.warn(\"cannot verify system output is system state\")\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkcAAAG2CAYAAAB1ZSLWAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAYAlJREFUeJzt3XdcVfX/B/DXZSPIVUQRFfdCcSA4wF2K4B6lluG2NM3UlmZW2qDpVxuuUsscUSnmLw3E3KHmIjX3BBUkNEEhQeD8/nh3ufcKKOty1+v5eNzHvfecz7n3cyG8rz5TpSiKAiIiIiICANgYuwJEREREpoThiIiIiEgHwxERERGRDoYjIiIiIh0MR0REREQ6GI6IiIiIdDAcEREREelgOCIiIiLSwXBEREREpIPhiIiIiEiHWYej3bt3o1+/fqhRowZUKhU2btz40PIbNmxAz549UbVqVbi5uSEwMBDR0dHlU1kiIiIyC3bGrkBppKeno1WrVhgzZgyGDBnyyPK7d+9Gz5498f7776NSpUpYuXIl+vXrhwMHDsDPz69I75mbm4vr16+jYsWKUKlUpf0IREREVA4URcGdO3dQo0YN2Ng8vG1IZSkbz6pUKkRGRmLgwIHFuq558+YYNmwY3nzzzSKVv3r1Kry9vUtQQyIiIjK2hIQE1KpV66FlzLrlqLRyc3Nx584duLu7F1omMzMTmZmZec81WTIhIQFubm4GryMRERGVXlpaGry9vVGxYsVHlrXqcPTpp58iPT0dQ4cOLbRMeHg45s6dm++4m5sbwxEREZGZKcqQGLMekF0a69atw9tvv42IiAhUq1at0HKzZs1Campq3i0hIaEca0lERETlzSpbjiIiIjBu3Dj8+OOP6NGjx0PLOjo6wtHRsZxqRkRERMZmdS1H69atw+jRo7F27Vr06dPH2NUhIiIiE2PWLUd3797F+fPn855funQJcXFxcHd3R+3atTFr1ixcu3YNq1atAiDBaOTIkVi4cCE6dOiApKQkAICzszPUarVRPgMRERGZFrNuOTp06BD8/Pzy1iiaMWMG/Pz88qblJyYmIj4+Pq/80qVLkZ2djcmTJ8PLyyvv9uKLLxql/kRERGR6LGado/KSlpYGtVqN1NRUzlYjIiIyE8X5/jbrliMiIiKissZwRERERKSD4YiIiIhIB8MRERERkQ6GIzJLKpUKGzduLNVrjB49utgbFRMRkeVjOCKMHj0aKpUq3y0kJKTIr9GtWzdMmzbNcJU0gp07d0KlUuH27dt5x65fvw5fX1906tQJt2/fxuXLlwv82T3zzDPGqzgREZWKWS8CSWUnJCQEK1eu1DvGbVP0XbhwAT179kTTpk3x008/oUKFCnnBadu2bWjevHleWWdnZyPVkoiISostRwamKEB6evnfirt6laOjI6pXr653q1y5MgBpQXFwcMCePXvyyn/66afw8PBAYmIiRo8ejV27dmHhwoV5LSeXL18GAJw8eRK9e/eGq6srPD09ERYWhpSUlLzX6datG6ZOnYpXX30V7u7uqF69Ot5++229up07dw5dunSBk5MTmjVrhpiYmHz1v3btGoYNG4bKlSujSpUqGDBgQF4dACAnJwczZsxApUqVUKVKFbz66qsozhJfx44dQ6dOndC+fXv8/PPPqFChgt75KlWq6P3suOI6EZH5YjgysIwMwNW1/G8ZGWX3GTRdZmFhYUhNTcWff/6J2bNn46uvvoKXlxcWLlyIwMBATJgwAYmJiUhMTIS3tzcSExPRtWtXtG7dGocOHUJUVBRu3LiBoUOH6r3+t99+CxcXFxw4cAAfffQR5s2blxeAcnNzMXjwYNja2mL//v1YsmQJXnvttQd+xhno3r07XF1dsXv3buzduxeurq4ICQlBVlYWAAlzK1aswPLly7F3717cunULkZGRRfr8sbGx6Nq1KwYPHow1a9bA3t6+DH6qRERkshQqltTUVAWAkpqaWqTyd+8qirTjlO/t7t2if6ZRo0Yptra2iouLi95t3rx5eWUyMzMVPz8/ZejQoUrz5s2V8ePH671G165dlRdffFHv2Jw5c5Tg4GC9YwkJCQoA5cyZM3nXderUSa9M27Ztlddee01RFEWJjo5WbG1tlYSEhLzzv/76qwJAiYyMVBRFUZYvX640adJEyc3N1auvs7OzEh0drSiKonh5eSkffPBB3vn79+8rtWrVUgYMGFDoz2XHjh0KAMXBwUEJCwsrsMylS5cUAIqzs7Pez+7IkSOFvi4REZW/4nx/c8yRgVWoANy9a5z3LY7u3btj8eLFesfc3d3zHjs4OGD16tVo2bIl6tSpgwULFjzyNQ8fPowdO3bA1dU137kLFy6gcePGAICWLVvqnfPy8kJycjIA4NSpU6hduzZq1aqV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QP/+QKNGMhvt1Clg9Wrg4EEp37ev7Klmx/+UiIjIMvAbjfKbPBm4dQt4801g61a5PcjFBZgzB3j5ZcDWtvzrSEREZCAMR1SwOXOAoUOBH3+UsUUJCUB2NtCgAdCxIzBqVNE2pSUiIjIzDEdUuCZNpGuNiIjIinBANhEREZEOsw1H//zzD8LCwqBWq6FWqxEWFobbxdj09LnnnoNKpcKCBQsMVkciIiIyP2Ybjp5++mnExcUhKioKUVFRiIuLQ1hYWJGu3bhxIw4cOIAaNWoYuJZERERkbsxyzNGpU6cQFRWF/fv3o3379gCAr776CoGBgThz5gyaPGRfsGvXrmHKlCmIjo5Gnz59yqvKREREZCbMsuVo3759UKvVecEIADp06AC1Wo3Y2NhCr8vNzUVYWBheeeUVNG/evEjvlZmZibS0NL0bERERWS6zDEdJSUmoVq1avuPVqlVDUlJSodd9+OGHsLOzw9SpU4v8XuHh4XnjmtRqNby9vUtUZyIiIjIPJhWO3n77bahUqofeDh06BABQqVT5rlcUpcDjAHD48GEsXLgQ33zzTaFlCjJr1iykpqbm3RISEkr24YiIiMgsmNSYoylTpmD48OEPLVO3bl0cO3YMN27cyHfu77//hqenZ4HX7dmzB8nJyahdu3besZycHLz00ktYsGABLl++XOB1jo6OcHR0LPqHICIiIrNmUuHIw8MDHh4ejywXGBiI1NRU/PHHH2j33y7yBw4cQGpqKoKCggq8JiwsDD169NA71qtXL4SFhWHMmDGlrzwRERFZBJMKR0Xl4+ODkJAQTJgwAUuXLgUAPPvss+jbt6/eTLWmTZsiPDwcgwYNQpUqVVClShW917G3t0f16tUfOruNiIiIrItJjTkqjjVr1qBFixYIDg5GcHAwWrZsie+++06vzJkzZ5CammqkGhIREZE5UimKohi7EuYkLS0NarUaqampcHNzM3Z1iIiIqAiK8/1tti1HRERERIbAcERERESkg+GIiIiISAfDEREREZEOhiMiIiIiHQxHRERERDoYjoiIiIh0MBwRERER6WA4IiIiItLBcERERESkg+GIiIiISAfDEREREZEOhiMiIiIiHQxHRERERDoYjoiIiIh0MBwRERER6WA4IiIiItLBcERERESkg+GIiIiISAfDEREREZEOhiMiIiIiHQxHRERERDoYjoiI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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Compute the full state feedback solution\n", + "lqr_ctrl, _ = ct.create_statefbk_iosystem(pvtol, K)\n", + "\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", + "\n", + "# Put together the input for the system (turn off sensor noise)\n", + "U = [xe, ue, V, W*0]\n", + "\n", + "# Run a simulation with full state feedback\n", + "lqr_resp = ct.input_output_response(lqr_clsys, timepts, U, x0)\n", + "\n", + "# Compare the results\n", + "plt.plot(resp.states[0], resp.states[1], 'b-', label=\"Extended KF\")\n", + "plt.plot(lqr_resp.states[0], lqr_resp.states[1], 'r-', label=\"Full state\")\n", + "\n", + "plt.xlabel('$x$ [m]')\n", + "plt.ylabel('$y$ [m]')\n", + "plt.axis('equal')\n", + "plt.legend(frameon=False);" + ] + }, + { + "cell_type": "markdown", + "id": "ffd7d082-2add-4440-99d9-2bab551b51a0", + "metadata": {}, + "source": [ + "The warning here can be ignored. It comes from the way that the `pvtol` dynamics are defined." + ] + } + ], + "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.13.1" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/doc/examples/kincar-flatsys.py b/doc/examples/kincar-flatsys.py new file mode 120000 index 000000000..287ee0065 --- /dev/null +++ b/doc/examples/kincar-flatsys.py @@ -0,0 +1 @@ +../../examples/kincar-flatsys.py \ No newline at end of file diff --git a/doc/kincar-flatsys.rst b/doc/examples/kincar-flatsys.rst similarity index 100% rename from doc/kincar-flatsys.rst rename to doc/examples/kincar-flatsys.rst diff --git a/doc/examples/kincar-fusion.ipynb b/doc/examples/kincar-fusion.ipynb new file mode 120000 index 000000000..5e6002937 --- /dev/null +++ b/doc/examples/kincar-fusion.ipynb @@ -0,0 +1 @@ +../../examples/kincar-fusion.ipynb \ No newline at end of file diff --git a/doc/examples/markov.py b/doc/examples/markov.py new file mode 120000 index 000000000..39015d0c9 --- /dev/null +++ b/doc/examples/markov.py @@ -0,0 +1 @@ +../../examples/markov.py \ No newline at end of file diff --git a/doc/examples/markov.rst b/doc/examples/markov.rst new file mode 100644 index 000000000..36e0fd8e5 --- /dev/null +++ b/doc/examples/markov.rst @@ -0,0 +1,15 @@ +Estimation of Makrov parameters +------------------------------- + +Code +.... +.. literalinclude:: markov.py + :language: python + :linenos: + + +Notes +..... + +1. The environment variable `PYCONTROL_TEST_EXAMPLES` is used for +testing to turn off plotting of the outputs.0 \ No newline at end of file diff --git a/doc/examples/mhe-pvtol.ipynb b/doc/examples/mhe-pvtol.ipynb new file mode 120000 index 000000000..fcbf4577b --- /dev/null +++ b/doc/examples/mhe-pvtol.ipynb @@ -0,0 +1 @@ +../../examples/mhe-pvtol.ipynb \ No newline at end of file diff --git a/doc/examples/mpc_aircraft.ipynb b/doc/examples/mpc_aircraft.ipynb new file mode 120000 index 000000000..f5664d841 --- /dev/null +++ b/doc/examples/mpc_aircraft.ipynb @@ -0,0 +1 @@ +../../examples/mpc_aircraft.ipynb \ No newline at end of file diff --git a/doc/examples/mrac_siso_lyapunov.py b/doc/examples/mrac_siso_lyapunov.py new file mode 120000 index 000000000..6dea0c1bb --- /dev/null +++ b/doc/examples/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/examples/mrac_siso_lyapunov.rst similarity index 100% rename from doc/mrac_siso_lyapunov.rst rename to doc/examples/mrac_siso_lyapunov.rst diff --git a/doc/examples/mrac_siso_mit.py b/doc/examples/mrac_siso_mit.py new file mode 120000 index 000000000..1ab820a72 --- /dev/null +++ b/doc/examples/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/examples/mrac_siso_mit.rst similarity index 100% rename from doc/mrac_siso_mit.rst rename to doc/examples/mrac_siso_mit.rst diff --git a/doc/examples/phase_plane_plots.py b/doc/examples/phase_plane_plots.py new file mode 120000 index 000000000..65ee1dacd --- /dev/null +++ b/doc/examples/phase_plane_plots.py @@ -0,0 +1 @@ +../../examples/phase_plane_plots.py \ No newline at end of file diff --git a/doc/phase_plane_plots.rst b/doc/examples/phase_plane_plots.rst similarity index 100% rename from doc/phase_plane_plots.rst rename to doc/examples/phase_plane_plots.rst diff --git a/doc/examples/pvtol-lqr-nested.ipynb b/doc/examples/pvtol-lqr-nested.ipynb new file mode 120000 index 000000000..879d6b73d --- /dev/null +++ b/doc/examples/pvtol-lqr-nested.ipynb @@ -0,0 +1 @@ +../../examples/pvtol-lqr-nested.ipynb \ No newline at end of file diff --git a/doc/examples/pvtol-lqr.py b/doc/examples/pvtol-lqr.py new file mode 120000 index 000000000..45af4dec9 --- /dev/null +++ b/doc/examples/pvtol-lqr.py @@ -0,0 +1 @@ +../../examples/pvtol-lqr.py \ No newline at end of file diff --git a/doc/pvtol-lqr.rst b/doc/examples/pvtol-lqr.rst similarity index 100% rename from doc/pvtol-lqr.rst rename to doc/examples/pvtol-lqr.rst diff --git a/doc/examples/pvtol-nested.py b/doc/examples/pvtol-nested.py new file mode 120000 index 000000000..8037992d3 --- /dev/null +++ b/doc/examples/pvtol-nested.py @@ -0,0 +1 @@ +../../examples/pvtol-nested.py \ No newline at end of file diff --git a/doc/pvtol-nested.rst b/doc/examples/pvtol-nested.rst similarity index 100% rename from doc/pvtol-nested.rst rename to doc/examples/pvtol-nested.rst diff --git a/doc/examples/pvtol-outputfbk.ipynb b/doc/examples/pvtol-outputfbk.ipynb new file mode 120000 index 000000000..22f1b3622 --- /dev/null +++ b/doc/examples/pvtol-outputfbk.ipynb @@ -0,0 +1 @@ +../../examples/pvtol-outputfbk.ipynb \ No newline at end of file diff --git a/doc/examples/pvtol.py b/doc/examples/pvtol.py new file mode 120000 index 000000000..c36bee0cf --- /dev/null +++ b/doc/examples/pvtol.py @@ -0,0 +1 @@ +../../examples/pvtol.py \ No newline at end of file diff --git a/doc/examples/python-control_tutorial.ipynb b/doc/examples/python-control_tutorial.ipynb new file mode 120000 index 000000000..98e828daf --- /dev/null +++ b/doc/examples/python-control_tutorial.ipynb @@ -0,0 +1 @@ +../../examples/python-control_tutorial.ipynb \ No newline at end of file diff --git a/doc/examples/robust_mimo.py b/doc/examples/robust_mimo.py new file mode 120000 index 000000000..2075f6463 --- /dev/null +++ b/doc/examples/robust_mimo.py @@ -0,0 +1 @@ +../../examples/robust_mimo.py \ No newline at end of file diff --git a/doc/robust_mimo.rst b/doc/examples/robust_mimo.rst similarity index 100% rename from doc/robust_mimo.rst rename to doc/examples/robust_mimo.rst diff --git a/doc/examples/robust_siso.py b/doc/examples/robust_siso.py new file mode 120000 index 000000000..05b0eeab8 --- /dev/null +++ b/doc/examples/robust_siso.py @@ -0,0 +1 @@ +../../examples/robust_siso.py \ No newline at end of file diff --git a/doc/robust_siso.rst b/doc/examples/robust_siso.rst similarity index 100% rename from doc/robust_siso.rst rename to doc/examples/robust_siso.rst diff --git a/doc/examples/rss-balred.py b/doc/examples/rss-balred.py new file mode 120000 index 000000000..7c5d94c71 --- /dev/null +++ b/doc/examples/rss-balred.py @@ -0,0 +1 @@ +../../examples/rss-balred.py \ No newline at end of file diff --git a/doc/rss-balred.rst b/doc/examples/rss-balred.rst similarity index 100% rename from doc/rss-balred.rst rename to doc/examples/rss-balred.rst diff --git a/doc/examples/scherer_etal_ex7_H2_h2syn.py b/doc/examples/scherer_etal_ex7_H2_h2syn.py new file mode 120000 index 000000000..8459ba382 --- /dev/null +++ b/doc/examples/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/examples/scherer_etal_ex7_H2_h2syn.rst similarity index 100% rename from doc/scherer_etal_ex7_H2_h2syn.rst rename to doc/examples/scherer_etal_ex7_H2_h2syn.rst diff --git a/doc/examples/scherer_etal_ex7_Hinf_hinfsyn.py b/doc/examples/scherer_etal_ex7_Hinf_hinfsyn.py new file mode 120000 index 000000000..b96545990 --- /dev/null +++ b/doc/examples/scherer_etal_ex7_Hinf_hinfsyn.py @@ -0,0 +1 @@ +../../examples/scherer_etal_ex7_Hinf_hinfsyn.py \ No newline at end of file diff --git a/doc/scherer_etal_ex7_Hinf_hinfsyn.rst b/doc/examples/scherer_etal_ex7_Hinf_hinfsyn.rst similarity index 100% rename from doc/scherer_etal_ex7_Hinf_hinfsyn.rst rename to doc/examples/scherer_etal_ex7_Hinf_hinfsyn.rst diff --git a/doc/examples/secord-matlab.py b/doc/examples/secord-matlab.py new file mode 120000 index 000000000..4ddd3f3f3 --- /dev/null +++ b/doc/examples/secord-matlab.py @@ -0,0 +1 @@ +../../examples/secord-matlab.py \ No newline at end of file diff --git a/doc/secord-matlab.rst b/doc/examples/secord-matlab.rst similarity index 100% rename from doc/secord-matlab.rst rename to doc/examples/secord-matlab.rst diff --git a/doc/examples/simulating_discrete_nonlinear.ipynb b/doc/examples/simulating_discrete_nonlinear.ipynb new file mode 120000 index 000000000..4bc577d4b --- /dev/null +++ b/doc/examples/simulating_discrete_nonlinear.ipynb @@ -0,0 +1 @@ +../../examples/simulating_discrete_nonlinear.ipynb \ No newline at end of file diff --git a/doc/examples/steering-gainsched.py b/doc/examples/steering-gainsched.py new file mode 120000 index 000000000..3eabc17c4 --- /dev/null +++ b/doc/examples/steering-gainsched.py @@ -0,0 +1 @@ +../../examples/steering-gainsched.py \ No newline at end of file diff --git a/doc/steering-gainsched.rst b/doc/examples/steering-gainsched.rst similarity index 100% rename from doc/steering-gainsched.rst rename to doc/examples/steering-gainsched.rst diff --git a/doc/examples/steering-optimal.py b/doc/examples/steering-optimal.py new file mode 120000 index 000000000..c351e70e7 --- /dev/null +++ b/doc/examples/steering-optimal.py @@ -0,0 +1 @@ +../../examples/steering-optimal.py \ No newline at end of file diff --git a/doc/steering-optimal.rst b/doc/examples/steering-optimal.rst similarity index 100% rename from doc/steering-optimal.rst rename to doc/examples/steering-optimal.rst diff --git a/doc/examples/steering.ipynb b/doc/examples/steering.ipynb new file mode 120000 index 000000000..051713e10 --- /dev/null +++ b/doc/examples/steering.ipynb @@ -0,0 +1 @@ +../../examples/steering.ipynb \ No newline at end of file diff --git a/doc/examples/stochresp.ipynb b/doc/examples/stochresp.ipynb new file mode 120000 index 000000000..56db315a2 --- /dev/null +++ b/doc/examples/stochresp.ipynb @@ -0,0 +1 @@ +../../examples/stochresp.ipynb \ No newline at end of file diff --git a/doc/examples/template.py b/doc/examples/template.py new file mode 100644 index 000000000..77da7e1a1 --- /dev/null +++ b/doc/examples/template.py @@ -0,0 +1,168 @@ +# template.py - template file for python-control module +# RMM, 3 Jan 2024 + +"""Template file for python-control module. + +This file provides a template that can be used when creating a new +file/module in python-control. The key elements of a module are included +in this template, following the suggestions in the Developer Guidelines. + +The first line of a module file should be the name of the file and a short +description. The next few lines can contain information about who created +the file (your name/initials and date). For this file I used the short +version (initials, date), but a longer version would be to do something of +the form:: + + # filename.py - short one line description + # + # Initial author: Full name + # Creation date: date the file was created + +After the header comments, the next item is the module docstring, which +should be a multi-line comment, like this one. The first line of the +comment is a one line summary phrase, starting with a capital letter and +ending in a period (often the same as the line at the very top). The rest +of the docstring is an extended summary (this one is a bit longer than +would be typical). + +After the docstring, you should have the following elements (in Python): + + * Package imports, using the `isort -m2` format (library, standard, custom) + * __all__ command, listing public objects in the file + * Class definitions (if any) + * Public function definitions + * Internal function definitions (starting with '_') + * Function aliases (short = long_name) + +The rest of this file contains examples of these elements. + +""" + +import warnings # Python packages + +import numpy as np # Standard external packages + +from . import config # Other modules/packages in python-control +from .lti import LTI # Public function or class from a module + +__all__ = ['SampleClass', 'sample_function'] + + +class SampleClass(): + """Sample class in the python-control package. + + This is an example of a class definition. The docstring follows + numpydoc format. The first line should be a summary (which will show + up in `autosummary` entries in the Sphinx documentation) and then an + extended summary describing what the class does. Then the usual + sections, per numpydoc. + + Additional guidelines on what should be listed in the various sections + can be found in the 'Class docstrings' section of the Developer + Guidelines. + + Parameters + ---------- + sys : InputOutputSystem + Short description of the parameter. + + Attributes + ---------- + data : array + Short description of an attribute. + + """ + def __init__(self, sys): + # No docstring required here + self.sys = sys # Parameter passed as argument + self.data = sys.name # Attribute created within class + + def sample_method(self, data): + """Sample method within a class. + + This is an example of a method within a class. Document using + numpydoc format. + + """ + return None + + +def sample_function(data, option=False, **kwargs): + """Sample function in the template module. + + This is an example of a public function within the template module. + This function will usually be placed in the `control` namespace by + updating `__init__.py` to import the function (often by importing the + entire module). + + Docstring should be in standard numpydoc format. The extended summary + (this text) should describe the basic operation of the function, with + technical details in the "Notes" section. + + Parameters + ---------- + data : array + Sample parameter for sample function, with short docstring. + option : bool, optional + Optional parameter, with default value `False`. + + Returns + ------- + out : float + Short description of the function output. + + Additional Parameters + --------------------- + inputs : int, str, or list of str + Parameters that are less commonly used, in this case a keyword + parameter. + + See Also + -------- + function1, function2 + + Notes + ----- + This section can contain a more detailed description of how the system + works. OK to include some limited mathematics, either via inline math + directions for a short formula (like this: ..math:`x = \alpha y`) or via a + displayed equation: + + ..math:: + + a = \int_0^t f(t) dt + + The trick in the docstring is to write something that looks good in + pure text format but is also processed by sphinx correctly. + + If you refer to parameters, such as the `data` argument to this + function, but them in single backticks (which will render them in code + style in Sphinx). Strings that should be interpreted as Python code + use double backticks: ``mag, phase, omega = response``. Python + built-in objects, like True, False, and None are written on their own. + + """ + inputs = kwargs['inputs'] + if option is True: + return data + else: + return None + +# +# Internal functions +# +# Functions that are not intended for public use can go anyplace, but I +# usually put them at the bottom of the file (out of the way). Their name +# should start with an underscore. Docstrings are optional, but if you +# don't include a docstring, make sure to include comments describing how +# the function works. +# + + +# Sample internal function to process data +def _internal_function(data): + return None + + +# Aliases (short versions of long function names) +sf = sample_function diff --git a/doc/examples/template.rst b/doc/examples/template.rst new file mode 100644 index 000000000..f9abacede --- /dev/null +++ b/doc/examples/template.rst @@ -0,0 +1,95 @@ +:orphan: remove this line and the next before use (supresses toctree warning) + +.. currentmodule:: control + +************** +Sample Chapter +************** + +This is an example of a top-level documentation file, which serves a +chapter in the User Guide or Reference Manual in the Sphinx +documentation. It is not that likely we will create a lot more files +of this sort, so it is probably the internal structure of the file +that is most useful. + +The file in which a chapter is contained will usual start by declaring +`currentmodule` to be `control`, which will allow text enclosed in +backticks to be searched for class and function names and appropriate +links inserted. The next element of the file is the chapter name, +with asterisks above and below. Chapters should have a capitalized +title and an introductory paragraph. If you need to add a reference +to a chapter, insert a sphinx reference (`.. _ch-sample:`) above +the chapter title. + +.. _sec-sample: + +Sample Section +============== + +A chapter is made of up of multiple sections. Sections use equal +signs below the section title. Following FBS2e, the section title +should be capitalized. If you need to insert a reference to the +section, put that above the section title (`.. _sec-sample:`), as +shown here. + + +Sample subsection +----------------- + +Subsections use dashes below the subsection title. The first word of +the title should be capitalized, but the rest of the subsection title +is lower case (unless it has a proper noun). I usually leave two +blank lines before the start up a subection and one blank line after +the section markers. + + +Mathematics +----------- + +Mathematics can be uncluded using the `math` directive. This can be +done inline using `:math:short formula` (e.g. :math:`a = b`) or as a +displayed equation, using the `.. math::` directive:: + +.. math:: + + a(t) = \int_0^t b(\tau) d\tau + + +Function summaries +------------------ + +Use the `autosummary` directive to include a table with a list of +function sinatures and summary descriptions:: + +.. autosummary:: + + input_output_response + describing_function + some_other_function + + +Module summaries +---------------- + +If you have a docstring at the top of a module that you want to pull +into the documentation, you can do that with the `automodule` +directive: + +.. automodule:: control.optimal + :noindex: + :no-members: + :no-inherited-members: + :no-special-members: + +.. currentmodule:: control + +The `:noindex:` option gets rid of warnings about a module being +indexed twice. The next three options are used to just bring in the +summary and extended summary in the module docstring, without +including all of the documentation of the classes and functions in the +module. + +Note that we `automodule` will set the current module to the one for +which you just generated documentation, so the `currentmodule` should +be reset to control afterwards (otherwise references to functions in +the `control` namespace won't be recognized. diff --git a/doc/examples/vehicle-steering.png b/doc/examples/vehicle-steering.png new file mode 120000 index 000000000..c568707da --- /dev/null +++ b/doc/examples/vehicle-steering.png @@ -0,0 +1 @@ +../../examples/vehicle-steering.png \ No newline at end of file diff --git a/doc/figures/Makefile b/doc/figures/Makefile new file mode 100644 index 000000000..1ca54b372 --- /dev/null +++ b/doc/figures/Makefile @@ -0,0 +1,16 @@ +# Makefile- rules to create figures +# RMM, 26 Dec 2024 + +# List of figures that need to be created (first figure generated is OK) +FIGS = classes.pdf + +# Location of the control package +SRCDIR = ../.. + +all: $(FIGS) + +clean: + /bin/rm -f $(FIGS) + +classes.pdf: classes.fig + fig2dev -Lpdf $< $@ diff --git a/doc/figures/bdalg-feedback.png b/doc/figures/bdalg-feedback.png new file mode 100644 index 000000000..6a77128dc Binary files /dev/null and b/doc/figures/bdalg-feedback.png differ diff --git a/doc/classes.fig b/doc/figures/classes.fig similarity index 100% rename from doc/classes.fig rename to doc/figures/classes.fig diff --git a/doc/classes.pdf b/doc/figures/classes.pdf similarity index 100% rename from doc/classes.pdf rename to doc/figures/classes.pdf diff --git a/doc/figures/ctrlplot-pole_zero_subplots.png b/doc/figures/ctrlplot-pole_zero_subplots.png new file mode 100644 index 000000000..a47ad4374 Binary files /dev/null and b/doc/figures/ctrlplot-pole_zero_subplots.png differ diff --git a/doc/figures/ctrlplot-servomech.png b/doc/figures/ctrlplot-servomech.png new file mode 100644 index 000000000..e18bbd195 Binary files /dev/null and b/doc/figures/ctrlplot-servomech.png differ diff --git a/doc/figures/descfcn-pade-backlash.png b/doc/figures/descfcn-pade-backlash.png new file mode 100644 index 000000000..4fb0832d2 Binary files /dev/null and b/doc/figures/descfcn-pade-backlash.png differ diff --git a/doc/figures/flatsys-steering-compare.png b/doc/figures/flatsys-steering-compare.png new file mode 100644 index 000000000..100436f60 Binary files /dev/null and b/doc/figures/flatsys-steering-compare.png differ diff --git a/doc/figures/freqplot-gangof4.png b/doc/figures/freqplot-gangof4.png new file mode 100644 index 000000000..16b3e9076 Binary files /dev/null and b/doc/figures/freqplot-gangof4.png differ diff --git a/doc/figures/freqplot-mimo_bode-default.png b/doc/figures/freqplot-mimo_bode-default.png new file mode 100644 index 000000000..e623b3d2c Binary files /dev/null and b/doc/figures/freqplot-mimo_bode-default.png differ diff --git a/doc/figures/freqplot-mimo_bode-magonly.png b/doc/figures/freqplot-mimo_bode-magonly.png new file mode 100644 index 000000000..df9036f7b Binary files /dev/null and b/doc/figures/freqplot-mimo_bode-magonly.png differ diff --git a/doc/figures/freqplot-mimo_svplot-default.png b/doc/figures/freqplot-mimo_svplot-default.png new file mode 100644 index 000000000..8a632045e Binary files /dev/null and b/doc/figures/freqplot-mimo_svplot-default.png differ diff --git a/doc/figures/freqplot-nyquist-custom.png b/doc/figures/freqplot-nyquist-custom.png new file mode 100644 index 000000000..5cd2c19d0 Binary files /dev/null and b/doc/figures/freqplot-nyquist-custom.png differ diff --git a/doc/figures/freqplot-nyquist-default.png b/doc/figures/freqplot-nyquist-default.png new file mode 100644 index 000000000..c511509fa Binary files /dev/null and b/doc/figures/freqplot-nyquist-default.png differ diff --git a/doc/figures/freqplot-siso_bode-default.png b/doc/figures/freqplot-siso_bode-default.png new file mode 100644 index 000000000..8e056cae3 Binary files /dev/null and b/doc/figures/freqplot-siso_bode-default.png differ diff --git a/doc/figures/freqplot-siso_bode-omega.png b/doc/figures/freqplot-siso_bode-omega.png new file mode 100644 index 000000000..d814db440 Binary files /dev/null and b/doc/figures/freqplot-siso_bode-omega.png differ diff --git a/doc/figures/freqplot-siso_nichols-default.png b/doc/figures/freqplot-siso_nichols-default.png new file mode 100644 index 000000000..cfee49197 Binary files /dev/null and b/doc/figures/freqplot-siso_nichols-default.png differ diff --git a/doc/figures/iosys-predprey-closed.png b/doc/figures/iosys-predprey-closed.png new file mode 100644 index 000000000..09b159ba7 Binary files /dev/null and b/doc/figures/iosys-predprey-closed.png differ diff --git a/doc/figures/iosys-predprey-open.png b/doc/figures/iosys-predprey-open.png new file mode 100644 index 000000000..797f46a3c Binary files /dev/null and b/doc/figures/iosys-predprey-open.png differ diff --git a/doc/mpc-overview.png b/doc/figures/mpc-overview.png similarity index 100% rename from doc/mpc-overview.png rename to doc/figures/mpc-overview.png diff --git a/doc/figures/phaseplot-dampedosc-default.png b/doc/figures/phaseplot-dampedosc-default.png new file mode 100644 index 000000000..3841fce83 Binary files /dev/null and b/doc/figures/phaseplot-dampedosc-default.png differ diff --git a/doc/figures/phaseplot-invpend-meshgrid.png b/doc/figures/phaseplot-invpend-meshgrid.png new file mode 100644 index 000000000..0d73f967c Binary files /dev/null and b/doc/figures/phaseplot-invpend-meshgrid.png differ diff --git a/doc/figures/phaseplot-oscillator-helpers.png b/doc/figures/phaseplot-oscillator-helpers.png new file mode 100644 index 000000000..ab1bb62a3 Binary files /dev/null and b/doc/figures/phaseplot-oscillator-helpers.png differ diff --git a/doc/pzmap-siso_ctime-default.png b/doc/figures/pzmap-siso_ctime-default.png similarity index 98% rename from doc/pzmap-siso_ctime-default.png rename to doc/figures/pzmap-siso_ctime-default.png index 1caa7cadf..efdd0d7fa 100644 Binary files a/doc/pzmap-siso_ctime-default.png and b/doc/figures/pzmap-siso_ctime-default.png differ diff --git a/doc/figures/rlocus-siso_ctime-clicked.png b/doc/figures/rlocus-siso_ctime-clicked.png new file mode 100644 index 000000000..daaae809e Binary files /dev/null and b/doc/figures/rlocus-siso_ctime-clicked.png differ diff --git a/doc/figures/rlocus-siso_ctime-default.png b/doc/figures/rlocus-siso_ctime-default.png new file mode 100644 index 000000000..7e4ffd04e Binary files /dev/null and b/doc/figures/rlocus-siso_ctime-default.png differ diff --git a/doc/figures/rlocus-siso_dtime-default.png b/doc/figures/rlocus-siso_dtime-default.png new file mode 100644 index 000000000..51b85fc9e Binary files /dev/null and b/doc/figures/rlocus-siso_dtime-default.png differ diff --git a/doc/figures/rlocus-siso_multiple-nogrid.png b/doc/figures/rlocus-siso_multiple-nogrid.png new file mode 100644 index 000000000..190078d77 Binary files /dev/null and b/doc/figures/rlocus-siso_multiple-nogrid.png differ diff --git a/doc/figures/servomech-diagram.png b/doc/figures/servomech-diagram.png new file mode 100644 index 000000000..8b66437a7 Binary files /dev/null and b/doc/figures/servomech-diagram.png differ diff --git a/doc/figures/steering-optimal.png b/doc/figures/steering-optimal.png new file mode 100644 index 000000000..994e8c30b Binary files /dev/null and b/doc/figures/steering-optimal.png differ diff --git a/doc/figures/stochastic-whitenoise-correlation.png b/doc/figures/stochastic-whitenoise-correlation.png new file mode 100644 index 000000000..77c91056e Binary files /dev/null and b/doc/figures/stochastic-whitenoise-correlation.png differ diff --git a/doc/figures/stochastic-whitenoise-response.png b/doc/figures/stochastic-whitenoise-response.png new file mode 100644 index 000000000..6a5d604df Binary files /dev/null and b/doc/figures/stochastic-whitenoise-response.png differ diff --git a/doc/figures/timeplot-mimo_ioresp-mt_tr.png b/doc/figures/timeplot-mimo_ioresp-mt_tr.png new file mode 100644 index 000000000..090072b3d Binary files /dev/null and b/doc/figures/timeplot-mimo_ioresp-mt_tr.png differ diff --git a/doc/figures/timeplot-mimo_ioresp-ov_lm.png b/doc/figures/timeplot-mimo_ioresp-ov_lm.png new file mode 100644 index 000000000..893cad75b Binary files /dev/null and b/doc/figures/timeplot-mimo_ioresp-ov_lm.png differ diff --git a/doc/figures/timeplot-mimo_step-default.png b/doc/figures/timeplot-mimo_step-default.png new file mode 100644 index 000000000..143fceed5 Binary files /dev/null and b/doc/figures/timeplot-mimo_step-default.png differ diff --git a/doc/figures/timeplot-mimo_step-linestyle.png b/doc/figures/timeplot-mimo_step-linestyle.png new file mode 100644 index 000000000..7e4c9150d Binary files /dev/null and b/doc/figures/timeplot-mimo_step-linestyle.png differ diff --git a/doc/figures/timeplot-mimo_step-pi_cs.png b/doc/figures/timeplot-mimo_step-pi_cs.png new file mode 100644 index 000000000..7a7f1a764 Binary files /dev/null and b/doc/figures/timeplot-mimo_step-pi_cs.png differ diff --git a/doc/figures/timeplot-servomech-combined.png b/doc/figures/timeplot-servomech-combined.png new file mode 100644 index 000000000..c4b8f7598 Binary files /dev/null and b/doc/figures/timeplot-servomech-combined.png differ diff --git a/doc/figures/xferfcn-delay-compare.png b/doc/figures/xferfcn-delay-compare.png new file mode 100644 index 000000000..a18c9c95f Binary files /dev/null and b/doc/figures/xferfcn-delay-compare.png differ diff --git a/doc/flatsys.rst b/doc/flatsys.rst index 2ed873b23..dda35d9a3 100644 --- a/doc/flatsys.rst +++ b/doc/flatsys.rst @@ -1,34 +1,41 @@ +.. currentmodule:: control + .. _flatsys-module: -*************************** -Differentially flat systems -*************************** +Differentially Flat Systems +=========================== + +The `flatsys` subpackage contains a set of classes and functions to +compute trajectories for differentially flat systems. The objects in +this subpackage must be explicitly imported:: + + import control as ct + import control.flatsys as fs -.. automodule:: control.flatsys - :no-members: - :no-inherited-members: - :no-special-members: Overview of differential flatness -================================= +--------------------------------- A nonlinear differential equation of the form .. math:: - \dot x = f(x, u), \qquad x \in R^n, u \in R^m + + \dot x = f(x, u), \qquad x \in R^n, u \in R^m is *differentially flat* if there exists a function :math:`\alpha` such that .. math:: - z = \alpha(x, u, \dot u\, \dots, u^{(p)}) + + z = \alpha(x, u, \dot u\, \dots, u^{(p)}) and we can write the solutions of the nonlinear system as functions of :math:`z` and a finite number of derivatives .. math:: - x &= \beta(z, \dot z, \dots, z^{(q)}) \\ - u &= \gamma(z, \dot z, \dots, z^{(q)}). - :label: flat2state + :label: flat2state + + x &= \beta(z, \dot z, \dots, z^{(q)}) \\ + u &= \gamma(z, \dot z, \dots, z^{(q)}). For a differentially flat system, all of the feasible trajectories for the system can be written as functions of a flat output :math:`z(\cdot)` and @@ -42,13 +49,15 @@ space, and then map these to appropriate inputs. Suppose we wish to generate a feasible trajectory for the nonlinear system .. math:: - \dot x = f(x, u), \qquad x(0) = x_0,\, x(T) = x_f. + + \dot x = f(x, u), \qquad x(0) = x_0,\, x(T) = x_f. If the system is differentially flat then .. math:: - x(0) &= \beta\bigl(z(0), \dot z(0), \dots, z^{(q)}(0) \bigr) = x_0, \\ - x(T) &= \gamma\bigl(z(T), \dot z(T), \dots, z^{(q)}(T) \bigr) = x_f, + + x(0) &= \beta\bigl(z(0), \dot z(0), \dots, z^{(q)}(0) \bigr) = x_0, \\ + x(T) &= \gamma\bigl(z(T), \dot z(T), \dots, z^{(q)}(T) \bigr) = x_f, and we see that the initial and final condition in the full state space depends on just the output :math:`z` and its derivatives at the @@ -58,13 +67,14 @@ system, using equation :eq:`flat2state` to determine the full state space and input trajectories. In particular, given initial and final conditions on :math:`z` and its -derivatives that satisfy the initial and final conditions any curve +derivatives that satisfy the initial and final conditions, any curve :math:`z(\cdot)` satisfying those conditions will correspond to a feasible 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 c_i \psi_i(t), \qquad c_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:`c_i`, :math:`i = 1, \dots, N` such that :math:`z(t)` satisfies the boundary conditions for :math:`x(0)` and @@ -72,121 +82,128 @@ that :math:`z(t)` satisfies the boundary conditions for :math:`x(0)` and the derivatives of the basis functions: .. math:: - \dot z(t) &= \sum_{i=1}^N c_i \dot \psi_i(t) \\ - &\,\vdots \\ - \dot z^{(q)}(t) &= \sum_{i=1}^N c_i \psi^{(q)}_i(t). + + \dot z(t) &= \sum_{i=1}^N c_i \dot \psi_i(t) \\ + &\, \vdots \\ + \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 .. math:: - \begin{bmatrix} - \psi_1(0) & \psi_2(0) & \dots & \psi_N(0) \\ - \dot \psi_1(0) & \dot \psi_2(0) & \dots & \dot \psi_N(0) \\ - \vdots & \vdots & & \vdots \\ - \psi^{(q)}_1(0) & \psi^{(q)}_2(0) & \dots & \psi^{(q)}_N(0) \\[1ex] - \psi_1(T) & \psi_2(T) & \dots & \psi_N(T) \\ - \dot \psi_1(T) & \dot \psi_2(T) & \dots & \dot \psi_N(T) \\ - \vdots & \vdots & & \vdots \\ - \psi^{(q)}_1(T) & \psi^{(q)}_2(T) & \dots & \psi^{(q)}_N(T) \\ - \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) \\ - \end{bmatrix} + + \begin{bmatrix} + \psi_1(0) & \psi_2(0) & \dots & \psi_N(0) \\ + \dot \psi_1(0) & \dot \psi_2(0) & \dots & \dot \psi_N(0) \\ + \vdots & \vdots & & \vdots \\ + \psi^{(q)}_1(0) & \psi^{(q)}_2(0) & \dots & \psi^{(q)}_N(0) \\[1ex] + \psi_1(T) & \psi_2(T) & \dots & \psi_N(T) \\ + \dot \psi_1(T) & \dot \psi_2(T) & \dots & \dot \psi_N(T) \\ + \vdots & \vdots & & \vdots \\ + \psi^{(q)}_1(T) & \psi^{(q)}_2(T) & \dots & \psi^{(q)}_N(T) \\ + \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) \\ + \end{bmatrix} This equation is a *linear* equation of the form .. math:: + 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 -column rank, we can solve for a (possibly non-unique) :math:`\alpha` that -solves the trajectory generation problem. +Assuming that :math:`M` has a sufficient number of columns and that it +is full column rank, we can solve for a (possibly non-unique) +:math:`\alpha` that solves the trajectory generation problem. -Module usage -============ +Subpackage usage +---------------- -To create a trajectory for a differentially flat system, a -:class:`~control.flatsys.FlatSystem` object must be created. This is done -using the :func:`~control.flatsys.flatsys` function: +To access the flat system modules, import `control.flatsys`:: - import control.flatsys as fs - sys = fs.flatsys(forward, reverse) + import control.flatsys as fs + +To create a trajectory for a differentially flat system, a +:class:`~flatsys.FlatSystem` object must be created. This is done +using the :func:`~flatsys.flatsys` function:: -The `forward` and `reverse` parameters describe the mappings between the -system state/input and the differentially flat outputs and their -derivatives ("flat flag"). + sys = fs.flatsys(forward, reverse) -The :func:`~control.flatsys.FlatSystem.forward` method computes the -flat flag given a state and input: +The `forward` and `reverse` parameters describe the mappings between +the system state/input and the differentially flat outputs and their +derivatives ("flat flag"). The :func:`~flatsys.FlatSystem.forward` +method computes the flat flag given a state and input:: - zflag = sys.forward(x, u) + zflag = sys.forward(x, u) -The :func:`~control.flatsys.FlatSystem.reverse` method computes the state -and input given the flat flag: +The :func:`~flatsys.FlatSystem.reverse` method computes the state +and input given the flat flag:: - x, u = sys.reverse(zflag) + x, u = sys.reverse(zflag) The flag :math:`\bar z` is implemented as a list of flat outputs :math:`z_i` and their derivatives up to order :math:`q_i`: - zflag[i][j] = :math:`z_i^{(j)}` + ``zflag[i][j]`` = :math:`z_i^{(j)}` The number of flat outputs must match the number of system inputs. For a linear system, a flat system representation can be generated by -passing a :class:`~control.StateSpace` system to the -:func:`~control.flatsys.flatsys` factory function:: +passing a :class:`StateSpace` system to the +:func:`~flatsys.flatsys` factory function:: - sys = fs.flatsys(linsys) + sys = fs.flatsys(linsys) -The :func:`~control.flatsys.flatsys` function also supports the use of +The :func:`~flatsys.flatsys` function also supports the use of named input, output, and state signals:: - sys = fs.flatsys( - forward, reverse, states=['x1', ..., 'xn'], inputs=['u1', ..., 'um']) + sys = fs.flatsys( + 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 -:class:`~control.flatsys.PolyFamily` class, which is initialized by +:class:`~flatsys.PolyFamily` class, which is initialized by passing the desired order of the polynomial basis set:: - basis = fs.PolyFamily(N) + basis = fs.PolyFamily(N) Additional basis function families include Bezier curves -(:class:`~control.flatsys.BezierFamily`) and B-splines -(:class:`~control.flatsys.BSplineFamily`). +(:class:`~flatsys.BezierFamily`) and B-splines +(:class:`~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 +:func:`~flatsys.point_to_point` function can be used to compute a trajectory between initial and final states and inputs:: - traj = fs.point_to_point( - sys, Tf, x0, u0, xf, uf, basis=basis) + traj = fs.point_to_point( + sys, Tf, x0, u0, xf, uf, basis=basis) -The returned object has class :class:`~control.flatsys.SystemTrajectory` and +The returned object has class :class:`~flatsys.SystemTrajectory` and can be used to compute the state and input trajectory between the initial and final condition:: - xd, ud = traj.eval(T) + xd, ud = traj.eval(timepts) -where `T` is a list of times on which the trajectory should be evaluated -(e.g., `T = numpy.linspace(0, Tf, M)`. +where `timepts` is a list of times on which the trajectory should be +evaluated (e.g., `timepts = numpy.linspace(0, Tf, M)`. Alternatively, +the `~flatsys.SystemTrajectory.response` method can be used to return +a `TimeResponseData` object. -The :func:`~control.flatsys.point_to_point` function also allows the +The :func:`~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`. +format as :func:`optimal.solve_optimal_trajectory`. -The :func:`~control.flatsys.solve_flat_ocp` function can be used to -solve an optimal control problem without a final state:: +The :func:`~flatsys.solve_flat_optimal` function can be used to solve an +optimal control problem for a differentially flat system without a +final state constraint:: - traj = fs.solve_flat_ocp( - sys, timepts, x0, u0, cost, basis=basis) + traj = fs.solve_flat_optimal( + sys, timepts, x0, u0, cost, basis=basis) The `cost` parameter is a function with call signature `cost(x, u)` and should return the (incremental) cost at the given @@ -195,18 +212,25 @@ vector. The `terminal_cost` parameter can be used to specify a cost function for the final point in the trajectory. Example -======= +------- + +To illustrate how we can differential flatness to generate a feasible +trajectory, 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 in `Feedback Systems +`, Example 3.11 (Vehicle +Steering). -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 in *Feedback Systems* by Astrom and Murray, Example 3.11. +.. testsetup:: flatsys -.. code-block:: python + import matplotlib.pyplot as plt + plt.close('all') +.. testcode:: flatsys + + import numpy as np 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={}): @@ -254,17 +278,27 @@ derived in *Feedback Systems* by Astrom and Murray, Example 3.11. 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 + vehicle_flat = fs.flatsys( vehicle_flat_forward, vehicle_flat_reverse, + updfcn=vehicle_update, outfcn=None, name='vehicle_flat', 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 -trajectory generation problem. We also set the initial and final inputs, which -sets the vehicle velocity :math:`v` and steering wheel angle :math:`\delta` at -the endpoints. +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 trajectory generation problem. We also set the initial +and final inputs, which sets the vehicle velocity :math:`v` and +steering wheel angle :math:`\delta` at the endpoints. -.. code-block:: python +.. testcode:: flatsys # Define the endpoints of the trajectory x0 = [0., -2., 0.]; u0 = [10., 0.] @@ -278,14 +312,14 @@ the endpoints. traj = fs.point_to_point(vehicle_flat, Tf, x0, u0, xf, uf, basis=poly) # Create the trajectory - t = np.linspace(0, Tf, 100) - x, u = traj.eval(t) + timepts = np.linspace(0, Tf, 100) + resp_p2p = traj.response(timepts) Alternatively, we can solve an optimal control problem in which we minimize a cost function along the trajectory as well as a terminal -cost:` +cost: -.. code-block:: python +.. testcode:: flatsys # Define the cost along the trajectory: penalize steering angle traj_cost = ct.optimal.quadratic_cost( @@ -296,36 +330,59 @@ 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) + evalpts = np.linspace(0, Tf, 10) initial_guess = np.array( - [x0[i] + (xf[i] - x0[i]) * timepts/Tf for i in (0, 1)]) + [x0[i] + (xf[i] - x0[i]) * evalpts/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, + traj = fs.solve_flat_optimal( + vehicle_flat, evalpts, x0, u0, traj_cost, terminal_cost=term_cost, initial_guess=initial_guess, basis=bspline) - x, u = traj.eval(t) + resp_ocp = traj.response(timepts) + +The results of the two approaches can be shown using the +`time_response_plot` function: + +.. testcode:: flatsys -Module classes and functions -============================ + cplt = ct.time_response_plot( + ct.combine_time_responses([resp_p2p, resp_ocp]), + overlay_traces=True, trace_labels=['point_to_point', 'solve_ocp']) + +.. testcode:: flatsys + :hide: + + import matplotlib.pyplot as plt + plt.savefig('figures/flatsys-steering-compare.png') + +.. image:: figures/flatsys-steering-compare.png + :align: center + + +Subpackage classes and functions +-------------------------------- + +The flat systems subpackage `flatsys` utilizes a number of classes to +define the flat system, the basis functions, and the system trajectory: .. autosummary:: - :toctree: generated/ :template: custom-class-template.rst - ~control.flatsys.BasisFamily - ~control.flatsys.BezierFamily - ~control.flatsys.BSplineFamily - ~control.flatsys.FlatSystem - ~control.flatsys.LinearFlatSystem - ~control.flatsys.PolyFamily - ~control.flatsys.SystemTrajectory + flatsys.BasisFamily + flatsys.BezierFamily + flatsys.BSplineFamily + flatsys.FlatSystem + flatsys.LinearFlatSystem + flatsys.PolyFamily + flatsys.SystemTrajectory + +The following functions can be used to define a flat system and +compute trajectories: .. autosummary:: - :toctree: generated/ - ~control.flatsys.flatsys - ~control.flatsys.point_to_point - ~control.flatsys.solve_flat_ocp + flatsys.flatsys + flatsys.point_to_point + flatsys.solve_flat_optimal diff --git a/doc/freqplot-gangof4.png b/doc/freqplot-gangof4.png deleted file mode 100644 index 538284a0f..000000000 Binary files a/doc/freqplot-gangof4.png and /dev/null differ diff --git a/doc/freqplot-mimo_bode-default.png b/doc/freqplot-mimo_bode-default.png deleted file mode 100644 index 995203336..000000000 Binary files a/doc/freqplot-mimo_bode-default.png and /dev/null differ diff --git a/doc/freqplot-mimo_bode-magonly.png b/doc/freqplot-mimo_bode-magonly.png deleted file mode 100644 index 106620b95..000000000 Binary files a/doc/freqplot-mimo_bode-magonly.png and /dev/null differ diff --git a/doc/freqplot-mimo_svplot-default.png b/doc/freqplot-mimo_svplot-default.png deleted file mode 100644 index d64330e25..000000000 Binary files a/doc/freqplot-mimo_svplot-default.png and /dev/null differ diff --git a/doc/freqplot-siso_bode-default.png b/doc/freqplot-siso_bode-default.png deleted file mode 100644 index 924de66f4..000000000 Binary files a/doc/freqplot-siso_bode-default.png and /dev/null differ diff --git a/doc/freqplot-siso_nichols-default.png b/doc/freqplot-siso_nichols-default.png deleted file mode 100644 index 687afdd51..000000000 Binary files a/doc/freqplot-siso_nichols-default.png and /dev/null differ diff --git a/doc/functions.rst b/doc/functions.rst new file mode 100644 index 000000000..d657fd431 --- /dev/null +++ b/doc/functions.rst @@ -0,0 +1,330 @@ +.. _function-ref: + +****************** +Function Reference +****************** + +.. Include header information from the main control module +.. automodule:: control + :no-members: + :no-inherited-members: + :no-special-members: + + +System Creation +=============== + +Functions that create input/output systems from a description of the +system properties: + +.. autosummary:: + :toctree: generated/ + + ss + tf + frd + nlsys + zpk + pade + rss + drss + +Functions that transform systems from one form to another: + +.. autosummary:: + :toctree: generated/ + + canonical_form + modal_form + observable_form + reachable_form + sample_system + similarity_transform + ss2tf + tf2ss + tfdata + +.. _interconnections-ref: + +System Interconnections +======================= + +.. autosummary:: + :toctree: generated/ + + series + parallel + negate + feedback + interconnect + append + combine_tf + split_tf + summing_junction + connection_table + combine_tf + split_tf + + +Time Response +============= + +.. autosummary:: + :toctree: generated/ + + forced_response + impulse_response + initial_response + input_output_response + step_response + time_response_plot + combine_time_responses + + +Phase plane plots +----------------- + +.. automodule:: control.phaseplot + :no-members: + :no-inherited-members: + :no-special-members: + +.. Reset current module to main package to force reference to use prefix +.. currentmodule:: control + +.. autosummary:: + :toctree: generated/ + + phase_plane_plot + phaseplot.boxgrid + phaseplot.circlegrid + phaseplot.equilpoints + phaseplot.meshgrid + phaseplot.separatrices + phaseplot.streamlines + phaseplot.vectorfield + phaseplot.streamplot + + +Frequency Response +================== + +.. autosummary:: + :toctree: generated/ + + bode_plot + describing_function_plot + describing_function_response + frequency_response + nyquist_response + nyquist_plot + gangof4_response + gangof4_plot + nichols_plot + nichols_grid + + +Control System Analysis +======================= + +Time domain analysis: + +.. autosummary:: + :toctree: generated/ + + damp + step_info + +Frequency domain analysis: + +.. autosummary:: + :toctree: generated/ + + bandwidth + dcgain + linfnorm + margin + stability_margins + system_norm + phase_crossover_frequencies + singular_values_plot + singular_values_response + sisotool + +Pole/zero-based analysis: + +.. autosummary:: + :toctree: generated/ + + poles + zeros + pole_zero_map + pole_zero_plot + pole_zero_subplots + root_locus_map + root_locus_plot + +Passive systems analysis: + +.. autosummary:: + :toctree: generated/ + + get_input_ff_index + get_output_fb_index + ispassive + solve_passivity_LMI + + +Control System Synthesis +======================== + +State space synthesis: + +.. autosummary:: + :toctree: generated/ + + create_statefbk_iosystem + dlqr + lqr + place + place_acker + place_varga + +Frequency domain synthesis: + +.. autosummary:: + :toctree: generated/ + + h2syn + hinfsyn + mixsyn + rootlocus_pid_designer + + +System ID and Model Reduction +============================= +.. autosummary:: + :toctree: generated/ + + minimal_realization + balanced_reduction + hankel_singular_values + model_reduction + eigensys_realization + markov + + +Nonlinear System Support +======================== +.. autosummary:: + :toctree: generated/ + + find_operating_point + linearize + + +Describing functions +-------------------- +.. autosummary:: + :toctree: generated/ + + describing_function + friction_backlash_nonlinearity + relay_hysteresis_nonlinearity + saturation_nonlinearity + + +Differentially flat systems +--------------------------- +.. automodule:: control.flatsys + :no-members: + :no-inherited-members: + :no-special-members: + +.. Reset current module to main package to force reference to use prefix +.. currentmodule:: control + +.. autosummary:: + :toctree: generated/ + + flatsys.flatsys + flatsys.point_to_point + flatsys.solve_flat_optimal + + +Optimal control +--------------- +.. automodule:: control.optimal + :no-members: + :no-inherited-members: + :no-special-members: + +.. Reset current module to main package to force reference to use prefix +.. currentmodule:: control + +.. autosummary:: + :toctree: generated/ + + optimal.create_mpc_iosystem + optimal.disturbance_range_constraint + optimal.gaussian_likelihood_cost + optimal.input_poly_constraint + optimal.input_range_constraint + optimal.output_poly_constraint + optimal.output_range_constraint + optimal.quadratic_cost + optimal.solve_optimal_trajectory + optimal.solve_optimal_estimate + optimal.state_poly_constraint + optimal.state_range_constraint + + +Stochastic System Support +========================= +.. autosummary:: + :toctree: generated/ + + correlation + create_estimator_iosystem + dlqe + lqe + white_noise + + +Matrix Computations +=================== +.. autosummary:: + :toctree: generated/ + + care + ctrb + dare + dlyap + lyap + obsv + gram + +.. _utility-and-conversions: + +Utility Functions +================= +.. autosummary:: + :toctree: generated/ + + augw + bdschur + db2mag + isctime + isdtime + iosys_repr + issiso + mag2db + reset_defaults + reset_rcParams + set_defaults + ssdata + timebase + unwrap + use_fbs_defaults + use_legacy_defaults + use_matlab_defaults diff --git a/doc/index.rst b/doc/index.rst index ec556e7ce..44da952c7 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -2,41 +2,77 @@ Python Control Systems Library ############################## -The Python Control Systems Library (`python-control`) is a Python package that -implements basic operations for analysis and design of feedback control systems. +The Python Control Systems Library (python-control) is a Python +package that implements basic operations for analysis and design of +feedback control systems. .. rubric:: Features -- Linear input/output systems in state-space and frequency domain +- Linear input/output systems in state space and frequency domain - Nonlinear input/output system modeling, simulation, and analysis - Block diagram algebra: serial, parallel, and feedback interconnections -- Time response: initial, step, impulse -- Frequency response: Bode and Nyquist plots -- Control analysis: stability, reachability, observability, stability margins -- Control design: eigenvalue placement, LQR, H2, Hinf -- Model reduction: balanced realizations, Hankel singular values -- Estimator design: linear quadratic estimator (Kalman filter) +- Time response: initial, step, impulse, and forced response +- Frequency response: Bode, Nyquist, and Nichols plots +- Control analysis: stability, reachability, observability, stability + margins, phase plane plots, root locus plots +- Control design: eigenvalue placement, LQR, H2, Hinf, and MPC/RHC +- Trajectory generation: optimal control and differential flatness +- Model reduction: balanced realizations and Hankel singular values +- Estimator design: linear quadratic estimator (Kalman filter), MLE, and MHE + +.. rubric:: Links: + +- GitHub repository: https://github.com/python-control/python-control +- Issue tracker: https://github.com/python-control/python-control/issues +- Mailing list: https://sourceforge.net/p/python-control/mailman/ + +.. rubric:: How to 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}, + booktitle={60th IEEE Conference on Decision and Control (CDC)}, + pages={4875--4881}, + year={2021}, + organization={IEEE} + } -.. rubric:: Documentation +or the GitHub site: https://github.com/python-control/python-control. .. toctree:: - :maxdepth: 2 + :caption: User Guide + :maxdepth: 1 + :numbered: 2 intro - conventions - control - classes - plotting - matlab - flatsys - iosys - descfcn - optimal + Tutorial + Linear Systems + I/O Response and Plotting + Nonlinear Systems + Interconnected I/O Systems + Stochastic Systems examples + genindex -* :ref:`genindex` +.. toctree:: + :caption: Reference Manual + :maxdepth: 1 -.. rubric:: Development + functions + classes + config + matlab + develop + releases + +*********** +Development +*********** You can check out the latest version of the source code with the command:: @@ -53,16 +89,12 @@ or to test the installed package:: .. _pytest: https://docs.pytest.org/ -Your contributions are welcome! Simply fork the `GitHub repository `_ and send a -`pull request`_. +Your contributions are welcome! Simply fork the `GitHub repository +`_ and send a `pull +request`_. .. _pull request: https://github.com/python-control/python-control/pulls Please see the `Developer's Wiki`_ for detailed instructions. .. _Developer's Wiki: https://github.com/python-control/python-control/wiki - -.. rubric:: Links - -- Issue tracker: https://github.com/python-control/python-control/issues -- Mailing list: http://sourceforge.net/p/python-control/mailman/ diff --git a/doc/interconnect_tutorial.ipynb b/doc/interconnect_tutorial.ipynb deleted file mode 120000 index aa43d9824..000000000 --- a/doc/interconnect_tutorial.ipynb +++ /dev/null @@ -1 +0,0 @@ -../examples/interconnect_tutorial.ipynb \ No newline at end of file diff --git a/doc/intro.rst b/doc/intro.rst index 2287bbac4..e1e5fb8e6 100644 --- a/doc/intro.rst +++ b/doc/intro.rst @@ -2,37 +2,21 @@ Introduction ************ -Welcome to the Python Control Systems Toolbox (python-control) User's -Manual. This manual contains information on using the python-control +Welcome to the Python Control Systems Library (python-control) User +Guide. This guide contains information on using the python-control package, including documentation for all functions in the package and examples illustrating their use. -Overview of the toolbox -======================= -The python-control package is a set of python classes and functions that -implement common operations for the analysis and design of feedback control -systems. The initial goal is to implement all of the functionality required -to work through the examples in the textbook `Feedback Systems -`_ by Astrom and Murray. A :ref:`matlab-module` is -available that provides many of the common functions corresponding to -commands available in the MATLAB Control Systems Toolbox. +Package Overview +================ -Some differences from MATLAB -============================ -The python-control package makes use of `NumPy `_ and -`SciPy `_. A list of general differences between -NumPy and MATLAB can be found `here -`_. - -In terms of the python-control package more specifically, here are -some things to keep in mind: +.. automodule:: control + :noindex: + :no-members: + :no-inherited-members: + :no-special-members: -* 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 ============ @@ -56,7 +40,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. + install NumPy, SciPy, and Matplotlib from conda-forge as well. To install using pip:: @@ -65,7 +49,7 @@ To install using pip:: .. note:: If you install Slycot using pip you'll need a development - environment (e.g., Python development files, C and Fortran compilers). + 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 @@ -75,24 +59,136 @@ correctly by running the command:: python -c "import slycot" -and verifying that no error message appears. More information on the +and verifying that no error message appears. More information on the Slycot package can be obtained from the `Slycot project page `_. -Alternatively, to install from source, first `download the source -`_ and unpack it. -To install in your home directory, use:: +Alternatively, to install `python-control` from source, first +`download the source code +`_ and +unpack it. To install in your Python environment, use:: pip install . -Getting started -=============== +The python-control package can also be used with `Google Colab +`_ by including the following lines to import the +control package:: + + %pip install control + import control as ct + +Note that Google Colab does not currently support Slycot, so some +functionality may not be available. + + +Package Conventions +=================== + +The python-control package makes use of a few naming and calling conventions: + +* Function names are written in lower case with underscores between + words (`frequency_response`). + +* Class names use camel case (`StateSpace`, `ControlPlot`, etc) and + instances of the class are created with "factory functions" (`ss`, `tf`) + or as the output of an operation (`bode_plot`, `step_response`). + +* Functions that return multiple values use either objects (with + elements for each return value) or tuples. For those functions that + return tuples, the underscore variable can be used if only some of + the return values are needed:: + + K, _, _ = ct.lqr(sys) + +* Python-control supports both single-input, single-output (SISO) + systems and multi-input, multi-output (MIMO) systems, including + time and frequency responses. By default, SISO systems will + typically generate objects that have the input and output dimensions + suppressed (using the NumPy :func:`numpy.squeeze` function). The + `squeeze` keyword can be set to False to force functions to return + objects that include the input and output dimensions. + + +Some Differences from MATLAB +============================ + +Users familiar with the MATLAB control systems toolbox will find much +of the functionality implemented in `python-control`, though using +Python constructs and coding conventions. The python-control package +makes heavy use of `NumPy `_ and `SciPy +`_ and many differences are reflected in the +use of those . A list of general differences between NumPy and MATLAB +can be found `here +`_. + +In terms of the python-control package more specifically, here are +some things to keep in mind: + +* Vectors and matrices used as arguments to functions can be written + using lists, with commas required between elements and column + vectors implemented as nested list . So [1 2 3] must be written as + [1, 2, 3] and matrices are written using 2D nested lists, e.g., [[1, + 2], [3, 4]]. +* Functions that in MATLAB would return variable numbers of values + will have a parameter of the form `return_\` that is used to + return additional data. (These functions usually return an object of + a class that has attributes that can be used to access the + information and this is the preferred usage pattern.) +* You cannot use braces for collections; use tuples instead. +* Time series data have time as the final index (see + :ref:`time series data conventions `). + + +Documentation Conventions +========================= + +This documentation has a number of notional conventions and functionality: + +* The left panel displays the table of contents and is divided into + two main sections: the User Guide, which contains a narrative + description of the package along with examples, and the Reference + Manual, which contains documentation for all functions, classes, + configurable default parameters, and other detailed information. + +* Class, functions, and methods with additional documentation appear + in a bold, code font that link to the Reference Manual. Example: `ss`. + +* Links to other sections appear in blue. Example: :ref:`nonlinear-systems`. + +* Parameters appear in a (non-bode) code font, as do code fragments. + Example: `omega`. + +* Example code is contained in code blocks that can be copied using + the copy icon in the top right corner of the code block. Code + blocks are of three primary types: summary descriptions, code + listings, and executed commands. + + Summary descriptions show the calling structure of commands but are + not directly executable. Example:: + + resp = ct.frequency_response(sys[, omega]) + + Code listings consist of executable code that can be copied and + pasted into a Python execution environment. In most cases the + objects required by the code block will be present earlier in the + file or, occasionally, in a different section or chapter (with a + reference near the code block). All code listings assume that the + NumPy package is available using the prefix `np` and the python-control + package is available using prefix `ct`. Example: + + .. code:: -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:: + sys = ct.rss(4, 2, 1) + resp = ct.frequency_response(sys) + cplt = resp.plot() - >>> import control as ct + Executed commands show commands preceded by a prompt string of the + form ">>> " and also show the output that is obtained when executing + that code. The copy functionality for these blocks is configured to + only copy the commands and not the prompt string or outputs. Example: -If you want to have a MATLAB-like environment, use the :ref:`matlab-module`:: + .. doctest:: - >>> from control.matlab import * + >>> sys = ct.tf([1], [1, 0.5, 1]) + >>> ct.bandwidth(sys) + np.float64(1.4839084518312828) diff --git a/doc/iosys.rst b/doc/iosys.rst index c0c2cca31..5e51e7f05 100644 --- a/doc/iosys.rst +++ b/doc/iosys.rst @@ -1,70 +1,158 @@ +.. currentmodule:: control + .. _iosys-module: -******************** -Input/output systems -******************** +************************** +Interconnected I/O Systems +************************** + +Input/output systems can be interconnected in a variety of ways, +including operator overloading, block diagram algebra functions, and +using the :func:`interconnect` function to build a hierarchical system +description. This chapter provides more detailed information on +operator overloading and block diagram algebra, as well as a +description of the :class:`InterconnectedSystem` class, which can be +created using the :func:`interconnect` function. + +Operator Overloading +==================== + +The following operators are defined to operate between I/O systems: + +.. list-table:: + :header-rows: 1 + + * - Operation + - Description + - Equivalent command + * - ``sys1 + sys2`` + - Add the outputs of two systems receiving the same input + - ``parallel(sys1, sys2)`` + * - ``sys1 * sys2`` + - Connect output(s) of sys2 to input(s) of sys1 + - ``series(sys2, sys1)`` + * - ``-sys`` + - Multiply the output(s) of the system by -1 + - ``negate(sys)`` + * - ``tf1 / tf2`` + - Divide one SISO transfer function by another + - N/A + * - ``tf**n`` + - Multiply a transfer function by itself ``n`` times + - N/A + +If either of the systems is a scalar or an array of appropriate +dimension, then the appropriate scalar or matrix operation is +performed. In addition, if a SISO system is combined with a MIMO +system, the SISO system will be broadcast to the appropriate shape. + +Systems of different types can be combined using these operations, +with the following rules: + +* If both systems can be converted into the type of the other, the + leftmost system determines the type of the output. + +* If only one system can be converted into the other, then the more general + system determines the type of the output. In particular: + + - State space and transfer function systems can be converted to + nonlinear systems. + + - Linear systems can be converted to frequency response data (FRD) + systems, using the frequencies of the FRD system. + + - FRD systems can only be combined with FRD systems, constants, + and arrays. + + +Block Diagram Algebra +===================== + +Block diagram algebra is implemented using the following functions: + +.. autosummary:: + + series + parallel + feedback + negate + append -Module usage -============ +The :func:`feedback` function implements a standard feedback +interconnection between two systems, as illustrated in the following +diagram: -An input/output system is defined as a dynamical system that has a system -state as well as inputs and outputs (either inputs or states can be empty). -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:: +.. image:: figures/bdalg-feedback.png + :width: 240 + :align: center - resp = ct.input_output_response(io_sys, T, U, X0, params) - t, y, x = resp.time, resp.outputs, resp.states +By default a gain of -1 is applied at the output of the second system, +so the dynamics illustrate above can be created using the command -An input/output system can be linearized around an equilibrium point to obtain -a :class:`~control.StateSpace` linear system. Use the -:func:`~control.find_eqpt` function to obtain an equilibrium point and the -:func:`~control.linearize` function to linearize about that equilibrium point:: +.. code:: - xeq, ueq = ct.find_eqpt(io_sys, X0, U0) - ss_sys = ct.linearize(io_sys, xeq, ueq) + Gyu = ct.feedback(G1, G2) -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 :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):: +An optional `gain` parameter can be used to change the sign of the gain. - io_sys = ct.nlsys(updfcn, outfcn, inputs=M, outputs=P, states=N) +The :func:`feedback` function is also implemented via the +:func:`LTI.feedback` method, so if `G1` is an input/output system then +the following command will also work:: + + Gyu = G1.feedback(G2) + +All block diagram algebra functions allow the name of the system and +labels for signals to be specified using the usual `name`, `inputs`, +and `outputs` keywords, as described in the :class:`InputOutputSystem` +class. For state space systems, the labels for the states can also be +given, but caution should be used since the order of states in the +combined system is not guaranteed. + + +Signal-Based Interconnection +============================ More complex input/output systems can be constructed by using the -:func:`~control.interconnect` function, which allows a collection of +:func:`interconnect` function, which allows a collection of input/output subsystems to be combined with internal connections between the subsystems and a set of overall system inputs and outputs -that link to the subsystems:: +that link to the subsystems. For example, the closed loop dynamics of +a feedback control system using the standard names and labels for +inputs and outputs could be constructed using the command - steering = ct.interconnect( +.. code:: + + clsys = ct.interconnect( [plant, controller], name='system', - connections=[['controller.e', '-plant.y']], - inplist=['controller.e'], inputs='r', + connections=[ + ['controller.u', '-plant.y'], + ['plant.u', 'controller.y']], + inplist=['controller.u'], inputs='r', outlist=['plant.y'], outputs='y') -Interconnected systems can also be created using block diagram manipulations -such as the :func:`~control.series`, :func:`~control.parallel`, and -:func:`~control.feedback` functions. The :class:`~control.InputOutputSystem` -class also supports various algebraic operations such as `*` (series -interconnection) and `+` (parallel interconnection). +The remainder of this section provides a detailed description of the +operation of the :func:`interconnect` function. + -Example -======= +Illustrative example +-------------------- -To illustrate the use of the input/output systems module, we create a +To illustrate the use of the :func:`interconnect` function, we create a model for a predator/prey system, following the notation and parameter -values in FBS2e. +values in `Feedback Systems `_. -We begin by defining the dynamics of the system +We begin by defining the dynamics of the system: -.. code-block:: python +.. testsetup:: predprey + + import matplotlib.pyplot as plt + plt.close('all') + +.. testcode:: predprey - import control as ct - import numpy as np import matplotlib.pyplot as plt + import numpy as np + import control as ct def predprey_rhs(t, x, u, params): # Parameter setup @@ -90,48 +178,50 @@ We begin by defining the dynamics of the system We now create an input/output system using these dynamics: -.. code-block:: python +.. testcode:: predprey - io_predprey = ct.nlsys( - predprey_rhs, None, inputs=('u'), outputs=('H', 'L'), - states=('H', 'L'), name='predprey') + predprey = ct.nlsys( + predprey_rhs, None, inputs=['u'], outputs=['Hares', 'Lynxes'], + states=['H', 'L'], name='predprey') Note that since we have not specified an output function, the entire state will be used as the output of the system. -The `io_predprey` system can now be simulated to obtain the open loop dynamics -of the system: +The `predprey` system can now be simulated to obtain the open loop +dynamics of the system: -.. code-block:: python +.. testcode:: predprey - X0 = [25, 20] # Initial H, L - T = np.linspace(0, 70, 500) # Simulation 70 years of time + X0 = [25, 20] # Initial H, L + timepts = np.linspace(0, 70, 500) # Simulation 70 years of time - # Simulate the system - t, y = ct.input_output_response(io_predprey, T, 0, X0) + # Simulate the system and plots the results + resp = ct.input_output_response(predprey, timepts, 0, X0) + resp.plot(plot_inputs=False, overlay_signals=True, legend_loc='upper left') - # Plot the response - plt.figure(1) - plt.plot(t, y[0]) - plt.plot(t, y[1]) - plt.legend(['Hare', 'Lynx']) - plt.show(block=False) +.. testcode:: predprey + :hide: + + plt.savefig('figures/iosys-predprey-open.png') + +.. image:: figures/iosys-predprey-open.png + :align: center We can also create a feedback controller to stabilize a desired population of the system. We begin by finding the (unstable) equilibrium point for the system and computing the linearization about that point. -.. code-block:: python +.. testcode:: predprey - eqpt = ct.find_eqpt(io_predprey, X0, 0) - xeq = eqpt[0] # choose the nonzero equilibrium point - lin_predprey = ct.linearize(io_predprey, xeq, 0) + xeq, ueq = ct.find_operating_point(predprey, X0, 0) + lin_predprey = ct.linearize(predprey, xeq, ueq) We next compute a controller that stabilizes the equilibrium point using eigenvalue placement and computing the feedforward gain using the number of -lynxes as the desired output (following FBS2e, Example 7.5): +lynxes as the desired output (following `Feedback Systems +`_, Example 7.5): -.. code-block:: python +.. testcode:: predprey K = ct.place(lin_predprey.A, lin_predprey.B, [-0.1, -0.2]) A, B = lin_predprey.A, lin_predprey.B @@ -141,106 +231,120 @@ 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 :func:`~control.nlsys` with no update function: +constructed using :func:`nlsys` with no update function: -.. code-block:: python +.. testcode:: predprey - 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') + def output(t, x, u, params): + Ld, x, ye = u[0], u[1:], xeq[1] + return ueq - K @ (x - xeq) + kf * (Ld - ye) -The input to the controller is `u`, consisting of the vector of hare and lynx -populations followed by the desired lynx population. + controller = ct.nlsys( + None, output, + inputs=['Ld', 'H', 'L'], outputs=1, name='control') + +The input to the controller is `u`, consisting of the desired lynx +population followed by the vector of hare and lynx populations. To connect the controller to the predatory-prey model, we use the -:func:`~control.interconnect` function: +:func:`interconnect` function: -.. code-block:: python +.. testcode:: predprey - io_closed = ct.interconnect( - [io_predprey, io_controller], # systems + closed = ct.interconnect( + [predprey, controller], # systems connections=[ ['predprey.u', 'control.y[0]'], - ['control.u1', 'predprey.H'], - ['control.u2', 'predprey.L'] + ['control.H', 'predprey.Hares'], + ['control.L', 'predprey.Lynxes'] ], - inplist=['control.Ld'], - outlist=['predprey.H', 'predprey.L', 'control.y[0]'] + inplist=['control.Ld'], inputs='Ld', + outlist=['predprey.Hares', 'predprey.Lynxes', 'control.y[0]'], + outputs=['Hares', 'Lynxes', 'u0'], name='closed loop' ) Finally, we simulate the closed loop system: -.. code-block:: python +.. testcode:: predprey # Simulate the system - t, y = ct.input_output_response(io_closed, T, 30, [15, 20]) + Ld = 30 + resp = ct.input_output_response( + closed, timepts, inputs=Ld, initial_state=[15, 20]) + cplt = resp.plot( + plot_inputs=False, overlay_signals=True, legend_loc='upper left') + cplt.axes[0, 0].axhline(Ld, linestyle='--', color='black') + +.. testcode:: predprey + :hide: - # Plot the response - plt.figure(2) - plt.subplot(2, 1, 1) - plt.plot(t, y[0]) - plt.plot(t, y[1]) - plt.legend(['Hare', 'Lynx']) - plt.subplot(2, 1, 2) - plt.plot(t, y[2]) - plt.legend(['input']) - plt.show(block=False) + plt.savefig('figures/iosys-predprey-closed.png') -Additional features -=================== +.. image:: figures/iosys-predprey-closed.png + :align: center + +This example shows the standard operations that would be used to build +up an interconnected nonlinear system. The I/O systems module has a +number of other features that can be used to simplify the creation and +use of interconnected input/output systems. -The I/O systems module has a number of other features that can be used to -simplify the creation of interconnected input/output systems. Summing junction ---------------- -The :func:`~control.summing_junction` function can be used to create an +The :func:`summing_junction` function can be used to create an input/output system that takes the sum of an arbitrary number of inputs. For example, to create an input/output system that takes the sum of three inputs, use the command -.. code-block:: python +.. testcode:: summing sumblk = ct.summing_junction(3) -By default, the name of the inputs will be of the form ``u[i]`` and the output -will be ``y``. This can be changed by giving an explicit list of names:: +By default, the name of the inputs will be of the form 'u[i]' and the output +will be 'y'. This can be changed by giving an explicit list of names: + +.. testcode:: summing sumblk = ct.summing_junction(inputs=['a', 'b', 'c'], output='d') -A more typical usage would be to define an input/output system that compares a -reference signal to the output of the process and computes the error:: +A more typical usage would be to define an input/output system that +compares a reference signal to the output of the process and computes +the error: + +.. testcode:: summing sumblk = ct.summing_junction(inputs=['r', '-y'], output='e') -Note the use of the minus sign as a means of setting the sign of the input 'y' -to be negative instead of positive. +Note the use of the minus sign as a means of setting the sign of the +input 'y' to be negative instead of positive. It is also possible to define "vector" summing blocks that take -multi-dimensional inputs and produce a multi-dimensional output. For example, -the command +multi-dimensional inputs and produce a multi-dimensional output. For +example, the command -.. code-block:: python +.. testcode:: summing sumblk = ct.summing_junction(inputs=['r', '-y'], output='e', dimension=2) will produce an input/output block that implements ``e[0] = r[0] - y[0]`` and ``e[1] = r[1] - y[1]``. + Automatic connections using signal names ---------------------------------------- -The :func:`~control.interconnect` function allows the interconnection of -multiple systems by using signal names of the form ``sys.signal``. In many +The :func:`interconnect` function allows the interconnection of +multiple systems by using signal names of the form 'sys.signal'. In many situations, it can be cumbersome to explicitly connect all of the appropriate -inputs and outputs. As an alternative, if the ``connections`` keyword is -omitted, the :func:`~control.interconnect` function will connect all signals +inputs and outputs. As an alternative, if the `connections` keyword is +omitted, the :func:`interconnect` function will connect all signals of the same name to each other. This can allow for simplified methods of 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:: +:func:`summing_junction` function. For example, the following code +will create a unity gain, negative feedback system: + +.. testcode:: autoconnect P = ct.tf([1], [1, 0], inputs='u', outputs='y') C = ct.tf([10], [1, 1], inputs='e', outputs='u') @@ -250,21 +354,104 @@ 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 a signal -listed in ``inplist`` or ``outlist`` (corresponding to the inputs and outputs +The :func:`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 unconnected (so be careful!). + +Vector element processing +-------------------------- + +Several I/O system commands perform processing of vector elements +(such as initial states or input vectors) and broadcast these to the +proper shape. + +For static elements, such as the initial state in a simulation or the +nominal state and input for a linearization, the following processing +is done: + +* Scalars are automatically converted to a vector of the appropriate + size consisting of the scalar value. This is commonly used when + specifying the origin ('0') or a step input ('1'). + +* Lists of values are concatenated into a single vector. This is + often used when you have an interconnected system and you need to + specify the initial condition or input value for each subsystem + (e.g., [X1eq, X2eq, ...]). + +* Vector elements are zero padded to the required length. If you + specify only a portion of the values for states or inputs, the + remaining values are taken as zero. (If the final element in the + given vector is non-zero, a warning is issued.) + +Similar processing is done for input time series, used for the +:func:`input_output_response` and +:func:`forced_response` commands, with the following +additional feature: + +* Time series elements are broadcast to match the number of time points + specified. If a list of time series and static elements are given (as a + list), static elements are broadcast to the proper number of time points, + and the overall list of elements concatenated to provide the full input + vector. + +As an example, suppose we have an interconnected system consisting of three +subsystems, a controlled process, an estimator, and a (static) controller:: + + proc = ct.nlsys(..., + states=2, inputs=['u1', 'u2', 'd'], outputs='y') + estim = ct.nlsys(..., + states=2, inputs='y', outputs=['xhat[0]', 'xhat[1]') + ctrl = ct.nlsys(..., + states=0, inputs=['r', 'xhat[0]', 'xhat[1]'], outputs=['u1', 'u2']) + + clsys = ct.interconnect( + [proc, estim, ctrl], inputs=['r', 'd'], outputs=['y', 'u1', 'u2']) + +To linearize the system around the origin, we can utilize the scalar +processing feature of vector elements:: + + P = proc.linearize(0, 0) + +In this command, the states and the inputs are broadcast to the size of the +state and input vectors, respectively. + +If we want to linearize the closed loop system around a process state +`x0` (with two elements) and an estimator state `0` (for both states), +we can use the list processing feature:: + + H = clsys.linearize([x0, 0], 0) + +Note that this also utilizes the zero-padding functionality, since the +second argument in the list ``[x0, 0]`` is a scalar and so the vector +``[x0, 0]`` only has three elements instead of the required four. + +To run an input/output simulation with a sinusoidal signal for the first +input, a constant for the second input, and no external disturbance, we can +use the list processing feature combined with time series broadcasting:: + + timepts = np.linspace(0, 10) + u1 = np.sin(timepts) + u2 = 1 + resp = ct.input_output_response(clsys, timepts, [u1, u2, 0]) + +In this command, the second and third arguments will be broadcast to match +the number of time points. + + 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 +:func:`interconnect` has a variety of other mechanisms available for specifying signal names. The following forms are recognized for the `connections`, `inplist`, and `outlist` -parameters:: +parameters: + +.. code-block:: text (subsys, index, gain) tuple form with integer indices ('sysname', 'signal', gain) tuple form with name lookup @@ -278,40 +465,50 @@ parameters:: 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` +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 +Using these various forms can simplify 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:: +'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]']) +.. testcode:: interconnect + + P = ct.ss( + np.diag([-1, -2, -3, -4]), np.eye(4), np.eye(4), 0, name='P', + 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`:: +takes the (2-dimensional) error 'e' and outputs and control signal 'u': + +.. testcode:: interconnect - C = ct.rss(4, 2, 2, name='C', input_prefix='e', output_prefix='u') + C = ct.ss( + [], [], [], [[3, 0], [0, 4]], + 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`:: +the reference input 'r' and the measured output 'y': + +.. testcode:: interconnect 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`. +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:: +most explicit would specify every signal: + +.. testcode:: interconnect clsys1 = ct.interconnect( [C, P, sumblk], @@ -324,7 +521,9 @@ 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: + +.. testcode:: interconnect clsys2 = ct.interconnect( [C, P, sumblk], @@ -338,7 +537,9 @@ This connections can be simplified using signal ranges:: ) An even simpler form can be used by omitting the range specification -when all signals with the same prefix are used:: +when all signals with the same prefix are used: + +.. testcode:: interconnect clsys3 = ct.interconnect( [C, P, sumblk], @@ -347,17 +548,21 @@ 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: + +.. testcode:: interconnect clsys4 = ct.interconnect( - [C, P, sumblk], + [C, P, sumblk], name='clsys4', 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:: +And finally, since we have named the signals throughout the system in a +consistent way, we could let :func:`interconnect` do all of the +work: + +.. testcode:: interconnect clsys5 = ct.interconnect( [C, P, sumblk], inplist=['sum.r', 'P.v'], outlist=['P', 'C.u'] @@ -365,17 +570,90 @@ work:: 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 +`debug` = True when calling :func:`interconnect` prints out information about how the arguments are processed that may be helpful in understanding what is going wrong. +If the system is constructed successfully but the system does not seem +to behave correctly, the `print` function can be used to show the +interconnections and outputs: + +.. doctest:: interconnect + + >>> print(clsys4) + : clsys4 + Inputs (4): ['u[0]', 'u[1]', 'u[2]', 'u[3]'] + Outputs (6): ['y[0]', 'y[1]', 'y[2]', 'y[3]', 'y[4]', 'y[5]'] + States (4): ['P_x[0]', 'P_x[1]', 'P_x[2]', 'P_x[3]'] + + Subsystems (3): + * ['u[0]', 'u[1]'], dt=None> + * ['y[0]', 'y[1]', 'z[0]', + 'z[1]']> + * ['e[0]', 'e[1]'], + dt=None> + + Connections: + * C.e[0] <- sum.e[0] + * C.e[1] <- sum.e[1] + * P.u[0] <- C.u[0] + * P.u[1] <- C.u[1] + * P.v[0] <- u[2] + * P.v[1] <- u[3] + * sum.r[0] <- u[0] + * sum.r[1] <- u[1] + * sum.y[0] <- P.y[0] + * sum.y[1] <- P.y[1] + + Outputs: + * y[0] <- P.y[0] + * y[1] <- P.y[1] + * y[2] <- P.z[0] + * y[3] <- P.z[1] + * y[4] <- C.u[0] + * y[5] <- C.u[1] + + A = [[-4. 0. 0. 0.] + [ 0. -6. 0. 0.] + [ 0. 0. -3. 0.] + [ 0. 0. 0. -4.]] + + B = [[3. 0. 0. 0.] + [0. 4. 0. 0.] + [0. 0. 1. 0.] + [0. 0. 0. 1.]] + + C = [[ 1. 0. 0. 0.] + [ 0. 1. 0. 0.] + [ 0. 0. 1. 0.] + [ 0. 0. 0. 1.] + [-3. 0. 0. 0.] + [ 0. -4. 0. 0.]] + + D = [[0. 0. 0. 0.] + [0. 0. 0. 0.] + [0. 0. 0. 0.] + [0. 0. 0. 0.] + [3. 0. 0. 0.] + [0. 4. 0. 0.]] + + Automated creation of state feedback systems --------------------------------------------- +============================================ + +A common architecture in state space feedback control is to use a +linear control law to stabilize a system around a trajectory. The +python-control package can create input/output systems that help +implement this architecture. + + +Standard design patterns +------------------------ -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 +The :func:`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:: @@ -385,30 +663,191 @@ 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 +where :code:`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 an `InputOutputSystem` is passed instead of the gain `K`, the error +e = x - xd is passed to the system and the output is used as the +feedback compensation term. + +The above design pattern is referred to as the "trajectory generation" +('trajgen') pattern, since it assumes that the input to the controller is a +feasible trajectory :math:`(x_\text{d}, u_\text{d})`. Alternatively, a +controller using the "reference gain" pattern can be created, which +implements a state feedback controller of the form + +.. math:: + + u = k_\text{f}\, r - K x, + +where :math:`r` is the reference input and :math:`k_\text{f}` is the +feedforward gain (normally chosen so that the steady state output +:math:`y_\text{ss}` will be equal to :math:`r`). + +A reference gain controller can be created with the command:: + + ctrl, clsys = ct.create_statefbk_iosystem( + sys, K, kf, feedfwd_pattern='refgain') + +This reference gain design pattern is described in more detail in +`Feedback Systems `_, Section 7.2 (Stabilization +by State Feedback) and the trajectory generation design pattern is +described in Section 8.5 (State Space Controller Design). + + +Adding state estimation +----------------------- + 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 +where `estim` is a 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. +An estimator for a linear system should use the process inputs +:math:`u` and outputs :math:`y` to generate an estimate :math:`\hat x` +of the process state. An optimal estimator (Kalman) filter can be +constructed using the :func:`create_estimator_iosystem` command:: + + estim = ct.create_estimator_iosystem(sys, QN, RN) + +where `QN` is covariance matrix for the process disturbances (assumed +by default to enter at the process inputs) and `RN` is the covariance +matrix for the measurement noise. + +As an example, consider a simple double integrator linear system with +an LQR controller: + +.. testsetup:: statefbk + + import numpy as np + import control as ct + +.. testcode:: statefbk + + # System + sys = ct.ss([[0, 1], [0, 0]], [[0], [1]], [[1, 0]], 0, name='sys') + + # Controller + K, _, _ = ct.lqr(sys, np.eye(2), np.eye(1)) + +We construct an estimator for the system assuming disturbance and +noise intensity of 0.01: + +.. testcode:: statefbk + + # Estimator + estim = ct.create_estimator_iosystem(sys, 0.01, 0.01, name='estim') + +resulting in the following dynamics: + +.. doctest:: statefbk + + >>> print(estim) + : estim + Inputs (2): ['y[0]', 'u[0]'] + Outputs (2): ['xhat[0]', 'xhat[1]'] + States (6): ['xhat[0]', 'xhat[1]', 'P[0,0]', 'P[0,1]', 'P[1,0]', 'P[1,1]'] + + Update: ._estim_update at 0x...> + Output: ._estim_output at 0x...> + +The estimator is a nonlinear system with states consisting of the +estimates of the process states (:math:`\hat x`) and the entries of +the covariance of the state error (:math:`P`). The estimator dynamics +are given by + +.. math:: + + \dot {\hat x} &= A \hat x + B u - L (C \hat x - y), \\ + \dot P &= A P + P A^\mathsf{T} + - P C^\mathsf{T} Q_w^{-1} C P + F Q_v F^\mathsf{T}, + +where :math:`L` is the estimator gain and :math:`F` is the mapping +from disturbance signals to the state dynamics (see +`create_estimator_iosystem` and `Optimization-Based Control +`_, Chapter 6 [Kalman Filtering] for more +detailed information). + +We can now create the entire closed loop system using the estimated state: + +.. testcode:: statefbk + + # Estimation-based controller + ctrl, clsys = ct.create_statefbk_iosystem( + sys, K, estimator=estim, name='ctrl') + +The resulting controller is given by + +.. doctest:: statefbk + + >>> print(ctrl) + : ctrl + Inputs (5): ['xd[0]', 'xd[1]', 'ud[0]', 'xhat[0]', 'xhat[1]'] + Outputs (1): ['u[0]'] + States (0): [] + + A = [] + + B = [] + + C = [] + + D = [[ 1. 1.73205081 1. -1. -1.73205081]] + +Note that controller input signals have automatically been named to +match the estimator output signals. The full closed loop system is +given by + +.. doctest:: statefbk + + >>> print(clsys) + : sys_ctrl + Inputs (3): ['xd[0]', 'xd[1]', 'ud[0]'] + Outputs (2): ['y[0]', 'u[0]'] + States (8): ['sys_x[0]', 'sys_x[1]', 'estim_xhat[0]', 'estim_xhat[1]', 'estim_P[0,0]', 'estim_P[0,1]', 'estim_P[1,0]', 'estim_P[1,1]'] + + Subsystems (3): + * ['y[0]']> + * + ['u[0]']> + * ['xhat[0]', 'xhat[1]']> + + Connections: + * sys.u[0] <- ctrl.u[0] + * ctrl.xd[0] <- xd[0] + * ctrl.xd[1] <- xd[1] + * ctrl.ud[0] <- ud[0] + * ctrl.xhat[0] <- estim.xhat[0] + * ctrl.xhat[1] <- estim.xhat[1] + * estim.y[0] <- sys.y[0] + * estim.u[0] <- ctrl.u[0] + + Outputs: + * y[0] <- sys.y[0] + * u[0] <- ctrl.u[0] + +We see that the state of the full closed loop system consists of the +process states as well as the estimated states and the entries of the +covariance matrix. + +Adding integral action +---------------------- + Integral action can be included using the `integral_action` keyword. -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 -proportional gains :math:`K_\text{p}` and integral gains -:math:`K_\text{i}` with +The value of this keyword should be a matrix (ndarray). 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:: @@ -418,20 +857,112 @@ and the control action will be given by .. math:: - u = u_\text{d} - K\text{p} (x - x_\text{d}) - + u = u_\text{d} - K_\text{p} (x - x_\text{d}) - K_\text{i} \int C (x - x_\text{d}) dt. -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 +.. TODO: 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 -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:: +As an example, consider the servo-mechanism model `servomech` +described in :ref:`creating nonlinear models `. +We construct a state space controller by linearizing the system around +an equilibrium point, augmenting the model with an integrator, and +computing a state feedback that optimizes a quadratic cost function: + +.. testsetup:: integral_action + + import numpy as np + import control as ct + + # Parameter values + servomech_params = { + 'J': 100, # Moment of inertia of the motor + 'b': 10, # Angular damping of the arm + 'k': 1, # Spring constant + 'r': 1, # Location of spring contact on arm + 'l': 2, # Distance to the read head + } + + # State derivative + def servomech_update(t, x, u, params): + # Extract the configuration and velocity variables from the state vector + theta = x[0] # Angular position of the disk drive arm + thetadot = x[1] # Angular velocity of the disk drive arm + tau = u[0] # Torque applied at the base of the arm + + # Get the parameter values + J, b, k, r = map(params.get, ['J', 'b', 'k', 'r']) + + # Compute the angular acceleration + dthetadot = 1/J * ( + -b * thetadot - k * r * np.sin(theta) + tau) + + # Return the state update law + return np.array([thetadot, dthetadot]) + +.. testcode:: integral_action + + # System dynamics (with full state output) + servomech = ct.nlsys( + servomech_update, None, name='servomech', + params=servomech_params, states=['theta', 'thdot'], + outputs=['theta', 'thdot'], inputs=['tau']) + + # Find operating point with output angle pi/4 + xeq, ueq = ct.find_operating_point( + servomech, [0, 0], 0, y0=[np.pi/4, 0], iy=0) + + # Compute linearization and augment with an integrator on angle + A, B, _, _ = ct.ssdata(servomech.linearize(xeq, ueq)) + C = np.array([[1, 0]]) # theta + A_aug = np.block([ + [A, np.zeros((2, 1))], + [C, np.zeros((1, 1))] + ]) + B_aug = np.block([[B], [0]]) + + # Compute LQR controller + K, _, _ = ct.lqr(A_aug, B_aug, np.diag([1, 1, 0.1]), 1) + + # Create controller with integral action + ctrl, _ = ct.create_statefbk_iosystem( + servomech, K, integral_action=C, name='ctrl') + +The resulting controller now has internal dynamics corresponding to +the integral action: + +.. doctest:: integral_action + + >>> print(ctrl) + : ctrl + Inputs (5): ['xd[0]', 'xd[1]', 'ud[0]', 'theta', 'thdot'] + Outputs (1): ['tau'] + States (1): ['x[0]'] + + A = [[0.]] + + B = [[-1. 0. 0. 1. 0.]] + + C = [[-0.31622777]] + + D = [[ 3.76244547 19.21453568 1. -3.76244547 -19.21453568]] + + +Adding gain scheduling +---------------------- + +Finally, for the trajectory generation design pattern, gain scheduling +on the desired state :math:`x_\text{d}`, desired input +:math:`u_\text{d}`, or current state :math:`x` 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]) @@ -445,33 +976,79 @@ controller implemented in this case has the form 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). +where :math:`\mu` represents the scheduling variables. See :ref:`gain +scheduled control for vehicle steering ` 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. +As an example, consider the following simple model of a mobile robot +("unicycle" model), which has dynamics given by +.. math:: -Module classes and functions -============================ + \frac{dx}{dt} &= v \cos\theta \\ + \frac{dy}{dt} &= v \sin\theta \\ + \frac{d\theta}{dt} &= \omega -.. autosummary:: - :toctree: generated/ - :template: custom-class-template.rst +where :math:`x`, :math:`y` is the position of the robot in the plane, +:math:`\theta` is the angle with respect to the :math:`x` axis, +:math:`v` is the commanded velocity, and :math:`\omega` is the +commanded angular rate. - ~control.InputOutputSystem - ~control.InterconnectedSystem - ~control.LinearICSystem - ~control.NonlinearIOSystem +We define the nonlinear dynamics as follows: -.. autosummary:: - :toctree: generated/ - - ~control.find_eqpt - ~control.interconnect - ~control.input_output_response - ~control.linearize - ~control.nlsys - ~control.summing_junction +.. testsetup:: gainsched + + import itertools + import numpy as np + import control as ct + +.. testcode:: gainsched + + def unicycle_update(t, x, u, params): + return np.array([u[0] * np.cos(x[2]), u[0] * np.sin(x[2]), u[1]]) + + unicycle = ct.nlsys( + unicycle_update, None, name='unicycle', states=3, + inputs=['v', 'omega'], outputs=['x', 'y', 'theta']) + +We construct a gain-scheduled controller by linearizing the dynamics +about a range of different speeds :math:`v` and angles :math:`\theta`: + +.. testcode:: gainsched + + # Speeds and angles at which to compute the gains + speeds = [1, 5, 10] + angles = np.linspace(0, np.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 = [np.array(ct.lqr(unicycle.linearize( + [0, 0, angle], [speed, 0]), Q, R)[0]) for speed, angle in points] + + # Create gain scheduled controller + ctrl, clsys = ct.create_statefbk_iosystem( + unicycle, (gains, points), gainsched_indices=['v_d', 'th_d'], name='ctrl', + inputs=['x_d', 'y_d', 'th_d', 'v_d', 'omega_d', 'x', 'y', 'theta']) + +The resulting controller has the following structure: + +.. doctest:: gainsched + + >>> print(ctrl) + : ctrl + Inputs (8): ['x_d', 'y_d', 'th_d', 'v_d', 'omega_d', 'x', 'y', 'theta'] + Outputs (2): ['v', 'omega'] + States (0): [] + + Update: ._control_update at 0x...> + Output: ._control_output at 0x...> + +This is a static, nonlinear controller, with the gains scheduled based +on the values of :math:`v_\text{d}` (index 3) and +:math:`\theta_\text{d}` (index 2). + +Integral action and state estimation can also be used with gain +scheduled controllers. diff --git a/doc/kincar-flatsys.py b/doc/kincar-flatsys.py deleted file mode 120000 index 7ef7d684e..000000000 --- a/doc/kincar-flatsys.py +++ /dev/null @@ -1 +0,0 @@ -../examples/kincar-flatsys.py \ No newline at end of file diff --git a/doc/kincar-fusion.ipynb b/doc/kincar-fusion.ipynb deleted file mode 120000 index def600898..000000000 --- a/doc/kincar-fusion.ipynb +++ /dev/null @@ -1 +0,0 @@ -../examples/kincar-fusion.ipynb \ No newline at end of file diff --git a/doc/linear.rst b/doc/linear.rst new file mode 100644 index 000000000..a9960feca --- /dev/null +++ b/doc/linear.rst @@ -0,0 +1,600 @@ +.. currentmodule:: control + +******************************************** +Linear System Modeling, Analysis, and Design +******************************************** + +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 are provided. + + +Creating LTI Systems +==================== + +LTI systems are created using "factory functions" that accept the +parameters required to define the system. Three factory functions are +available for LTI systems: + +.. autosummary:: + + ss + tf + frd + +Each of these functions returns an object of an appropriate class to +represent the system. + + +State space systems +------------------- + +The :class:`StateSpace` class is used to represent state-space realizations +of linear time-invariant (LTI) systems: + +.. math:: + + \frac{dx}{dt} &= A x + B u \\ + y &= C x + D u + +where :math:`u` is the input, :math:`y` is the output, and :math:`x` +is the state. All vectors and matrices must be real-valued. + +To create a state space system, use the :func:`ss` function: + +.. testsetup:: statesp + + A = np.diag([-1, -2]) + B = np.eye(2) + C = np.eye(1, 2) + D = np.zeros((1, 2)) + +.. testcode:: statesp + + sys = ct.ss(A, B, C, D) + +State space systems can be manipulated using standard arithmetic +operations as well as the :func:`feedback`, :func:`parallel`, and +:func:`series` function. A full list of "block diagram algebra" +functions can be found in the :ref:`interconnections-ref` section of +the :ref:`function-ref`. + +Systems, inputs, outputs, and states can be given labels to allow more +customized access to system information: + +.. testcode:: statesp + + sys = ct.ss( + A, B, C, D, name='sys', + states=['x1', 'x2'], inputs=['u1', 'u2'], outputs=['y']) + +The :func:`rss` function can be used to create a random state space +system with a desired number or inputs, outputs, and states: + +.. testcode:: statesp + + sys = ct.rss(states=4, outputs=1, inputs=1, strictly_proper=True) + +The `states`, `inputs`, and `output` parameters can also be +given as lists of strings to create named signals. All systems +generated by :func:`rss` are stable. + + +Transfer functions +------------------ + +The :class:`TransferFunction` class is used to represent input/output +transfer functions + +.. math:: + + G(s) = \frac{\text{num}(s)}{\text{den}(s)} + = \frac{a_0 s^m + a_1 s^{m-1} + \cdots + a_m} + {b_0 s^n + b_1 s^{n-1} + \cdots + b_n}, + +where :math:`n` is greater than or equal to :math:`m` for a proper +transfer function. Improper transfer functions are also allowed. All +coefficients must be real-valued. + +To create a transfer function, use the :func:`tf` function:: + + num = [a0, a1, ..., am] + den = [b0, b1, ..., bn] + + sys = ct.tf(num, den) + +The system name as well as input and output labels can be specified in +the same way as state space systems: + +.. testsetup:: xferfcn + + num = [1, 2] + den = [3, 4] + +.. testcode:: xferfcn + + sys = ct.tf(num, den, name='sys', inputs=['u'], outputs=['y']) + +Transfer functions can be manipulated using standard arithmetic +operations as well as the :func:`feedback`, :func:`parallel`, and +:func:`series` functions. A full list of "block diagram algebra" +functions can be found in the :ref:`interconnections-ref` section of the +:ref:`function-ref`. + +To aid in the construction of transfer functions, the :func:`tf` +factory function can used to create transfer function corresponding +to the derivative or difference operator: + +.. testcode:: xferfcn + + s = ct.tf('s') + +Standard algebraic operations can be used to construct more +complicated transfer functions: + +.. testcode:: xferfcn + + sys = 5 * (s + 10)/(s**2 + 2*s + 1) + +Transfer functions can be evaluated at a point in the complex plane by +calling the transfer function object: + +.. testcode:: xferfcn + + val = sys(1 + 0.5j) + +Discrete time transfer functions (described in more detail below) can +be created using ``z = ct.tf('z')``. + + +Frequency response data (FRD) systems +------------------------------------- + +The :class:`FrequencyResponseData` (FRD) class is used to represent +systems in frequency response data form. The main data attributes are +`omega` and `frdata`, where `omega` is a 1D array of frequencies (in +rad/sec) and `frdata` is the (complex-value) value of the transfer +function at each frequency point. + +FRD systems can be created with the :func:`frd` factory function: + +.. testsetup:: frdata + + sys_lti = ct.rss(2, 2, 2) + lti_resp = ct.frequency_response(sys_lti) + frdata = lti_resp.complex + omega = lti_resp.frequency + +.. testcode:: frdata + + sys = ct.frd(frdata, omega) + +FRD systems can also be created by evaluating an LTI system at a given +set of frequencies: + +.. testcode:: frdata + + frd_sys = ct.frd(sys_lti, omega) + +Frequency response data systems have a somewhat more limited set of +functions that are available, although all of the standard algebraic +manipulations can be performed. + +The FRD class is also used as the return type for the +:func:`frequency_response` function. This object can be assigned to a +tuple using: + +.. testcode:: frdata + + response = ct.frequency_response(sys_lti) + 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. + +Frequency response properties are also available as named attributes of +the `response` object: `response.magnitude`, `response.phase`, +and `response.response` (for the complex response). + + +Multi-input, multi-output (MIMO) systems +---------------------------------------- + +Multi-input, multi-output (MIMO) systems are created by providing +parameters of the appropriate dimensions to the relevant factory +function. For state space systems, the input matrix `B`, output +matrix `C`, and direct term `D` should be 2D matrices of the +appropriate shape. For transfer functions, this is done by providing +a 2D list of numerator and denominator polynomials to the :func:`tf` +function, e.g.: + +.. testsetup:: mimo + + sys = ct.tf(ct.rss(4, 2, 2)) + [[num11, num12], [num21, num22]] = sys.num_list + [[den11, den12], [den21, den22]] = sys.den_list + + A, B, C, D = ct.ssdata(ct.rss(4, 3, 2)) # 3 output, 2 input + +.. testcode:: mimo + + sys = ct.tf( + [[num11, num12], [num21, num22]], + [[den11, den12], [den21, den22]]) + +Similarly, MIMO frequency response data (FRD) systems are created by +providing the :func:`frd` function with a 3D array of response +values,with the first dimension corresponding to the output index of +the system, the second dimension corresponding to the input index, and +the 3rd dimension corresponding to the frequency points in `omega`. + +Signal names for MIMO systems are specified using lists of labels: + +.. testcode:: mimo + + sys = ct.ss(A, B, C, D, inputs=['u1', 'u2'], outputs=['y1', 'y2', 'y3']) + +Signals that are not given explicit labels are given labels of the +form 's[i]' where the default value of 's' is 'x' for states, 'u' for +inputs, and 'y' for outputs, and 'i' ranges over the dimension of the +signal (starting at 0). + +Subsets of input/output pairs for LTI systems can be obtained by +indexing the system using either numerical indices (including slices) +or signal names: + +.. testcode:: mimo + + subsys = sys[[0, 2], 0:2] + subsys = sys[['y1', 'y3'], ['u1', 'u2']] + +Signal names for an indexed subsystem are preserved from the original +system and the subsystem name is set according to the values of +`config.defaults['iosys.indexed_system_name_prefix']` and +`config.defaults['iosys.indexed_system_name_suffix']` (see +:ref:`package-configuration-parameters` for more information). The +default subsystem name is the original system name with '$indexed' +appended. + +For FRD objects, the frequency response properties for MIMO systems +can be accessed using the names of the inputs and outputs: + +.. testcode:: frdata + + response.magnitude['y[0]', 'u[1]'] + +where the signal names are based on the system that generated the frequency +response. + +.. note:: If a system is single-input, single-output (SISO), + `magnitude` and `phase` default to 1D arrays, indexed by + frequency. If the system is not SISO or `squeeze` is set to + False generating the response, the array is 3D, indexed by + the output, input, and frequency. If `squeeze` is True for + a MIMO system then single-dimensional axes are removed. The + processing of the `squeeze` keyword can be changed by + calling the response function with a new argument:: + + mag, phase, omega = response(squeeze=False) + +.. note:: The `frdata` data member is stored as a NumPy array and + cannot be accessed with signal names. Use + `response.complex` to access the complex frequency response + using signal names. + + +.. _discrete_time_systems: + +Discrete Time Systems +===================== + +A discrete-time system is created by specifying a nonzero "timebase" +`dt` when the system is constructed: + +.. testsetup:: dtime + + A, B, C, D = ct.ssdata(ct.rss(2, 1, 1)) + num, den = ct.tfdata(ct.rss(2, 1, 1)) + dt = 0.1 + +.. testcode:: dtime + + sys_ss = ct.ss(A, B, C, D, dt) + sys_tf = ct.tf(num, den, dt) + +The timebase argument is interpreted as follows: + +* `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 (see below) + +Systems must have compatible timebases in order to be combined. A +discrete-time system with unspecified sampling time (`dt` = True) can +be combined with a system having a specified sampling time; the result +will be a discrete-time system with the sample time of the other +system. Similarly, a system with timebase None can be combined with a +system having a specified timebase; the result will have the timebase +of the other 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. The default value +of `dt` can be changed by changing the value of +`config.defaults['control.default_dt']`. + +Functions operating on LTI systems will take into account whether a +system is continuous time or discrete time when carrying out operations +that depend on this difference. For example, the :func:`rss` function +will place all system eigenvalues within the unit circle when called +using `dt` corresponding to a discrete-time system: + +.. testsetup:: + + import random + random.seed(117) + np.random.seed(117) + +.. doctest:: + + >>> sys = ct.rss(2, 1, 1, dt=True) + >>> sys.poles() + array([-0.53807661+0.j, 0.86313342+0.j]) + + +.. include:: statesp.rst + +.. include:: xferfcn.rst + + +Model Conversion and Reduction +============================== + +A variety of functions are available to manipulate LTI systems, +including functions for converting between state space and frequency +domain, sampling systems in time and frequency domain, and creating +reduced order models. + + +Conversion between representations +---------------------------------- + +LTI systems can be converted between representations either by calling +the factory function for the desired data type using the original +system as the sole argument or using the explicit conversion functions +:func:`ss2tf` and :func:`tf2ss`. In most cases these types of +explicit conversions are not necessary, since functions designed to +operate on LTI systems will work on any subclass. + +To explicitly convert a state space system into a transfer function +representation, the state space system can be passed as an argument to +the :func:`tf` factory functions: + +.. testcode:: convert + + sys_ss = ct.rss(4, 2, 2, name='sys_ss') + sys_tf = ct.tf(sys_ss, name='sys_tf') + +The :func:`ss2tf` function can also be used, passing either the state +space system or the matrices that represent the state space systems: + +.. testcode:: convert + :hide: + + A, B, C, D = ct.ssdata(sys_ss) + +.. testcode:: convert + + sys_tf = ct.ss2tf(A, B, C, D) + +In either form, system and signal names can be changed by passing the +appropriate keyword arguments. + +Conversion of transfer functions to state space form is also possible: + +.. testcode:: convert + :hide: + + num, den = ct.tfdata(sys_tf) + +.. testcode:: convert + + sys_ss = ct.ss(sys_tf) + sys_ss = ct.tf2ss(sys_tf) + sys_ss = ct.tf2ss(num, den) + +.. note:: State space realizations of transfer functions are not + unique and the state space representation obtained via these + functions may not match realizations obtained by other + algorithms. + + +Time sampling +------------- + +Continuous time systems can be converted to discrete-time systems using +the :func:`sample_system` function and specifying a sampling time: + +.. doctest:: + + >>> sys_ct = ct.rss(4, 2, 2, name='sys') + >>> sys_dt = ct.sample_system(sys_ct, 0.1, method='bilinear') + >>> print(sys_dt) + : sys$sampled + Inputs (2): ['u[0]', 'u[1]'] + Outputs (2): ['y[0]', 'y[1]'] + States (4): ['x[0]', 'x[1]', 'x[2]', 'x[3]'] + dt = 0.1 + + A = [[-0.79324497 -0.51484336 -1.09297036 -0.05363047] + [-3.5428559 -0.9340972 -1.85691838 -0.74843144] + [ 3.90565206 1.9409475 3.21968314 0.48558594] + [ 3.47315264 1.55258121 2.09562768 1.25466845]] + + B = [[-0.01098544 0.00485652] + [-0.41579876 0.02204956] + [ 0.45553908 -0.02459682] + [ 0.50510046 -0.05448362]] + + C = [[-2.74490135 -0.3064149 -2.27909612 -0.64793559] + [ 2.56376145 1.09663807 2.4332544 0.30768752]] + + D = [[-0.34680884 0.02138098] + [ 0.29124186 -0.01476461]] + +Note that the system name for the discrete-time system is the name of +the original system with the string '$sampled' appended. + +Discrete time systems can also be created using the +:func:`StateSpace.sample` or :func:`TransferFunction.sample` methods +applied directly to the system:: + + sys_dt = sys_ct.sample(0.1) + + +Frequency sampling +------------------ + +Transfer functions can be sampled at a selected set of frequencies to +obtain a frequency response data representation of a system by calling +the :func:`frd` factory function with an LTI system and an +array of frequencies: + +.. doctest:: + + >>> sys_ss = ct.rss(4, 1, 1, name='sys_ss') + >>> sys_frd = ct.frd(sys_ss, np.logspace(-1, 1, 5)) + >>> print(sys_frd) + : sys_ss$sampled + Inputs (1): ['u[0]'] + Outputs (1): ['y[0]'] + + Freq [rad/s] Response + ------------ --------------------- + 0.100 -0.2648+0.0006429j + 0.316 -0.2653 +0.003783j + 1.000 -0.2561 +0.008021j + 3.162 -0.2528 -0.001438j + 10.000 -0.2578 -0.002443j + +The :func:`frequency_response` function can also be used for this +purpose, although in that case the output is usually used for plotting +the frequency response, as described in more detail in the +:ref:`frequency_response` section. + + +Model reduction +--------------- + +Reduced order models for LTI systems can be obtained by approximating +the system by a system of lower order that has similar input/output +properties. A variety of functions are available in the +python-control package that perform various types of model +simplification: + +.. autosummary:: + + balanced_reduction + minimal_realization + model_reduction + +The :func:`balanced_reduction` function eliminate states based on the +Hankel singular values of a system. Intuitively, a system (or +subsystem) with small Hankel singular values corresponds to a situation +in which it is difficult to observe a state and/or difficult to +control that state. Eliminating states corresponding to small Hankel +singular values thus represents a good approximation in terms of the +input/output properties of a system. For systems with unstable modes, +:func:`balanced_reduction` first removes the states corresponding to +the unstable subspace from the system, then carries out a balanced +realization on the stable part, and then reinserts the unstable modes. + +The :func:`minimal_realization` function eliminates uncontrollable or +unobservable states in state space models or cancels pole-zero pairs +in transfer functions. The resulting output system has minimal order +and the same input/output response characteristics as the original +model system. Unlike the :func:`balanced_reduction` function, the +:func:`minimal_realization` eliminates all uncontrollable and/or +unobservable modes, so should be used with caution if applied to an +unstable system. + +The :func:`model_reduction` function produces a reduced-order model of +a system by eliminating specified inputs, outputs, and/or states from +the original system. The specific states, inputs, or outputs that are +eliminated can be specified by either listing the states, inputs, or +outputs to be eliminated or those to be kept. Two methods of state +reduction are possible: 'truncate' removes the states marked for +elimination, while 'matchdc' replaces the eliminated states with their +equilibrium values (thereby keeping the input/output gain unchanged at +zero frequency ["DC"]). + + +Displaying LTI System Information +================================= + +Information about an LTI system can be obtained using the Python +`~python.print` function: + +.. doctest:: + + >>> sys = ct.rss(4, 2, 2, name='sys_2x2') + >>> print(sys) + : sys_2x2 + Inputs (2): ['u[0]', 'u[1]'] + Outputs (2): ['y[0]', 'y[1]'] + States (4): ['x[0]', 'x[1]', 'x[2]', 'x[3]'] + + A = [[-2.06417506 0.28005277 0.49875395 -0.40364606] + [-0.18000232 -0.91682581 0.03179904 -0.16708786] + [-0.7963147 0.19042684 -0.72505525 -0.52196969] + [ 0.69457346 -0.20403756 -0.59611373 -0.94713748]] + + B = [[-2.3400013 -1.02252469] + [-0.76682007 -0. ] + [ 0.13399373 0.94404387] + [ 0.71412443 -0.45903835]] + + C = [[ 0.62432205 -0.55879494 -0.08717116 1.05092654] + [-0.94352373 0.19332285 1.05341936 0.60141772]] + + D = [[ 0. 0.] + [-0. 0.]] + +A loadable description of a system can be obtained just by displaying +the system object: + +.. doctest:: + + >>> sys = ct.rss(2, 1, 1, name='sys_siso') + >>> sys + StateSpace( + array([[ 0.91008302, -0.87770371], + [ 6.83039608, -5.19117213]]), + array([[0.9810374], + [0.516694 ]]), + array([[1.38255365, 0.96999883]]), + array([[-0.]]), + name='sys_siso', states=2, outputs=1, inputs=1) + +Alternative representations of the system are available using the +:func:`iosys_repr` function and can be configured using +`config.defaults['iosys.repr_format']`. + +Transfer functions are displayed as ratios of polynomials, using +either 's' or 'z' depending on whether the systems is continuous or +discrete time: + +.. doctest:: + + >>> sys_tf = ct.tf([1, 0], [1, 2, 1], 0.1, name='sys') + >>> print(sys_tf) + : sys + Inputs (1): ['u[0]'] + Outputs (1): ['y[0]'] + dt = 0.1 + + z + ------------- + z^2 + 2 z + 1 diff --git a/doc/matlab.rst b/doc/matlab.rst index eac1d157a..42f1e6eb2 100644 --- a/doc/matlab.rst +++ b/doc/matlab.rst @@ -1,7 +1,7 @@ .. _matlab-module: **************************** - MATLAB compatibility module + MATLAB Compatibility Module **************************** .. automodule:: control.matlab @@ -9,7 +9,11 @@ :no-inherited-members: :no-special-members: -Creating linear models +.. warning:: This module is not closely maintained and some + functionality in the main python-control package may not + be be available via the MATLAB compatibility module. + +Creating Linear Models ====================== .. autosummary:: :toctree: generated/ @@ -17,10 +21,9 @@ Creating linear models tf ss frd - rss - drss + zpk -Utility functions and conversions +Utility Functions and Conversions ================================= .. autosummary:: :toctree: generated/ @@ -32,7 +35,7 @@ Utility functions and conversions tf2ss tfdata -System interconnections +System Interconnections ======================= .. autosummary:: :toctree: generated/ @@ -44,7 +47,7 @@ System interconnections connect append -System gain and dynamics +System Gain and Dynamics ======================== .. autosummary:: :toctree: generated/ @@ -55,7 +58,7 @@ System gain and dynamics damp pzmap -Time-domain analysis +Time-Domain Analysis ==================== .. autosummary:: :toctree: generated/ @@ -64,20 +67,22 @@ Time-domain analysis impulse initial lsim + stepinfo -Frequency-domain analysis +Frequency-Domain Analysis ========================= .. autosummary:: :toctree: generated/ bode nyquist - nichols margin + nichols + ngrid freqresp evalfr -Compensator design +Compensator Design ================== .. autosummary:: :toctree: generated/ @@ -90,7 +95,7 @@ Compensator design lqe dlqe -State-space (SS) models +State-space (SS) Models ======================= .. autosummary:: :toctree: generated/ @@ -101,7 +106,7 @@ State-space (SS) models obsv gram -Model simplification +Model Simplification ==================== .. autosummary:: :toctree: generated/ @@ -113,14 +118,14 @@ Model simplification era markov -Time delays +Time Delays =========== .. autosummary:: :toctree: generated/ pade -Matrix equation solvers and linear algebra +Matrix Equation Solvers and Linear Algebra ========================================== .. autosummary:: :toctree: generated/ @@ -130,7 +135,7 @@ Matrix equation solvers and linear algebra care dare -Additional functions +Additional Functions ==================== .. autosummary:: :toctree: generated/ @@ -138,8 +143,8 @@ Additional functions gangof4 unwrap -Functions imported from other modules -===================================== +Functions Imported from Other Packages +====================================== .. autosummary:: ~numpy.linspace diff --git a/doc/mhe-pvtol.ipynb b/doc/mhe-pvtol.ipynb deleted file mode 120000 index 1efa2b5c9..000000000 --- a/doc/mhe-pvtol.ipynb +++ /dev/null @@ -1 +0,0 @@ -../examples/mhe-pvtol.ipynb \ No newline at end of file diff --git a/doc/mpc_aircraft.ipynb b/doc/mpc_aircraft.ipynb deleted file mode 120000 index 0a3e4df42..000000000 --- a/doc/mpc_aircraft.ipynb +++ /dev/null @@ -1 +0,0 @@ -../examples/mpc_aircraft.ipynb \ No newline at end of file diff --git a/doc/mrac_siso_lyapunov.py b/doc/mrac_siso_lyapunov.py deleted file mode 120000 index aaccf5585..000000000 --- a/doc/mrac_siso_lyapunov.py +++ /dev/null @@ -1 +0,0 @@ -../examples/mrac_siso_lyapunov.py \ No newline at end of file diff --git a/doc/mrac_siso_mit.py b/doc/mrac_siso_mit.py deleted file mode 120000 index b6a226f7c..000000000 --- a/doc/mrac_siso_mit.py +++ /dev/null @@ -1 +0,0 @@ -../examples/mrac_siso_mit.py \ No newline at end of file diff --git a/doc/nlsys.rst b/doc/nlsys.rst new file mode 100644 index 000000000..31c2656e4 --- /dev/null +++ b/doc/nlsys.rst @@ -0,0 +1,248 @@ +.. currentmodule:: control + +Nonlinear System Models +======================= + +Nonlinear input/output systems are represented as state space systems +of the form + +.. math:: + + \frac{dx}{dt} &= f(t, x, u, \theta), \\ + y &= h(t, x, u, \theta), + +where :math:`t` represents the current time, :math:`x \in +\mathbb{R}^n` is the system state, :math:`u \in \mathbb{R}^m` is the +system input, :math:`y \in \mathbb{R}^p` is the system output, and +:math:`\theta` represents a set of parameters. + +Discrete time systems are also supported and have dynamics of the form + +.. math:: + + x[t+1] &= f(t, x[t], u[t], \theta), \\ + y[t] &= h(t, x[t], u[t], \theta). + +A nonlinear input/output model is said to be "static" if the output +:math:`y(t)` at any given time :math:`t` depends only on the input +:math:`u(t)` at that same time :math:`t` and not on past or future +values of :math:`u`. + + +.. _sec-nonlinear-models: + +Creating nonlinear models +------------------------- + +A nonlinear system is created using the :func:`nlsys` factory function:: + + sys = ct.nlsys( + updfcn[, outfcn], inputs=m, states=n, outputs=p, [, params=params]) + +The `updfcn` argument is a function returning the state update function:: + + updfcn(t, x, u, params) -> array + +where `t` is a float representing the current time, `x` is a 1-D array +with shape (n,), `u` is a 1-D array with shape (m,), and `params` is a +dict containing the values of parameters used by the function. The +dynamics of the system can be in continuous or discrete time (use the +`dt` keyword to create a discrete-time system). + +The output function `outfcn` is used to specify the outputs of the +system and has the same calling signature as `updfcn`. If it is not +specified, then the output of the system is set equal to the system +state. Otherwise, it should return an array of shape (p,). If a +input/output system is static, the state `x` should still be passed to +the output function, but the state is ignored. + +Note that the number of states, inputs, and outputs should generally +be explicitly specified, although some operations can infer the +dimensions if they are not given when the system is created. The +`inputs`, `outputs`, and `states` keywords can also be given as lists +of strings, in which case the various signals will be given the +appropriate names. + +To illustrate the creation of a nonlinear I/O system model, consider a +simple model of a spring loaded arm driven by a motor: + +.. image:: figures/servomech-diagram.png + :width: 240 + :align: center + +The dynamics of this system can be modeled using the following code: + +.. testcode:: + + # Parameter values + servomech_params = { + 'J': 100, # Moment of inertia of the motor + 'b': 10, # Angular damping of the arm + 'k': 1, # Spring constant + 'r': 1, # Location of spring contact on arm + 'l': 2, # Distance to the read head + } + + # State derivative + def servomech_update(t, x, u, params): + # Extract the configuration and velocity variables from the state vector + theta = x[0] # Angular position of the disk drive arm + thetadot = x[1] # Angular velocity of the disk drive arm + tau = u[0] # Torque applied at the base of the arm + + # Get the parameter values + J, b, k, r = map(params.get, ['J', 'b', 'k', 'r']) + + # Compute the angular acceleration + dthetadot = 1/J * ( + -b * thetadot - k * r * np.sin(theta) + tau) + + # Return the state update law + return np.array([thetadot, dthetadot]) + + # System output (tip radial position + angular velocity) + def servomech_output(t, x, u, params): + l = params['l'] + return np.array([l * x[0], x[1]]) + + # System dynamics + servomech = ct.nlsys( + servomech_update, servomech_output, name='servomech', + params=servomech_params, states=['theta', 'thdot'], + outputs=['y', 'thdot'], inputs=['tau']) + +A summary of the model can be obtained using the string representation +of the model (via the Python `~python.print` function): + +.. doctest:: + + >>> print(servomech) + : servomech + Inputs (1): ['tau'] + Outputs (2): ['y', 'thdot'] + States (2): ['theta', 'thdot'] + Parameters: ['J', 'b', 'k', 'r', 'l'] + + Update: + Output: + + +Operating points and linearization +---------------------------------- + +A nonlinear input/output system can be linearized around an equilibrium point +to obtain a :class:`StateSpace` linear system:: + + sys_ss = ct.linearize(sys_nl, xeq, ueq) + +If the equilibrium point is not known, the +:func:`find_operating_point` function can be used to obtain an +equilibrium point. In its simplest form, `find_operating_point` finds +an equilibrium point given either the desired input or desired +output:: + + xeq, ueq = find_operating_point(sys, x0, u0) + xeq, ueq = find_operating_point(sys, x0, u0, y0) + +The first form finds an equilibrium point for a given input `u0` based +on an initial guess `x0`. The second form fixes the desired output +values `y0` and uses `x0` and `u0` as an initial guess to find the +equilibrium point. If no equilibrium point can be found, the function +returns the operating point that minimizes the state update (state +derivative for continuous-time systems, state difference for discrete +time systems). + +More complex operating points can be found by specifying which states, +inputs, or outputs should be used in computing the operating point, as +well as desired values of the states, inputs, outputs, or state +updates. See the :func:`find_operating_point` documentation for more +details. + + +Simulations and plotting +------------------------ + +To simulate an input/output system, use the +:func:`input_output_response` function:: + + resp = ct.input_output_response(sys_nl, timepts, U, x0, params) + t, y, x = resp.time, resp.outputs, resp.states + +Time responses can be plotted using the :func:`time_response_plot` +function or (equivalently) the :func:`TimeResponseData.plot` +method:: + + cplt = ct.time_response_plot(resp) # function call + cplt = resp.plot() # method call + +The resulting :class:`ControlPlot` object can be used to access +different plot elements: + +* `cplt.lines`: Array of `matplotlib.lines.Line2D` objects for each + line in the plot. The shape of the array matches the subplots shape + and the value of the array is a list of Line2D objects in that + subplot. + +* `cplt.axes`: 2D array of `matplotlib.axes.Axes` for the plot. + +* `cplt.figure`: `matplotlib.figure.Figure` containing the plot. + +* `cplt.legend`: legend object(s) contained in the plot. + +The :func:`combine_time_responses` function an be used to combine +multiple time responses into a single `TimeResponseData` object: + +.. testcode:: + + timepts = np.linspace(0, 10) + + U1 = np.sin(timepts) + resp1 = ct.input_output_response(servomech, timepts, U1) + + U2 = np.cos(2*timepts) + resp2 = ct.input_output_response(servomech, timepts, U2) + + resp = ct.combine_time_responses( + [resp1, resp2], trace_labels=["Scenario #1", "Scenario #2"]) + resp.plot(legend_loc=False) + +.. testcode:: + :hide: + + import matplotlib.pyplot as plt + plt.savefig('figures/timeplot-servomech-combined.png') + +.. image:: figures/timeplot-servomech-combined.png + :align: center + + +Nonlinear system properties +--------------------------- + +The following basic attributes and methods are available for +:class:`NonlinearIOSystem` objects: + +.. autosummary:: + + ~NonlinearIOSystem.dynamics + ~NonlinearIOSystem.output + ~NonlinearIOSystem.linearize + ~NonlinearIOSystem.__call__ + +The :func:`~NonlinearIOSystem.dynamics` method returns the right hand +side of the differential or difference equation, evaluated at the +current time, state, input, and (optionally) parameter values. The +:func:`~NonlinearIOSystem.output` method returns the system output. +For static nonlinear systems, it is also possible to obtain the value +of the output by directly calling the system with the value of the +input: + +.. doctest:: + + >>> sys = ct.nlsys( + ... None, lambda t, x, u, params: np.sin(u), inputs=1, outputs=1) + >>> sys(1) + np.float64(0.8414709848078965) + +The :func:`NonlinearIOSystem.linearize` method is equivalent to the +:func:`linearize` function. diff --git a/doc/nonlinear.rst b/doc/nonlinear.rst new file mode 100644 index 000000000..66de61c38 --- /dev/null +++ b/doc/nonlinear.rst @@ -0,0 +1,21 @@ +.. _nonlinear-systems: + +*********************************************** +Nonlinear System Modeling, Analysis, and Design +*********************************************** + +The Python Control Systems Library contains a variety of tools for +modeling, analyzing, and designing nonlinear feedback systems, +including support for simulation and optimization. This chapter +describes the primary functionality available, both in the core +python-control package and in specialized modules and subpackages. + +.. include:: nlsys.rst + +.. include:: phaseplot.rst + +.. include:: optimal.rst + +.. include:: descfcn.rst + +.. include:: flatsys.rst diff --git a/doc/optimal.rst b/doc/optimal.rst index 4df8d4861..416256893 100644 --- a/doc/optimal.rst +++ b/doc/optimal.rst @@ -1,16 +1,21 @@ +.. currentmodule:: control + .. _optimal-module: -************************** -Optimization-based control -************************** +Optimization-Based Control +========================== + +The `optimal` module contains a set of classes and functions that can +be used to solve optimal control and optimal estimation problems for +linear or nonlinear systems. The objects in this module must be +explicitly imported:: + + import control as ct + import control.optimal as opt -.. automodule:: control.optimal - :no-members: - :no-inherited-members: - :no-special-members: Optimal control problem setup -============================= +----------------------------- Consider the *optimal control problem*: @@ -65,22 +70,25 @@ 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 +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(x_N). -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, -generating open-loop state and control trajectories. The resulting control -trajectory is applied to the system for a fraction of the horizon -length. This process is then repeated, resulting in a sampled data feedback -law. This approach is illustrated in the following figure: +A common use of optimization-based control techniques is the +implementation of model predictive control (MPC, also called receding +horizon control). In model predictive control, a finite horizon +optimal control problem is solved, generating open-loop state and +control trajectories. The resulting control trajectory is applied to +the system for a fraction of the horizon length. This process is then +repeated, resulting in a sampled data feedback law. This approach is +illustrated in the following figure: -.. image:: mpc-overview.png +.. image:: figures/mpc-overview.png + :width: 640 + :align: center Every :math:`\Delta T` seconds, an optimal control problem is solved over a :math:`T` second horizon, starting from the current state. The first @@ -88,7 +96,7 @@ Every :math:`\Delta T` seconds, an optimal control problem is solved over a x(t))` is then applied to the system. If we let :math:`x_T^{\*}(\cdot; x(t))` represent the optimal trajectory starting from :math:`x(t)` then the system state evolves from :math:`x(t)` at current time :math:`t` to -:math:`x_T^{*}(\delta T, x(t))` at the next sample time :math:`t + \Delta +:math:`x_T^{*}(\Delta T, x(t))` at the next sample time :math:`t + \Delta T`, assuming no model uncertainty. In reality, the system will not follow the predicted path exactly, so that @@ -97,147 +105,46 @@ recompute the optimal path from the new state at time :math:`t + \Delta T`, 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 they are (based on the given 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 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 +Control `_). -.. 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 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`: +optimization-based controllers, including model predictive control. +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 access the optimal control modules, +import `control.optimal`:: - import control.optimal as obc + import control.optimal as opt 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. +state and/or input, along the trajectory and/or at the terminal time. The optimal control module operates by converting the optimal control 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:: +by using the :func:`~optimal.solve_optimal_trajectory` function:: - res = obc.solve_ocp(sys, timepts, X0, cost, constraints) + res = opt.solve_optimal_trajectory(sys, timepts, X0, cost, constraints) -The `sys` parameter should be an :class:`~control.InputOutputSystem` and the -`timepts` parameter should represent a time vector that gives the list of -times at which the cost and constraints should be evaluated. +The :code:`sys` parameter should be an :class:`InputOutputSystem` and the +`timepts` parameter should represent a time vector that gives the list +of times at which the cost and constraints should be evaluated (the +time points need not be uniformly spaced). -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 `timepts` vector. The `terminal_cost` -parameter can be used to specify a cost function for the final point in the -trajectory. +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 `timepts` vector. The +`terminal_cost` 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 specified -using one of the following forms:: +The `constraints` parameter is a list of constraints similar to that +used by the :func:`scipy.optimize.minimize` function. Each constraint +is specified using one of the following forms:: LinearConstraint(A, lb, ub) NonlinearConstraint(f, lb, ub) @@ -257,74 +164,58 @@ A nonlinear constraint is satisfied if lb <= f(x, u) <= ub -By default, `constraints` are taken to be trajectory constraints holding at -all points on the trajectory. The `terminal_constraint` parameter can be +The `constraints` are taken as trajectory constraints holding at all +points on the trajectory. The `terminal_constraints` parameter can be used to specify a constraint that only holds at the final point of the trajectory. -The return value for :func:`~control.optimal.solve_ocp` is a bundle object -that has the following elements: +The return value for :func:`~optimal.solve_optimal_trajectory` is a +bundle object that has the following elements: - * `res.success`: `True` if the optimization was successfully solved + * `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 timepts vector + * `res.states`: state trajectory (if `return_x` was True) + * `res.time`: copy of the time `timepts` vector In addition, the results from :func:`scipy.optimize.minimize` are also -available. +available as additional attributes, as described in +`scipy.optimize.OptimizeResult`. To simplify the specification of cost functions and constraints, the -:mod:`~control.ios` module defines a number of utility functions for +:mod:`optimal` module defines a number of utility functions for optimal control problems: .. autosummary:: - ~control.optimal.quadratic_cost - ~control.optimal.input_poly_constraint - ~control.optimal.input_range_constraint - ~control.optimal.output_poly_constraint - ~control.optimal.output_range_constraint - ~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]) + optimal.quadratic_cost + optimal.input_poly_constraint + optimal.input_range_constraint + optimal.output_poly_constraint + optimal.output_range_constraint + optimal.state_poly_constraint + optimal.state_range_constraint -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.create_mhe_iosystem` -method can be used to generate an input/output system that implements a -moving horizon estimator. +Example +------- -Several functions are available to help set up standard optimal estimation -problems: +Consider the vehicle steering example described in Example 2.3 of +`Optimization-Based Control (OBC) +`_. The +dynamics of the system can be defined as a nonlinear input/output +system using the following code: -.. autosummary:: +.. testsetup:: optimal - ~control.optimal.gaussian_likelihood_cost - ~control.optimal.disturbance_range_constraint + import matplotlib.pyplot as plt + plt.close('all') -Example -======= - -Consider the vehicle steering example described in FBS2e. The dynamics of -the system can be defined as a nonlinear input/output system using the -following code:: +.. testcode:: optimal + import matplotlib.pyplot as plt import numpy as np import control as ct import control.optimal as opt - import matplotlib.pyplot as plt def vehicle_update(t, x, u, params): # Get the parameters for the model @@ -352,39 +243,58 @@ 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 starting and ending velocity of 10 m/s:: +with a starting and ending velocity of 10 m/s: + +.. testcode:: optimal 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 -penalizes the state and input using quadratic cost functions:: +penalizes the state and input using quadratic cost functions: + +.. testcode:: optimal 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 = obc.quadratic_cost(vehicle, Q, R, x0=xf, u0=uf) - term_cost = obc.quadratic_cost(vehicle, P, 0, x0=xf) + traj_cost = opt.quadratic_cost(vehicle, Q, R, x0=xf, u0=uf) + term_cost = opt.quadratic_cost(vehicle, P, 0, x0=xf) 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:: +and constrain the velocity to be in the range of 9 m/s to 11 m/s: + +.. testcode:: optimal + + 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: -Finally, we solve for the optimal inputs:: +.. testcode:: optimal timepts = np.linspace(0, Tf, 10, endpoint=True) - result = obc.solve_ocp( + result = opt.solve_optimal_trajectory( vehicle, timepts, x0, traj_cost, constraints, terminal_cost=term_cost, initial_guess=u0) -Plotting the results:: +.. testoutput:: optimal + :hide: + + Summary statistics: + * Cost function calls: ... + * Constraint calls: ... + * System simulations: ... + * Final cost: ... + +Plotting the results: + +.. testcode:: optimal # Simulate the system dynamics (open loop) resp = ct.input_output_response( vehicle, timepts, result.inputs, x0, - t_eval=np.linspace(0, Tf, 100)) + evaluation_times=np.linspace(0, Tf, 100)) t, y, u = resp.time, resp.outputs, resp.inputs plt.subplot(3, 1, 1) @@ -405,21 +315,22 @@ Plotting the results:: plt.xlabel("t [sec]") plt.ylabel("u2 [rad/s]") - plt.suptitle("Lane change manuever") + plt.suptitle("Lane change maneuver") plt.tight_layout() - plt.show() -yields +.. testcode:: optimal + :hide: + + plt.savefig('figures/steering-optimal.png') -.. image:: steering-optimal.png +yields +.. image:: figures/steering-optimal.png + :align: center -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 -================= +----------------- The python-control optimization module makes use of the SciPy optimization toolbox and it can sometimes be tricky to get the optimization to converge. @@ -442,17 +353,19 @@ solutions do not seem close to optimal, here are a few things to try: `input_output_response` (as done above). * Use a smooth basis: as an alternative to parameterizing the optimal - control inputs using the value of the control at the listed time points, - you can specify a set of basis functions using the `basis` keyword in - :func:`~control.solve_ocp` and then parameterize the controller by linear - combination of the basis functions. The :mod:`!control.flatsys` module - defines several sets of basis functions that can be used. - -* Tweak the optimizer: by using the `minimize_method`, `minimize_options`, - 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 optimizers that are available and the options and keywords that they + control inputs using the value of the control at the listed time + points, you can specify a set of basis functions using the `basis` + keyword in :func:`~optimal.solve_optimal_trajectory` and then + parameterize the controller by linear combination of the basis + functions. The :ref:`flatsys subpackage ` defines + several sets of basis functions that can be used. + +* Tweak the optimizer: by using the `minimize_method`, + `minimize_options`, and `minimize_kwargs` keywords in + :func:`~optimal.solve_optimal_trajectory`, you can choose the SciPy + optimization function that you use and set many parameters. See + :func:`scipy.optimize.minimize` for more information on 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, @@ -466,27 +379,30 @@ formulations. Module classes and functions -============================ +---------------------------- + +The following classes and functions are defined in the +`optimal` module: + .. autosummary:: - :toctree: generated/ :template: custom-class-template.rst - ~control.optimal.OptimalControlProblem - ~control.optimal.OptimalControlResult - ~control.optimal.OptimalEstimationProblem - ~control.optimal.OptimalEstimationResult + optimal.OptimalControlProblem + optimal.OptimalControlResult + optimal.OptimalEstimationProblem + optimal.OptimalEstimationResult .. autosummary:: - :toctree: generated/ - - ~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 + + optimal.create_mpc_iosystem + optimal.disturbance_range_constraint + optimal.gaussian_likelihood_cost + optimal.input_poly_constraint + optimal.input_range_constraint + optimal.output_poly_constraint + optimal.output_range_constraint + optimal.quadratic_cost + optimal.solve_optimal_trajectory + optimal.solve_optimal_estimate + optimal.state_poly_constraint + optimal.state_range_constraint diff --git a/doc/phase_plane_plots.py b/doc/phase_plane_plots.py deleted file mode 120000 index 6076fa4cd..000000000 --- a/doc/phase_plane_plots.py +++ /dev/null @@ -1 +0,0 @@ -../examples/phase_plane_plots.py \ No newline at end of file diff --git a/doc/phaseplot-dampedosc-default.png b/doc/phaseplot-dampedosc-default.png deleted file mode 100644 index da4e24e35..000000000 Binary files a/doc/phaseplot-dampedosc-default.png and /dev/null differ diff --git a/doc/phaseplot-invpend-meshgrid.png b/doc/phaseplot-invpend-meshgrid.png deleted file mode 100644 index 040b45558..000000000 Binary files a/doc/phaseplot-invpend-meshgrid.png and /dev/null differ diff --git a/doc/phaseplot-oscillator-helpers.png b/doc/phaseplot-oscillator-helpers.png deleted file mode 100644 index 0b5ebf43f..000000000 Binary files a/doc/phaseplot-oscillator-helpers.png and /dev/null differ diff --git a/doc/phaseplot.rst b/doc/phaseplot.rst new file mode 100644 index 000000000..d2a3e6353 --- /dev/null +++ b/doc/phaseplot.rst @@ -0,0 +1,140 @@ +.. currentmodule:: control + +.. _phase-plane-plots: + +Phase Plane Plots +================= + +Insight into nonlinear systems can often be obtained by looking at phase +plane diagrams. The :func:`phase_plane_plot` function allows the +creation of a 2-dimensional phase plane diagram for a system. This +functionality is supported by a set of mapping functions that are part of +the `phaseplot` module. + +The default method for generating a phase plane plot is to provide a +2D dynamical system along with a range of coordinates in phase space: + +.. testsetup:: phaseplot + + import matplotlib.pyplot as plt + plt.close('all') + +.. testcode:: phaseplot + + def sys_update(t, x, u, params): + return np.array([[0, 1], [-1, -1]]) @ x + sys = ct.nlsys( + sys_update, states=['position', 'velocity'], + inputs=0, name='damped oscillator') + axis_limits = [-1, 1, -1, 1] + ct.phase_plane_plot(sys, axis_limits) + +.. testcode:: phaseplot + :hide: + + import matplotlib.pyplot as plt + plt.savefig('figures/phaseplot-dampedosc-default.png') + +.. image:: figures/phaseplot-dampedosc-default.png + :align: center + +By default the plot includes streamlines infered from function values +on a grid, equilibrium points and separatrices if they exist. A variety +of options are available to modify the information that is plotted, +including plotting a grid of vectors instead of streamlines, plotting +streamlines from arbitrary starting points and turning on and off +various features of the plot. + +To illustrate some of these possibilities, consider a phase plane plot for +an inverted pendulum system, which is created using a mesh grid: + +.. testcode:: phaseplot + :hide: + + plt.figure() + +.. testcode:: phaseplot + + def invpend_update(t, x, u, params): + m, l, b, g = params['m'], params['l'], params['b'], params['g'] + return [x[1], -b/m * x[1] + (g * l / m) * np.sin(x[0]) + u[0]/m] + invpend = ct.nlsys(invpend_update, states=2, inputs=1, name='invpend') + + ct.phase_plane_plot( + invpend, [-2 * np.pi, 2 * np.pi, -2, 2], + params={'m': 1, 'l': 1, 'b': 0.2, 'g': 1}) + plt.xlabel(r"$\theta$ [rad]") + plt.ylabel(r"$\dot\theta$ [rad/sec]") + +.. testcode:: phaseplot + :hide: + + plt.savefig('figures/phaseplot-invpend-meshgrid.png') + +.. image:: figures/phaseplot-invpend-meshgrid.png + :align: center + +This figure shows several features of more complex phase plane plots: +multiple equilibrium points are shown, with saddle points showing +separatrices, and streamlines generated generated from a rectangular +25x25 grid (default) of function evaluations. Together, the multiple +features in the phase plane plot give a good global picture of the +topological structure of solutions of the dynamical system. + +Phase plots can be built up by hand using a variety of helper +functions that are part of the :mod:`phaseplot` (pp) module. For more +precise control, the streamlines can also generated by integrating the +system forwards or backwards in time from a set of initial +conditions. The initial conditions can be chosen on a rectangular +grid, rectangual boundary, circle or from an arbitrary set of points. + +.. testcode:: phaseplot + :hide: + + plt.figure() + +.. testcode:: phaseplot + + import control.phaseplot as pp + + def oscillator_update(t, x, u, params): + return [x[1] + x[0] * (1 - x[0]**2 - x[1]**2), + -x[0] + x[1] * (1 - x[0]**2 - x[1]**2)] + oscillator = ct.nlsys( + oscillator_update, states=2, inputs=0, name='nonlinear oscillator') + + ct.phase_plane_plot(oscillator, [-1.5, 1.5, -1.5, 1.5], 0.9, + plot_streamlines=True) + pp.streamlines( + oscillator, np.array([[0, 0]]), 1.5, + gridtype='circlegrid', gridspec=[0.5, 6], dir='both') + pp.streamlines( + oscillator, np.array([[1, 0]]), 2 * np.pi, arrows=6, color='b') + plt.gca().set_aspect('equal') + +.. testcode:: phaseplot + :hide: + + plt.savefig('figures/phaseplot-oscillator-helpers.png') + +.. image:: figures/phaseplot-oscillator-helpers.png + :align: center + +The following helper functions are available: + +.. autosummary:: + + phaseplot.equilpoints + phaseplot.separatrices + phaseplot.streamlines + phaseplot.streamplot + phaseplot.vectorfield + +The :func:`phase_plane_plot` function calls these helper functions +based on the options it is passed. + +Note that unlike other plotting functions, phase plane plots do not +involve computing a response and then plotting the result via a +``plot()`` method. Instead, the plot is generated directly be a call +to the :func:`phase_plane_plot` function (or one of the +:mod:`~control.phaseplot` helper functions). diff --git a/doc/phaseplots.py b/doc/phaseplots.py deleted file mode 120000 index 4b0575c0f..000000000 --- a/doc/phaseplots.py +++ /dev/null @@ -1 +0,0 @@ -../examples/phaseplots.py \ No newline at end of file diff --git a/doc/plotting.rst b/doc/plotting.rst deleted file mode 100644 index 8eb548a85..000000000 --- a/doc/plotting.rst +++ /dev/null @@ -1,445 +0,0 @@ -.. _plotting-module: - -************* -Plotting data -************* - -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]) - phase_plane_plot(sys, limits) - 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 -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 = ct.nyquist_response([sys1, sys2]) - count = ct.response.count # number of encirclements of -1 - lines = ct.nyquist_plot(response) # Nyquist plot - -The returned value `lines` provides access to the individual lines in the -generated plot, allowing various aspects of the plot to be modified to suit -specific needs. - -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() - nyquist_response(sys).plot() - pp.streamlines(sys, limits).plot() - root_locus_map(sys).plot() - -The remainder of this chapter provides additional documentation on how -these response and plotting functions can be customized. - - -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="sys_mimo") - response = ct.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 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, overlay_signals=True, - title="Step response for 2x2 MIMO system " + - "[plot_inputs, overlay_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` 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'` -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_time_responses( - [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_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`, -`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 - -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 - -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:: - - 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 - - -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 - - -Phase plane plots -================= -Insight into nonlinear systems can often be obtained by looking at phase -plane diagrams. The :func:`~control.phase_plane_plot` function allows the -creation of a 2-dimensional phase plane diagram for a system. This -functionality is supported by a set of mapping functions that are part of -the `phaseplot` module. - -The default method for generating a phase plane plot is to provide a -2D dynamical system along with a range of coordinates and time limit:: - - sys = ct.nlsys( - lambda t, x, u, params: np.array([[0, 1], [-1, -1]]) @ x, - states=['position', 'velocity'], inputs=0, name='damped oscillator') - axis_limits = [-1, 1, -1, 1] - T = 8 - ct.phase_plane_plot(sys, axis_limits, T) - -.. image:: phaseplot-dampedosc-default.png - -By default, the plot includes streamlines generated from starting -points on limits of the plot, with arrows showing the flow of the -system, as well as any equilibrium points for the system. A variety -of options are available to modify the information that is plotted, -including plotting a grid of vectors instead of streamlines and -turning on and off various features of the plot. - -To illustrate some of these possibilities, consider a phase plane plot for -an inverted pendulum system, which is created using a mesh grid:: - - def invpend_update(t, x, u, params): - m, l, b, g = params['m'], params['l'], params['b'], params['g'] - return [x[1], -b/m * x[1] + (g * l / m) * np.sin(x[0]) + u[0]/m] - invpend = ct.nlsys(invpend_update, states=2, inputs=1, name='invpend') - - ct.phase_plane_plot( - invpend, [-2*pi, 2*pi, -2, 2], 5, - gridtype='meshgrid', gridspec=[5, 8], arrows=3, - plot_equilpoints={'gridspec': [12, 9]}, - params={'m': 1, 'l': 1, 'b': 0.2, 'g': 1}) - plt.xlabel(r"$\theta$ [rad]") - plt.ylabel(r"$\dot\theta$ [rad/sec]") - -.. image:: phaseplot-invpend-meshgrid.png - -This figure shows several features of more complex phase plane plots: -multiple equilibrium points are shown, with saddle points showing -separatrices, and streamlines generated along a 5x8 mesh of initial -conditions. At each mesh point, a streamline is created that goes 5 time -units forward and backward in time. A separate grid specification is used -to find equilibrium points and separatrices (since the course grid spacing -of 5x8 does not find all possible equilibrium points). Together, the -multiple features in the phase plane plot give a good global picture of the -topological structure of solutions of the dynamical system. - -Phase plots can be built up by hand using a variety of helper functions that -are part of the :mod:`~control.phaseplot` (pp) module:: - - import control.phaseplot as pp - - def oscillator_update(t, x, u, params): - return [x[1] + x[0] * (1 - x[0]**2 - x[1]**2), - -x[0] + x[1] * (1 - x[0]**2 - x[1]**2)] - oscillator = ct.nlsys( - oscillator_update, states=2, inputs=0, name='nonlinear oscillator') - - ct.phase_plane_plot(oscillator, [-1.5, 1.5, -1.5, 1.5], 0.9) - pp.streamlines( - oscillator, np.array([[0, 0]]), 1.5, - gridtype='circlegrid', gridspec=[0.5, 6], dir='both') - pp.streamlines( - oscillator, np.array([[1, 0]]), 2*pi, arrows=6, color='b') - plt.gca().set_aspect('equal') - -.. image:: phaseplot-oscillator-helpers.png - -The following helper functions are available: - -.. autosummary:: - ~control.phaseplot.equilpoints - ~control.phaseplot.separatrices - ~control.phaseplot.streamlines - ~control.phaseplot.vectorfield - -The :func:`~control.phase_plane_plot` function calls these helper functions -based on the options it is passed. - -Note that unlike other plotting functions, phase plane plots do not involve -computing a response and then plotting the result via a `plot()` method. -Instead, the plot is generated directly be a call to the -:func:`~control.phase_plane_plot` function (or one of the -:mod:`~control.phaseplot` helper functions. - - -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.pole_zero_map - ~control.root_locus_map - ~control.singular_values_response - ~control.step_response - -Plotting functions ------------------- - -.. autosummary:: - :toctree: generated/ - - ~control.bode_plot - ~control.describing_function_plot - ~control.nichols_plot - ~control.phase_plane_plot - ~control.phaseplot.equilpoints - ~control.phaseplot.separatrices - ~control.phaseplot.streamlines - ~control.phaseplot.vectorfield - ~control.pole_zero_plot - ~control.root_locus_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.PoleZeroData - ~control.TimeResponseData diff --git a/doc/pvtol-lqr-nested.ipynb b/doc/pvtol-lqr-nested.ipynb deleted file mode 120000 index fdc3bcd74..000000000 --- a/doc/pvtol-lqr-nested.ipynb +++ /dev/null @@ -1 +0,0 @@ -../examples/pvtol-lqr-nested.ipynb \ No newline at end of file diff --git a/doc/pvtol-lqr.py b/doc/pvtol-lqr.py deleted file mode 120000 index a6106b06a..000000000 --- a/doc/pvtol-lqr.py +++ /dev/null @@ -1 +0,0 @@ -../examples/pvtol-lqr.py \ No newline at end of file diff --git a/doc/pvtol-nested.py b/doc/pvtol-nested.py deleted file mode 120000 index f72b7c752..000000000 --- a/doc/pvtol-nested.py +++ /dev/null @@ -1 +0,0 @@ -../examples/pvtol-nested.py \ No newline at end of file diff --git a/doc/pvtol-outputfbk.ipynb b/doc/pvtol-outputfbk.ipynb deleted file mode 120000 index ffcfd5401..000000000 --- a/doc/pvtol-outputfbk.ipynb +++ /dev/null @@ -1 +0,0 @@ -../examples/pvtol-outputfbk.ipynb \ No newline at end of file diff --git a/doc/pvtol.py b/doc/pvtol.py deleted file mode 120000 index 76dd7bdc0..000000000 --- a/doc/pvtol.py +++ /dev/null @@ -1 +0,0 @@ -../examples/pvtol.py \ No newline at end of file diff --git a/doc/releases.rst b/doc/releases.rst new file mode 100644 index 000000000..88a76775a --- /dev/null +++ b/doc/releases.rst @@ -0,0 +1,64 @@ +************* +Release Notes +************* + +This chapter contains a listing of the major releases of the Python +Control Systems Library (python-control) along with a brief summary of +the significant changes in each release. + +The information listed here is primarily intended for users. More +detailed notes on each release, including links to individual pull +requests and issues, are available on the `python-control GitHub +release page +`_. + + +Version 0.10 +============ + +Version 0.10 of the python-control package introduced the +``_response/_plot`` pattern, described in more detail in +:ref:`response-chapter`, in which input/output system responses +generate an object representing the response that can then be used for +plotting (via the ``.plot()`` method) or other uses. Significant +changes were also made to input/output system functionality, including +the ability to index systems and signal using signal labels. + +.. toctree:: + :maxdepth: 1 + + releases/0.10.1-notes + releases/0.10.0-notes + + +Version 0.9 +=========== + +Version 0.9 of the python-control package included significant +upgrades the the `interconnect` functionality to allow automatic +signal interconnetion and the introduction of an :ref:`optimal control +module ` for optimal trajectory generation. In +addition, the default timebase for I/O systems was set to 0 in Version +0.9 (versus None in previous versions). + +.. toctree:: + :maxdepth: 1 + + releases/0.9.4-notes + releases/0.9.3-notes + releases/0.9.2-notes + releases/0.9.1-notes + releases/0.9.0-notes + + +Earlier Versions +================ + +Summary release notes are included for these collections of early +releases of the python-control package. + +.. toctree:: + :maxdepth: 1 + + releases/0.8.x-notes + releases/0.3-7.x-notes diff --git a/doc/releases/0.10.0-notes.rst b/doc/releases/0.10.0-notes.rst new file mode 100644 index 000000000..360bd9a79 --- /dev/null +++ b/doc/releases/0.10.0-notes.rst @@ -0,0 +1,184 @@ +.. currentmodule:: control + +.. _version-0.10.0: + +Version 0.10.0 Release Notes +---------------------------- + +* Released: 31 March 2024 +* `GitHub release page + `_ + +This release changes the interface for plotting to use a +``_response/_plot`` calling pattern, adds multivariable interconnect +functionality, restructures I/O system classes, and adds the `norm` +(now `system_norm`) function to compute input/output system norms. +Support for the NumPy `~numpy.matrix` class has been removed. + +This version of `python-control` requires Python 3.10 and higher. + + +New classes, functions, and methods +................................... + +The following new classes, functions, and methods have been added in +this release: + +* `time_response_plot`, `TimeResponseData.plot`: Plot simulation + results for time response functions. + +* `InterconnectedSystem.connection_table`: Print out a table of each + signal name, where it comes from (source), and where it goes + (destination), primarily intended for systems that have been + connected implicitly. + +* `nyquist_response`, `NyquistResponseData`: Compute the Nyquist curve + and store in an object that can be used to retrieve information + (e.g., `~NyquistResponseData.count`) or for plotting (via + the `~NyquistResponseData.plot` method). + +* `describing_function_response`, `DescribingFunctionResponse`: Compute + describing functions and store in a form that can be used for + analysis (e.g., `~DescribingFunctionResponse.intersections`) or plotting + (via `describing_function_plot` or the + `~DescribingFunctionResponse.plot` method). + +* `gangof4_response`, `gangof4_plot`: Compute the Gang of Four + response and store in a `FrequencyResponseData` object for plotting. + +* `singular_values_response`: Compute the Gang of Four response and store in a + `FrequencyResponseData` object for plotting. + +* `FrequencyResponseData.plot`: Plot a frequency response using a Bode, + Nichols, or singular values plot. + +* `pole_zero_map`, `PoleZeroData`: New "response" (map) functions for + pole/zero diagrams. The output of `pole_zero_map` can be plotted + using `pole_zero_plot` or the `~PoleZeroData.plot` method. + +* `root_locus_map`: New "response" (map) functions for root locus + diagrams. The output of `root_locus_map` can be plotted using + `root_locus_plot` or the `~PoleZeroData.plot` method. + +* `norm` (now `system_norm`): Compute H2 and H-infinity system norms. + +* `phase_plane_plot`: New implementation of phase + plane plots. See :ref:`phase-plane-plots` for more information. + + +Bug fixes +......... + +The following bugs have been fixed in this release: + +* `sample_system`: Fixed a bug in which the zero frequency (DC) gain + for the 'matched' transformation was being computed incorrectly. + +* `TimeResponseData.to_pandas`: Fixed a bug when the response did not + have state data. + + +Improvements +............ + +The following additional improvements and changes in functionality +were implemented in this release: + +* `interconnect`: Allows a variety of "multivariable" specifications + for connections, inputs, and outputs when systems have variables + with names of the form 'sig[i]'. + +* `nlsys`: Factory function for `NonlinearIOSystem`. + +* Block diagram functions (`series`, `parallel`, `feedback`, `append`, + `negate`) now work on all I/O system classes, including nonlinear + systems. + +* Simulation functions (`initial_response`, `step_response`, + `forced_response`) will now work for nonlinear functions (via an + internal call to `input_output_response`). + +* Bode and Nyquist plots have been significantly enhanced in terms of + functionality for display multiple tracing and other visual + properties. See `bode_plot` and `nyquist_plot` for details, along + with the :ref:`response-chapter` chapter. + +* Properties of frequecy plots can now be set using the + `config.defaults['freqplot.rcParams']` (see + :ref:`package-configuration-parameters` for details). + +* `create_statefbk_iosystem`: Allows passing an I/O system instead of + the a gain (or gain schedule) for the controller. + +* `root_locus_plot`: Interactive mode is now enabled, so clicking on a + location on the root locus curve will generate markers at the + locations on the loci corresponding to that gain and add a message + above the plot giving the frequency and damping ratio for the point + that was clicked. + +* `gram`: Computation of Gramians now supports discrete-time systems. + +* All time response functions now allow the `params` keyword to be + specified (for nonlinear I/O systems) and the parameter values used + for generating a time response are stored in the `TimeResponseData` + object.. + + +Deprecations +............ + +The following functions have been newly deprecated in this release and +generate a warning message when used: + +* `connect`: Use `interconnect`. + +* `ss2io`, `tf2io`: These functions are no longer required since the + `StateSpace` and `TransferFunction` classes are now subclasses of + `NonlinearIOSystem`. + +* `root_locus_plot`, `sisotool`: the `print_gain` keyword has been + replaced `interactive`. + +* In various plotting routines, the (already deprecated) `Plot` + keyword is now the (still deprecated) `plot` keyword. This can be + used to obtain legacy return values from ``_plot`` functions. + +* `phase_plot`: Use `phase_plane_plot` instead. + +The listed items are slated to be removed in future releases (usually +the next major or minor version update). + + +Removals +........ + +The following functions and capabilities have been removed in this release: + +* `use_numpy_matrix`: The `numpy.matrix` class is no longer supported. + +* `NamedIOSystem`: renamed to `InputOutputSystem` + +* `LinearIOSystem`: merged into the `StateSpace` class + +* `pole`: use `poles`. The `matlab.pole` function is still available. + +* `zero`: use `zeros`. The `matlab.zero` function is still available. + +* `timebaseEqual`: use `common_timebase`. + +* The `impulse_response` function no longer accepts the `X0` keyword. + +* The `initial_response` function no longer accepts the :code:`input` + keyword. + +* The deprecated default parameters 'bode.dB', 'bode.deg', + 'bode.grid', and 'bode.wrap_phase' have been removed. They should + be accessed as 'freqplot.dB', 'freqplot.deg', 'freqplot.grid', and + 'freqplot.wrap_phase'. + +* Recalculation of the root locus plot when zooming no longer works + (you can still zoom in and out, you just don't get a recalculated + curve). + +Code that makes use of the functionality listed above will have to be +rewritten to work with this release of the python-control package. diff --git a/doc/releases/0.10.1-notes.rst b/doc/releases/0.10.1-notes.rst new file mode 100644 index 000000000..dd0939021 --- /dev/null +++ b/doc/releases/0.10.1-notes.rst @@ -0,0 +1,200 @@ +.. currentmodule:: control + +.. _version-0.10.1: + +Version 0.10.1 Release Notes (current) +-------------------------------------- + +* Released: 17 Aug 2024 +* `GitHub release page + `_ + +This release provides a number of updates to the plotting functions to +make the interface more uniform between the various types of control +plots (including the use of the `ControlPlot` object as the return +type for all :code:`_plot` functions, adds slice access for state space +models, includes new tools for model identification from data, as well +as compatibility with NumPy 2.0. + +New functions +............. + +The following new functions have been added in this release: + +* `hankel_singular_values`: renamed `hsvd`, with a convenience alias + available for backwards compatibility. + +* `balanced_reduction`: renamed `balred`, with a convenience alias + available for backwards compatibility. + +* `model_reduction`: renamed `modred`, with a convenience alias + available for backwards compatibility. + +* `minimal_realization`: renamed `minreal`, with a convenience alias + available for backwards compatibility. + +* `eigensys_realization`: new system ID method, with a convenience + alias `era` available. + +* All plotting functions now return a `ControlPlot` object with lines, + axes, legend, etc available. Accessing this object as a list is + backward compatible with 10.0 format (with deparecation warning). + + +Bug fixes +......... + +The following bugs have been fixed in this release: + +* Fixed bug in `matlab.rlocus` where `kvect` was being used instead of + `gains`. Also allow `root_locus_plot` to process `kvects` as a + legacy keyword. + +* Fixed a bug in `nyquist_plot` where it generated an error if called + with a `FrequencyResponseData` object. + +* Fixed a bug in processing `indent_radius` keyword when + `nyquist_plot` is passed a system. + +* Fixed a bug in `root_locus_plot` that generated an error when you + clicked on a point outside the border window. + +* Fixed a bug in `interconnect` where specification of a list of + signals as the input was not handled properly (each signal in the + list was treated as a separate input rather than connecting a single + input to the list). + +* Fixed a bug in `impulse_response` where the `input` keyword was not + being handled properly. + +* Fixed bug in `step_info` in computing settling time for a constant + system. + + +Improvements +............ + +The following additional improvements and changes in functionality +were implemented in this release: + +* Added support for NumPy 2. + +* `frequency_response` now properly transfer labels from the system to + the response. + +* I/O systems with no inputs and no outputs are now allowed, mainly + for use by the `phase_plane_plot` function. + +* Improved error messages in `input_output_response` when the number + of states, inputs, or outputs are incompatible with the system size + by telling you which one didn't match. + +* `phase_plane_plot` now generate warnings when simulations fail for + individual initial conditions and drops individual traces (rather + than terminating). + +* Changed the way plot titles are created, using + `matplotlib.axes.set_title` (centers title over axes) instead of + `matplotlib.fig.suptitle` (centers over figure, which is good for + multi-axes plots but otherwise looks funny). + +* Updated arrow placement in `phase_plane_plot` so that very short + lines have zero or one arrows. + +* Subsystem indexing now allows slices as indexing arguments. + +* The `label` keyword is now allowed in frequency response commands to + override default label generation. + +* Restored functionality that allowed omega to be specified as a list + of 2 elements (indicating a range) in all frequency + response/plotting routines. This used to work for + `nyquist_response` but got removed at some point. It now works for + all frequency response commands. + +* Fixed up the `ax` keyword processing to allow arrays or lists + + uniform processing in all frequency plotting routines. + +* Fixed processing of `rcParam` to provide more uniformity. + +* Added new `ControlPlot.set_plot_title` method to set/add titles that are + better centered (on axes instead of figure). + +* Set up `frd` as factory function with keywords, including setting + the signal/system names. + +* Bode and Nyquist plots now allow FRD systems with different omega + vectors as well as mixtures of FRD and other LTI systems. + +* Added unit circle, sensitivity circles, and complementary + sensitivity cicles to `nyquist_plot`. + +* `time_response_plot` improvements: + + - Fixed up the `ax` keyword processing to allow arrays or lists + + uniform processing for all (time and frequency) plot routines. + + - Allow time responses for multiple systems with common time vector + and inputs to find a single time interval. + + - Updated sequential plotting so that different colors are used and + plot title is updated (like Bode and Nyquist). + + - Allow label keyword in various time response commands to override + default label generation. + + - Allow legends to be turned on and off using `show_legend` keyword. + +* `NonlinearIOSystem` improvements: + + - Allow system name to be overridden in `linearize`, even if + `copy_names` is `False`. + + - Allows renaming of system/signal names in bdalg functions + + - New `update_names` method for that allows signal and system names + to be updated. + + - `x0`, `u0` keywords in `linearize` and `input_output_response` + provide common functionality in allowing concatenation of lists + and zero padding ("vector element processing"). + + - Improved error messages when `x0` and `u0` don't match the expected size. + + - If no output function is given in `nlsys`, which provides full + state output, the output signal names are set to match the state + names. + +* `markov` now supports MIMO systems and accepts a `TimeResponseData` + object as input. + +* Processing of the `ax` and `title` keywords is now consistent across + all plotting functions. + +* Set up uniform processing of the `rcParams` keyword argument for + plotting functions (with unit tests). + +* Updated legend processing to be consistent across all plotting + functions, as described in the user documention. + +* Default configuration parameters for plotting are now in + `control.rcParams` and can be reset using `reset_rcParams`. + +* Unified `color` and `*fmt` argument processing code, in addition to + color management for sequential plotting. + + +Deprecations +............ + +The following functions have been newly deprecated in this release and +generate a warning message when used: + +* Assessing the output of a plotting function to a list is now + deprecated. Assign to a `ControlPlot` object and access lines and + other elements via attributes. + +* Deprecated the `relabel` keyword in `time_response_plot`. + +The listed items are slated to be removed in future releases (usually +the next major or minor version update). diff --git a/doc/releases/0.3-7.x-notes.rst b/doc/releases/0.3-7.x-notes.rst new file mode 100644 index 000000000..23b7d03b5 --- /dev/null +++ b/doc/releases/0.3-7.x-notes.rst @@ -0,0 +1,25 @@ +.. currentmodule:: control + +.. _version-0.3-7.x: + +Versions 0.3-0.7 Release Notes +------------------------------ + +* Released: 10 June 2010 - 23 Oct 2015 +* `Detailed release notes `_ + on python-control GitHub wiki. + +[ChatGPT summary] Between versions 0.3d and 0.7.0, the python-control +package underwent significant enhancements and refinements. Key +additions included support for discrete-time systems with a timebase +variable and the introduction of the c2d function for MIMO state-space +systems. New functionality such as rlocus, pade, and nichols was +added, along with minimal realization tools and model reduction +methods like hsvd, modred, and balred. Plotting capabilities were +expanded with more flexible Bode and Nyquist plots, frequency +labeling, and a phase_plot command for 2D nonlinear +systems. Performance improvements included faster versions of freqresp +and forced_response, bug fixes in tools like dare and tf2ss, and +enhanced stability margin and root-locus calculations. Installation +became easier via pip and conda, Python 3 compatibility improved, and +extensive documentation updates ensured a smoother user experience. diff --git a/doc/releases/0.8.x-notes.rst b/doc/releases/0.8.x-notes.rst new file mode 100644 index 000000000..9b6b89742 --- /dev/null +++ b/doc/releases/0.8.x-notes.rst @@ -0,0 +1,32 @@ +.. currentmodule:: control + +.. _version-0.8.x: + +Version 0.8.x Release Notes +---------------------------- + +* Released: 7 Jul 2018 - 28 Dec 2020 +* `Detailed release notes `_ + on python-control GitHub wiki. + +[ChatGPT summary] Between versions 0.8.0 and 0.8.4, the +python-control package introduced significant updates and +enhancements. Notable additions include improved support for nonlinear +systems with a new input/output systems module and functions for +linearization and differential flatness analysis, the ability to +create non-proper transfer functions, and support for dynamic +prewarping during continuous-to-discrete system +conversion. Visualization improvements were made across several +functions, such as enhanced options for Nyquist plots, better +pole-zero mapping compatibility with recent matplotlib updates, and +LaTeX formatting for Jupyter notebook outputs. Bugs were fixed in +critical areas like discrete-time simulations, forced response +computations, and naming conventions for interconnected systems. The +release also focused on expanded configurability with a new +`use_legacy_defaults` function and dict-based configuration handling, +updated unit testing (switching to pytest), and enhanced documentation +and examples, including for `sisotool` and trajectory +planning. Improvements to foundational algorithms, such as pole +placement, transfer function manipulation, and discrete root locus, +rounded out this series of releases, ensuring greater flexibility and +precision for control systems analysis. diff --git a/doc/releases/0.9.0-notes.rst b/doc/releases/0.9.0-notes.rst new file mode 100644 index 000000000..00f20f6df --- /dev/null +++ b/doc/releases/0.9.0-notes.rst @@ -0,0 +1,87 @@ +.. currentmodule:: control + +.. _version-0.9.0: + +Version 0.9.0 Release Notes +---------------------------- + +* Released: 21 Mar 2021 +* `GitHub release page + `_ + +Version 0.9.0 of the Python Control Toolbox (python-control) contains +a number of enhanced features and changes to functions. Some of these +changes may require modifications to existing user code and, in +addition, some default settings have changed that may affect the +appearance of plots or operation of certain functions. + +Significant new additions including improvements in the I/O systems +modules that allow automatic interconnection of signals having the +same name (via the `interconnect` function), generation and plotting +of describing functions for closed loop systems with static +nonlinearities, and a new :ref:`optimal control module +` that allows basic computation of optimal controls +(including model predictive controllers). Some of the changes that may +break use code include the deprecation of the NumPy `~numpy.matrix` +type (2D NumPy arrays are used instead), changes in the return value +for Nyquist plots (now returns number of encirclements rather than the +frequency response), switching the default timebase of systems to be 0 +rather than None (no timebase), and changes in the processing of +return values for time and frequency responses (to make them more +consistent). In many cases, the earlier behavior can be restored by +calling ``use_legacy_defaults('0.8.4')``. + +New features +............ + +* Optimal control module, including rudimentary MPC control +* Describing functions plots +* MIMO impulse and step response +* I/O system improvements: + + - `linearize` retains signal names plus new `interconnect` function + - Add summing junction + implicit signal interconnection + +* Implementation of initial_phase, wrap_phase keywords for bode_plot +* Added IPython LaTeX representation method for StateSpace objects +* New `~StateSpace.dynamics` and `~StateSpace.output` methods in `StateSpace` +* `FRD` systems can now be created from a discrete time LTI system +* Cost and constraints are now allowed for `flatsys.point_to_point` + + +Interface changes +................. + +* Switch default state space matrix type to 'array' (instead of 'matrix') +* Use `~LTI.__call__` instead of `~LTI.evalfr` in LTI system classes +* Default dt is now 0 instead of None +* Change default value of `StateSpace.remove_useless_states` to False +* Standardize time response return values, `return_x`/`squeeze` + keyword processing +* Standardize `squeeze` processing in frequency response functions +* Nyquist plot now returns number of encirclements +* Switch `LTI` class and subclasses to use ninputs, noutputs, nstates +* Use standard time series convention for `markov` input data +* TransferFunction array priority plus system type conversion checking +* Generate error for `tf2ss` of non-proper transfer function +* Updated return values for frequency response evaluated at poles + + +Improvements, bug fixes +....................... + +* Nyquist plot improvements: better arrows, handle poles on imaginary axis +* Sisotool small visual cleanup, new feature to show step response of + different input-output than loop +* Add `bdschur` and fox modal form with repeated eigenvalues +* Fix rlocus timeout due to inefficient _default_wn calculation +* Fix `stability_margins`: finding z for ``|H(z)| = 1`` computed the wrong + polynomials +* Freqplot improvements +* Fix rlocus plotting problem in Jupyter notebooks +* Handle empty pole vector for timevector calculation +* Fix `lqe` docstring and input array type +* Updated `markov` to add tranpose keyword + default warning +* Fix impulse size for discrete-time impulse response +* Extend `returnScipySignalLTI` to handle discrete-time systems +* Bug fixes and extensions for `step_info` diff --git a/doc/releases/0.9.1-notes.rst b/doc/releases/0.9.1-notes.rst new file mode 100644 index 000000000..d0ef8b733 --- /dev/null +++ b/doc/releases/0.9.1-notes.rst @@ -0,0 +1,51 @@ +.. currentmodule:: control + +.. _version-0.9.1: + +Version 0.9.1 Release Notes +---------------------------- + +* Released: 31 Dec 2021 +* `GitHub release page + `_ + +This is a minor release that includes new functionality for discrete +time systems (`dlqr`, `dlqe`, `drss`), flat systems (optimization and +constraints), a new time response data class, and many individual +improvements and bug fixes. + +New features +............ + +* Add optimization to flat systems trajectory generation +* Return a discrete time system with `drss` +* A first implementation of the singular value plot +* Include InfValue into settling min/max calculation for `step_info` +* New time response data class +* Check for unused subsystem signals in `InterconnectedSystem` +* New PID design function built on `sisotool` +* Modify discrete-time contour for Nyquist plots to indent around poles +* Additional I/O system type conversions +* Remove Python 2.7 support and leverage @ operator +* Discrete time LQR and LQE + +Improvements, bug fixes +....................... + +* Change `step_info` undershoot percentage calculation +* IPython LaTeX output only generated for small systems +* Fix warnings generated by `sisotool` +* Discrete time LaTeX repr of `StateSpace` systems +* Updated rlocus.py to remove warning by `sisotool` with `rlocus_grid` = True +* Refine automatic contour determination in Nyquist plot +* Fix `damp` method for discrete time systems with a negative real-valued pole +* Plot Nyquist frequency correctly in Bode plot in Hz +* Return frequency response for 0 and 1-state systems directly +* Fixed prewarp not working in `c2d` and `sample_system`, margin docstring + improvements +* Improved lqe calling functionality +* Vectorize `FRD` feedback function +* BUG: extrapolation in ufun throwing errors +* Allow use of SciPy for LQR, LQE +* Improve `forced_response` and its documentation +* Add documentation about use of axis('equal') in `pzmap`, `rlocus` diff --git a/doc/releases/0.9.2-notes.rst b/doc/releases/0.9.2-notes.rst new file mode 100644 index 000000000..2adec3fb1 --- /dev/null +++ b/doc/releases/0.9.2-notes.rst @@ -0,0 +1,126 @@ +.. currentmodule:: control + +.. _version-0.9.2: + +Version 0.9.2 Release Notes +---------------------------- + +* Released: 28 May 2022 +* `GitHub release page + `_ + +This is a minor release that includes I/O system enhancements, optimal +control enhancements, new functionality for stochastic systems, +updated system class functionality, bug fixes and improvements to +Nyquist plots and Nichols charts, and L-infinity norm for linear +systems. + +New features +............ + +* I/O system enhancements: + + - Modify the `ss`, `rss`, and `drss` functions to return + `LinearIOSystem` objects (instead of `StateSpace` objects). + This makes it easier to create LTI state space systems that can + be combined with other I/O systems without having to add a + conversation step. Since `LinearIOSystem` objects are also + `StateSpace` objects, no functionality is lost. (This change is + implemented through the introduction of a internal + `NamedIOSystem` class, to avoid import cycles.) + + - Added a new function `create_statefbk_iosystem` that creates an + I/O system for implementing a linear state feedback controller + of the form u = ud - Kp(x - xd). The function returns an I/O + system that takes xd, ud, and x as inputs and generates u as an + output. The `integral_action` keyword can be used to define a + set of outputs y = C x for which integral feedback is also + included: u = ud - Kp(x - xd) - Ki(C x - C xd). + + - The `lqr` and `dlqr` commands now accept an `integral_action` + keyword that allows outputs to be specified for implementing + integral action. The resulting gain matrix has the form K = + [Kp, Ki]. (This is useful for combining with the + `integral_action` functionality in `create_statefbk_iosystem`). + +* Optimal control enhancements: + + - Allow `t_eval` keyword in `input_output_response` to allow a + different set of time points to be used for the input vector and + the computed output. + + - The final cost is now saved in optimal control result. + +* Stochastic systems additions: + + - Added two new functions supporting random signals: + `white_noise`, which creates a white noise vector in continuous + or discrete time, and `correlation`, which calculates the + correlation function (or [cross-] correlation matrix), R(tau). + + - Added a new function `create_estimator_iosystem` that matches + the style of `create_statefbk_iosystem` (#710) and creates an + I/O system implementing an estimator (including covariance + update). + + - Added the ability to specify initial conditions for + `input_output_response` as a list of values, so that for + estimators that keep track of covariance you can set the initial + conditions as `[X0, P0]`. In addition, if you specify a fewer + number of initial conditions than the number of states, the + remaining states will be initialized to zero (with a warning if + the last initial condition is not zero). This allows the + initial conditions to be given as `[X0, 0]`. + + - Added the ability to specify inputs for `input_output_response` + as a list of variables. Each element in the list will be + treated as a portion of the input and broadcast (if necessary) + to match the time vector. This allows input for a system with + noise as `[U, V]` and inputs for a system with zero noise as + `[U, np.zero(n)]` (where U is an input signal and `np.zero(n)` + gets broadcast to match the time vector). + + - Added new Jupyter notebooks demonstrate the use of these + functions: `stochresp.ipynb`, `pvtol-outputfbk.ipynb`, + `kincar-fusion.ipynb`. + +* Updated system class functionality: + + - Changed the `LTI` class to use `poles` and `zeros` for + retrieving poles and zeros, with `pole` and `zero` generating a + `PendingDeprecationWarning` (which is ignored by default in + Python). (The MATLAB compatibility module still uses `pole` and + `zero`.) + + - The `TimeResponseData` and `FrequencyResponseData` objects now + implement a `to_pandas` method that creates a simple pandas + dataframe. + + - The `FrequencyResponseData` class is now used as the output for + frequency response produced by `freqresp` and a new function + `frequency_response` has been defined, to be consistent with the + `input_output_response` function. A `FrequencyResponseData` + object can be assigned to a tuple to provide magnitude, phase, + and frequency arrays, mirroring `TimeResponseData` functionality. + + - The `drss`, `rss`, `ss2tf`, `tf2ss`, `tf2io`, and `ss2io` + functions now all accept system and signal name arguments (via + `_process_namedio_keywords`. + + - The `ss` function can now accept function names as arguments, in + which case it creates a `NonlinearIOSystem` (I'm not sure how + useful this is, but `ss` is a sort of wrapper function that + calls the appropriate class constructor, so it was easy enough + to implement.) + +* Added `linform` to compute linear system L-infinity norm. + + +Improvements, bug fixes +....................... + +* Round to nearest integer decade for default omega vector. +* Interpret str-type args to `interconnect` as non-sequence. +* Fixes to various optimization-based control functions. +* Bug fix and improvements to Nyquist plots. +* Improvements to Nichols chart plotting. diff --git a/doc/releases/0.9.3-notes.rst b/doc/releases/0.9.3-notes.rst new file mode 100644 index 000000000..72ff4c8e8 --- /dev/null +++ b/doc/releases/0.9.3-notes.rst @@ -0,0 +1,129 @@ +.. currentmodule:: control + +.. _version-0.9.3: + +Version 0.9.3 Release Notes +---------------------------- + +* Released: date of release +* `GitHub release page + `_ + +This release adds support for collocation in finding optimal +trajectories, adds the ability to compute optimal trajectories for +flat systems, adds support for passivity indices and passivity tests +for discrete time systems, and includes support for gain scheduling +(in `create_statefbk_iosystem`. Setup is now done using setuptools +(`pip install .` instead of `python setup.py install`). + +This release requires Python 3.8 or higher. + + +New classes, functions, and methods +................................... + +The following new classes, functions, and methods have been added in +this release: + +* `ispassive`: check to see if an LTI system is passive (requires + `cvxopt`). + +* `get_output_fb_index`, `get_input_ff_index`: compute passivity indices. + +* `flatsys.BSplineFamily`: new family of basis functions for flat + systems. + +* `flatsys.solve_flat_ocp`: allows solution of optimal control + problems for differentially flat systems with trajectory and + terminal costs and constraints, mirroring the functionality of + `optimal.solve_ocp`. + +* `zpk`: create a transfer funtion from a zero, pole, gain + representation. + +* `find_eqpts` (now `find_operating_system`) now works for + discrete-time systems. + +Bug fixes +......... + +The following bugs have been fixed in this release: + +* Fixed `timebase` bug in `InterconnectedSystem` that gave errors for + discrete-time systems. + +* Fixed incorect dimension check in `matlab.lsim` for discrete-time + systems. + +* Fixed a bug in the computation of derivatives for the Bezier family + of basis functions with rescaled final time, and implemented a final + time rescaling for the polynomial family of basis functions. + +* Fixed bug in the processing of the `params` keyword for systems + without states. + +* Fixed a problem that was identified in PR #785, where + interconnecting a LinearIOSystem with a StateSpace system via the + interconnect function did not work correctly. + +* Fixed an issued regarding the way that `StateSpace._isstatic` was + defining a static system. New version requires nstates == 0. + +* Fixed a bug in which system and system name were not being handled + correctly when a `TransferFunction` system was combined with other + linear systems using interconnect. + +* Fixed a bug in `find_eqpt` where when y0 is None, dy in the root + function could not be calculated (since it tries to subtract + None). + + +Improvements +............ + +The following additional improvements and changes in functionality +were implemented in this release: + +* Handle `t_eval` for static systems in `input_output_response`. + +* Added support for discrete-time passive systems. + +* Added a more descriptive `__repr__` for basis functions (show the + family + information on attributes). + +* `StateSpace.sample` and `TransferFunction.sample` return a system + with the same input and output labels, which is convenient when + constructing interconnected systems using `interconnect`. + +* `optimal.solve_ocp`: add collocation method for solving optimal + control problems. Use `trajectory_method` parameter that be set to + either 'shooting' (default for discrete time systems) or + 'collocation' (default for continuous time systems). When + collocation is used, the `initial_guess` parameter can either be an + input trajectory (as before) or a tuple consisting of a state + trajectory and an input trajectory. + +* `StateSpace` objects can now be divided by a scalar. + +* `rlocus`, `sisotool`: Allow `initial_gain` to be a scalar (instead + of requiring and array). + +* `create_statefbk_iosystem` now supports gain scheduling. + +* `create_estimator_iosystem` now supports continous time systems. + + +Deprecations +............ + +The following functions have been newly deprecated in this release and +generate a warning message when used: + +* In the :ref:`optimal module `, constraints are + specified in the form ``LinearConstraint(A, lb, ub)`` or + ``NonlinearConstraint(fun, lb, ub)`` instead of the previous forms + ``(LinearConstraint, A, lb, ub)`` and ``(NonlinearConstraint, fun, + lb, ub)``. + +The listed items are slated to be removed in future releases (usually +the next major or minor version update). diff --git a/doc/releases/0.9.4-notes.rst b/doc/releases/0.9.4-notes.rst new file mode 100644 index 000000000..6cdff2f42 --- /dev/null +++ b/doc/releases/0.9.4-notes.rst @@ -0,0 +1,137 @@ +.. currentmodule:: control + +.. _version-0.9.4: + +Version 0.9.4 Release Notes +---------------------------- + +* Released: date of release +* `GitHub release page + `_ + +This release adds functions for optimization-based estimation and +moving horizon estimation, better handling of system and signal names, +as well a number of bug fixes, small enhancements, and updated +documentation. + + +New classes, functions, and methods +................................... + +The following new classes, functions, and methods have been added in +this release: + +* Added the `optimal.OptimalEstimationProblem` class, the + `optimal.compute_oep` function, and the + `optimal.create_mhe_iosystem` function, which compute the optimal + estimate for a (nonlinear) I/O system using an explicit cost + function of a fixed window of applied inputs and measured outputs. + +* Added `gaussian_likelyhood_cost` to create cost function + corresponding to Gaussian likelihoods for use in optimal estimation. + +* Added `disturbance_range_constraint` to create a range constraint on + disturbances. + +* Added `LTI.bandwidth` to compute the bandwidth of a linear system. + + +Bug fixes +......... + +The following bugs have been fixed in this release: + +* Fixed a bug in `interconnect` in which the system name was being + clobbered internally. + +* Fixed a bug in `bode_plot` where phase wrapping was not working when + there were multiple systems. + +* Fixed a bug in `root_locus_plot` in which the `ax` parameter was not + being handled correctly. + +* Fixed a bug in `create_statefbk_iosystem` that didn't proper handle + 1D gain schedules. + +* Fixed a bug in `rootlocus_pid_designer` where the Bode plot was + sometimes blank. + +* Fixed a bug in which signal labels for a `StateSpace` system were + lost when computing `forced_response`. + +* Fixed a bug in which the `damp` command was assuming a + continuous-time system when printing out pole locations (but the + return value was correct). + +* Fixed a bug in which signal names could be lost for state transfer + functions when using the `interconnect` function. + +* Fixed a bug in the block-diagonal schur matrix computation used in + `bdschur`. + + +Improvements +............ + +The following additional improvements and changes in functionality +were implemented in this release: + +* Added an `add_unused` keyword parameter to `interconnect` that + allows unused inputs or outputs to be added as inputs or outputs of + the interconnected system (useful for doing a "partial" + interconnection). + +* Added `control_indices` and `state_indices` to + `create_statefbk_iosystem` to allow partial interconnection (e.g., for + inner/outer loop construction). + +* `create_mpc_iosystem` now allows system and signal names to be + specified via appropriate keywords. + +* `TransferFunction` objects can now be displayed either in polynomial + form or in zpk form using the `display_format` parameter when + creating the system. + +* Allow discrete-time Nyquist plots for discrete-time systems with + poles at 0 and 1. + +* Generate a warning if `prewarp_frequency` is used in `sample_system` + for a discretization type that doesn't support it. + +* Converting a system from state space form to transfer function form + (and vice versa) now updates the system name to append "$converted", + removing an issue where two systems might have the same name. + + +Deprecations +............ + +The following functions have been newly deprecated in this release and +generate a warning message when used: + +* Changed `type` keyword for `create_statefbk_iosystem` to + `controller_type` ('linear' or 'nonlinear'). + +* `issys`: use ``isinstance(sys, ct.LTI)``. + +The listed items are slated to be removed in future releases (usually +the next major or minor version update). + + +Removals +........ + +The following functions and capabilities have been removed in this release: + +* `function`: function that was removed. + +* Other functionality that has been removed. + +Code that makes use of the functionality listed above will have to be +rewritten to work with this release of the python-control package. + + +Additional notes +................ + +Anything else that doesn't fit above. diff --git a/doc/releases/template.rst b/doc/releases/template.rst new file mode 100644 index 000000000..6212f410e --- /dev/null +++ b/doc/releases/template.rst @@ -0,0 +1,82 @@ +.. currentmodule:: control + +.. _version-M.nn.p: + +Version M.nn.p Release Notes +---------------------------- + +* Released: date of release +* `GitHub release page + `_ + +Summary of the primary changes for this release. This should be a +paragraph describing the key updates in this release. The individual +subsections below can provide more information, if needed. Any +sections that are empty can be removed. + +This version of `python-control` requires Python 3.x or higher, NumPy +2.y or higher, etc. + + +New classes, functions, and methods +................................... + +The following new classes, functions, and methods have been added in +this release: + +* `function`: what it does + + +Bug fixes +......... + +The following bugs have been fixed in this release: + +* `function`: short description of the bug and what was fixed. + +* Other bug fixes that are not necessarily associated with a specific + function. + + +Improvements +............ + +The following additional improvements and changes in functionality +were implemented in this release: + +* `function`: improvements made that relate to a specific function. + +* Other changes that are not necesarily attached to a specific function. + + +Deprecations +............ + +The following functions have been newly deprecated in this release and +generate a warning message when used: + +* `function`: functions that are newly deprecated. + +* Other calling patterns that will not be supported in the future. + +The listed items are slated to be removed in future releases (usually +the next major or minor version update). + + +Removals +........ + +The following functions and capabilities have been removed in this release: + +* `function`: function that was removed. + +* Other functionality that has been removed. + +Code that makes use of the functionality listed above will have to be +rewritten to work with this release of the python-control package. + + +Additional notes +................ + +Anything else that doesn't fit above. diff --git a/doc/requirements.txt b/doc/requirements.txt index 123dcc0a2..5fdf9113d 100644 --- a/doc/requirements.txt +++ b/doc/requirements.txt @@ -3,6 +3,7 @@ numpy scipy matplotlib sphinx_rtd_theme +sphinx-copybutton numpydoc ipykernel nbsphinx diff --git a/doc/response.rst b/doc/response.rst new file mode 100644 index 000000000..0058a500d --- /dev/null +++ b/doc/response.rst @@ -0,0 +1,1028 @@ +.. _response-chapter: + +.. currentmodule:: control + +********************************** +Input/Output Response and Plotting +********************************** + +The Python Control Systems Toolbox contains a number of functions for +computing and 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]) + phase_plane_plot(sys, limits) + 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 +or analysis (e.g., computation of the time or frequency response) and +returns an 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 = ct.nyquist_response([sys1, sys2]) + count = ct.response.count # number of encirclements of -1 + cplt = ct.nyquist_plot(response) # Nyquist plot + +Plotting commands return a :class:`ControlPlot` object that +provides access to the individual lines in the generated plot using +`cplt.lines`, allowing various aspects of the plot to be modified to +suit specific needs. + +The plotting function is also available via the ``plot()`` method of the +analysis object, allowing the following type of calls:: + + step_response(sys).plot() + frequency_response(sys).plot() + nyquist_response(sys).plot() + pp.streamlines(sys, limits).plot() + root_locus_map(sys).plot() + +The remainder of this chapter provides additional documentation on how +these response and plotting functions can be customized. + + +Time Response Data +================== + +Time responses are used to provide information on the behavior of a +system in response to a standard input (such as a step function or +impulse function), the initial state with no input, a custom function +of time, or any combination of the above. Time responses are useful +for evaluating system performance of either linear or nonlinear +systems, in continuous or discrete time. The time response for a +linear system to a standard input can be often computed exactly while +the responses of nonlinear systems or linear systems with arbitrary +input signals must be computed numerically. + +Continuous time signals in `python-control` are represented by the +value of the signal at a set of specified time points, with linear +interpolation between the time points. The time points need not be +uniformly spaced. Discrete time signals are represented by the value +of the signal at a uniformly-spaced sequence of times. + + +LTI response functions +---------------------- + +A number of functions are available for computing the output (and +state) response of an LTI systems: + +.. autosummary:: + + 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 computes +the response of the system to a given input from a zero or non-zero +initial condition. + +For linear time invariant (LTI) systems, the :func:`impulse_response`, +:func:`initial_response`, and :func:`step_response` functions will +automatically compute the time vector based on the poles and zeros of +the system. If a list of systems is passed, a common time vector will be +computed and a list of responses will be returned in the form of a +:class:`TimeResponseList` object. The :func:`forced_response` function can +also take a list of systems, to which a single common input is applied. +The :class:`TimeResponseList` object has a ``plot()`` method that will plot +each of the responses in turn, using a sequence of different colors with +appropriate titles and legends. + +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. + +.. _time-series-convention: + +Time series data conventions +---------------------------- + +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 +different components (e.g., inputs, outputs or states). For return +arguments, an array of times is given as the first returned argument, +followed by one or more arrays of variable values. This convention is used +throughout the library, for example in the functions +:func:`forced_response`, :func:`step_response`, :func:`impulse_response`, +and :func:`initial_response`. + +.. note:: The convention used by `python-control` is different from + the convention used in the `scipy.signal + `_ + library. In SciPy's convention the meaning of rows and columns is + interchanged. Thus, all 2D values must be transposed when they + are used with functions from `scipy.signal`_. + +The time vector is a 1D array with shape (n, ):: + + T = [t1, t2, t3, ..., tn ] + +Input, state, and output all follow the same convention. Columns are +different points in time, rows are different components:: + + U = [[u1(t1), u1(t2), u1(t3), ..., u1(tn)] + [u2(t1), u2(t2), u2(t3), ..., u2(tn)] + ... + ... + [ui(t1), ui(t2), ui(t3), ..., ui(tn)]] + +(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: + +The initial conditions are either 1D, or 2D with shape (j, 1):: + + X0 = [[x1] + [x2] + ... + ... + [xj]] + +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 +:attr:`~TimeResponseData.time`, :attr:`~TimeResponseData.outputs`, +:attr:`~TimeResponseData.states` and :attr:`~TimeResponseData.inputs` +properties: + +.. testsetup:: time_series, timeplot, freqplot, pzmap, ctrlplot + + import matplotlib.pyplot as plt + import numpy as np + import control as ct + +.. testcode:: time_series + + sys = ct.rss(4, 1, 1) + response = ct.step_response(sys) + plt.plot(response.time, response.outputs) + +The dimensions of the response properties depend on the function being +called and whether the system is SISO or MIMO. In addition, some time +response function can return multiple "traces" (input/output pairs), +such as the :func:`step_response` function applied to a MIMO system, +which will compute the step response for each input/output pair. See +:class:`TimeResponseData` for more details. + +The input, output, and state elements of the response can be accessed using +signal names in place of integer offsets: + +.. testcode:: time_series + + plt.plot(response.time, response.states['x[1]']) + +The time response functions can also be assigned to a tuple, which extracts +the time and output (and optionally the state, if the `return_x` keyword is +used). This allows simple commands for plotting: + +.. testcode:: time_series + + t, y = ct.step_response(sys) + plt.plot(t, y) + +The output of a MIMO LTI system can be plotted like this: + +.. testcode:: time_series + + sys = ct.rss(4, 2, 1) + + timepts = np.linspace(0, 10) + u = np.sin(timepts) + + t, y = ct.forced_response(sys, timepts, u) + plt.plot(t, y[0], label='y_0') + plt.plot(t, y[1], label='y_1') + +For multi-trace systems generated by :func:`step_response` and +:func:`impulse_response`, the input name used to generate the trace can be +used to access the appropriate input output pair: + +.. testcode:: time_series + + response = ct.step_response(sys) + plt.plot(response.time, response.outputs['y[1]', 'u[0]']) + +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 +response, can be computed like this:: + + ft = D @ U + +Finally, the `~TimeResponseData.to_pandas` method can be used to create +a pandas dataframe:: + + df = response.to_pandas() + +The column labels for the data frame are :code:`time` and the labels +for the input, output, and state signals ('u[i]', 'y[i]', and 'x[i]' +by default, but these can be changed using the `inputs`, `outputs`, +and `states` keywords when constructing the system, as described in +:func:`ss`, :func:`tf`, and other system creation functions. Note +that when exporting to pandas, "rows" in the data frame correspond to +time and "cols" (DataSeries) correspond to signals. + +Time response plots +------------------- + +The input/output time response functions ( :func:`forced_response`, +:func:`impulse_response`, :func:`initial_response`, +:func:`input_output_response`, :func:`step_response`) return a +:class:`TimeResponseData` object, which contains the time, input, +state, and output vectors associated with the simulation, as described +above. Time response data can be plotted with the +:func:`time_response_plot` function, which is also available as the +:func:`TimeResponseData.plot` method. For example, the step response +for a two-input, two-output can be plotted using the commands: + +.. testcode:: timeplot + + 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="sys_mimo") + response = ct.step_response(sys_mimo) + response.plot() + +.. testcode:: timeplot + :hide: + + plt.savefig('figures/timeplot-mimo_step-default.png') + plt.close('all') + +which produces the following plot: + +.. image:: figures/timeplot-mimo_step-default.png + :align: center + +A number of options are available in the :func:`time_response_plot` +function (and associated :func:`TimeResponseData.plot` method) to +customize the appearance of input output data. For data produced by +the :func:`impulse_response` and :func:`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 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: + +.. testcode:: timeplot + + ct.step_response(sys_mimo).plot( + plot_inputs=True, overlay_signals=True, + title="Step response for 2x2 MIMO system " + + "[plot_inputs, overlay_signals]") + +.. testcode:: timeplot + :hide: + + plt.savefig('figures/timeplot-mimo_step-pi_cs.png') + plt.close('all') + +.. image:: figures/timeplot-mimo_step-pi_cs.png + :align: center + +Input/output response plots created with either the +:func:`forced_response` or the +:func:`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' +as well as the ability to reposition the legends using the `legend_map` +keyword: + +.. testcode:: timeplot + + 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]") + +.. testcode:: timeplot + :hide: + + plt.savefig('figures/timeplot-mimo_ioresp-ov_lm.png') + +.. image:: figures/timeplot-mimo_ioresp-ov_lm.png + :align: center + +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: + +.. testcode:: timeplot + + 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_time_responses( + [resp1, resp2], trace_labels=["Scenario #1", "Scenario #2"]).plot( + transpose=True, + title="I/O responses for 2x2 MIMO system, multiple traces " + "[transpose]") + +.. testcode:: timeplot + :hide: + + plt.savefig('figures/timeplot-mimo_ioresp-mt_tr.png') + +.. image:: figures/timeplot-mimo_ioresp-mt_tr.png + :align: center + +This figure also illustrates the ability to create "multi-trace" plots +using the :func:`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:`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: + +.. testcode:: timeplot + + cplt = ct.step_response(sys_mimo).plot( + plot_inputs='overlay', overlay_signals=True, overlay_traces=True, + output_props=[{'color': c} for c in ['blue', 'orange']], + input_props=[{'color': c} for c in ['red', 'green']], + trace_props=[{'linestyle': s} for s in ['-', '--']]) + +.. testcode:: timeplot + :hide: + + plt.savefig('figures/timeplot-mimo_step-linestyle.png') + +.. image:: figures/timeplot-mimo_step-linestyle.png + :align: center + + +.. _frequency_response: + +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:`frequency_response` function, which will compute +the frequency response for one or more linear systems: + +.. testcode:: freqplot + + 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:`bode_plot` function: + +.. testcode:: freqplot + + ct.bode_plot(response, initial_phase=0) + +.. testcode:: freqplot + :hide: + + plt.savefig('figures/freqplot-siso_bode-default.png') + plt.close('all') + +.. image:: figures/freqplot-siso_bode-default.png + :align: center + +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:`FrequencyResponseData.plot` method: + +.. testcode:: freqplot + + 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() + +.. testcode:: freqplot + :hide: + + plt.savefig('figures/freqplot-mimo_bode-default.png') + plt.close('all') + +.. image:: figures/freqplot-mimo_bode-default.png + :align: center + +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: + +.. testcode:: freqplot + + ct.frequency_response(sys_mimo).plot( + plot_phase=False, overlay_inputs=True, overlay_outputs=True) + +.. testcode:: freqplot + :hide: + + plt.savefig('figures/freqplot-mimo_bode-magonly.png') + plt.close('all') + +.. image:: figures/freqplot-mimo_bode-magonly.png + :align: center + +The :func:`singular_values_response` function can be used to +generate Bode plots that show the singular values of a transfer +function: + +.. testcode:: freqplot + + ct.singular_values_response(sys_mimo).plot() + +.. testcode:: freqplot + :hide: + + plt.savefig('figures/freqplot-mimo_svplot-default.png') + plt.close('all') + +.. image:: figures/freqplot-mimo_svplot-default.png + :align: center + +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': + +.. testcode:: freqplot + + response.plot(plot_type='nichols') + +.. testcode:: freqplot + :hide: + + plt.savefig('figures/freqplot-siso_nichols-default.png') + plt.close('all') + +.. image:: figures/freqplot-siso_nichols-default.png + :align: center + +Another response function that can be used to generate Bode plots is the +:func:`gangof4_response` function, which computes the four primary +sensitivity functions for a feedback control system in standard form: + +.. testcode:: freqplot + + proc = ct.tf([1], [1, 1, 1], name="process") + ctrl = ct.tf([100], [1, 5], name="control") + response = ct.gangof4_response(proc, ctrl) + ct.bode_plot(response) # or response.plot() + +.. testcode:: freqplot + :hide: + + plt.savefig('figures/freqplot-gangof4.png') + plt.close('all') + +.. image:: figures/freqplot-gangof4.png + :align: center + +Nyquist analysis can be done using the :func:`nyquist_response` +function, which evaluates an LTI system along the Nyquist contour, and +the :func:`nyquist_plot` function, which generates a Nyquist plot: + +.. testcode:: freqplot + + sys = ct.tf([1, 0.2], [1, 1, 3, 1, 1], name='sys') + ct.nyquist_plot(sys) + +.. testcode:: freqplot + :hide: + + plt.savefig('figures/freqplot-nyquist-default.png') + plt.close('all') + +.. image:: figures/freqplot-nyquist-default.png + :align: center + +The :func:`nyquist_response` function can be used to compute +the number of encirclements of the -1 point and can return the Nyquist +contour that was used to generate the Nyquist curve. + +By default, the Nyquist response will generate small semicircles around +poles that are on the imaginary axis. In addition, portions of the Nyquist +curve that are far from the origin are scaled to a maximum value, while the +line style is changed to reflect the scaling, and it is possible to offset +the scaled portions to separate out the portions of the Nyquist curve at +:math:`\infty`. A number of keyword parameters for both are available for +:func:`nyquist_response` and :func:`nyquist_plot` to tune +the computation of the Nyquist curve and the way the data are plotted: + +.. testcode:: freqplot + + sys = ct.tf([1, 0.2], [1, 0, 1]) * ct.tf([1], [1, 0]) + nyqresp = ct.nyquist_response(sys) + nyqresp.plot( + max_curve_magnitude=6, max_curve_offset=1, + arrows=[0, 0.15, 0.3, 0.6, 0.7, 0.925], + title='Custom Nyquist plot') + print("Encirclements =", nyqresp.count) + +.. testoutput:: freqplot + :hide: + + Encirclements = 2 + +.. testcode:: freqplot + :hide: + + plt.savefig('figures/freqplot-nyquist-custom.png') + plt.close('all') + +.. image:: figures/freqplot-nyquist-custom.png + :align: center + +All frequency domain plotting functions will automatically compute the +range of frequencies to plot based on the poles and zeros of the frequency +response. Frequency points can be explicitly specified by including an +array of frequencies as a second argument (after the list of systems): + +.. testcode:: freqplot + + sys1 = ct.tf([1], [1, 2, 1], name='sys1') + sys2 = ct.tf([1, 0.2], [1, 1, 3, 1, 1], name='sys2') + omega = np.logspace(-2, 2, 500) + ct.frequency_response([sys1, sys2], omega).plot(initial_phase=0) + +.. testcode:: freqplot + :hide: + + plt.savefig('figures/freqplot-siso_bode-omega.png') + plt.close('all') + +.. image:: figures/freqplot-siso_bode-omega.png + :align: center + +Alternatively, frequency ranges can be specified by passing a list of the +form ``[wmin, wmax]``, where `wmin` and `wmax` are the minimum and +maximum frequencies in the (log-spaced) frequency range: + +.. testcode:: freqplot + + response = ct.frequency_response([sys1, sys2], [1e-2, 1e2]) + +The number of (log-spaced) points in the frequency can be specified using +the `omega_num` keyword parameter. + +Frequency response data can also be accessed directly and plotted manually: + +.. testcode:: freqplot + + sys = ct.rss(4, 2, 2, strictly_proper=True) # 2x2 MIMO system + fresp = ct.frequency_response(sys) + plt.loglog(fresp.omega, fresp.magnitude['y[1]', 'u[0]']) + +Access to frequency response data is available via the attributes +`omega`, `magnitude`, `phase`, and `response`, where `response` +represents the complex value of the frequency response at each frequency. +The `magnitude`, `phase`, and `response` arrays can be indexed using +either input/output indices or signal names, with the first index +corresponding to the output signal and the second input corresponding to +the input signal. + +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:`pole_zero_map` function returns the poles and +zeros and can be used to generate a pole/zero plot: + +.. testcode:: pzmap + :hide: + + plt.close('all') + +.. testcode:: pzmap + + sys = ct.tf([1, 2], [1, 2, 3], name='SISO transfer function') + response = ct.pole_zero_map(sys) + ct.pole_zero_plot(response) + +.. testcode:: pzmap + :hide: + + plt.savefig('figures/pzmap-siso_ctime-default.png') + plt.close('all') + +.. image:: figures/pzmap-siso_ctime-default.png + :align: center + +A root locus plot shows the location of the closed loop poles of a system +as a function of the loop gain: + +.. testcode:: pzmap + + ct.root_locus_map(sys).plot() + +.. testcode:: pzmap + :hide: + + plt.savefig('figures/rlocus-siso_ctime-default.png') + plt.close('all') + +.. image:: figures/rlocus-siso_ctime-default.png + :align: center + +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: + +.. testcode:: pzmap + :hide: + + cplt = ct.root_locus_map(sys).plot(initial_gain=3.506) + ax = cplt.axes[0, 0] + freqplot_rcParams = ct.config._get_param('ctrlplot', 'rcParams') + with plt.rc_context(freqplot_rcParams): + ax.set_title( + "Clicked at: -2.729+1.511j gain = 3.506 damping = 0.8748") + + plt.savefig('figures/rlocus-siso_ctime-clicked.png') + plt.close('all') + +.. image:: figures/rlocus-siso_ctime-clicked.png + :align: center + +Root locus diagrams are also supported for discrete-time systems, in which +case the grid is show inside the unit circle: + +.. testcode:: pzmap + + sysd = sys.sample(0.1) + ct.root_locus_plot(sysd) + +.. testcode:: pzmap + :hide: + + plt.savefig('figures/rlocus-siso_dtime-default.png') + plt.close('all') + +.. image:: figures/rlocus-siso_dtime-default.png + :align: center + +Lists of systems can also be given, in which case the root locus diagram +for each system is plotted in different colors: + +.. testcode:: pzmap + + 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) + +.. testcode:: pzmap + :hide: + + plt.savefig('figures/rlocus-siso_multiple-nogrid.png') + plt.close('all') + +.. image:: figures/rlocus-siso_multiple-nogrid.png + :align: center + + +Customizing Control Plots +========================= + +A set of common options are available to customize control plots in +various ways. The following general rules apply: + +* If a plotting function is called multiple times with data that generate + control plots with the same shape for the array of subplots, the new data + will be overlaid with the old data, with a change in color(s) for the + new data (chosen from the standard matplotlib color cycle). If not + overridden, the plot title and legends will be updated to reflect all + data shown on the plot. + +* If a plotting function is called and the shape for the array of subplots + does not match the currently displayed plot, a new figure is created. + Note that only the shape is checked, so if two different types of + plotting commands that generate the same shape of subplots are called + sequentially, the :func:`matplotlib.pyplot.figure` command should be used + to explicitly create a new figure. + +* The `ax` keyword argument can be used to direct the plotting + function to use a specific axes or array of axes. The value of the + `ax` keyword must have the proper number of axes for the plot (so a + plot generating a 2x2 array of subplots should be given a 2x2 array + of axes for the `ax` keyword). + +* The `color`, `linestyle`, `linewidth`, and other matplotlib line + property arguments can be used to override the default line properties. + If these arguments are absent, the default matplotlib line properties are + used and the color cycles through the default matplotlib color cycle. + + The :func:`bode_plot`, :func:`time_response_plot`, + and selected other commands can also accept a matplotlib format + string (e.g., 'r--'). The format string must appear as a positional + argument right after the required data argument. + + Note that line property arguments are the same for all lines generated as + part of a single plotting command call, including when multiple responses + are passed as a list to the plotting command. For this reason it is + often easiest to call multiple plot commands in sequence, with each + command setting the line properties for that system/trace. + +* The `label` keyword argument can be used to override the line labels + that are used in generating the title and legend. If more than one line + is being plotted in a given call to a plot command, the `label` + argument value should be a list of labels, one for each line, in the + order they will appear in the legend. + + For input/output plots (frequency and time responses), the labels that + appear in the legend are of the form ", , , ". The trace name is used only for multi-trace time + plots (for example, step responses for MIMO systems). Common information + present in all traces is removed, so that the labels appearing in the + legend represent the unique characteristics of each line. + + For non-input/output plots (e.g., Nyquist plots, pole/zero plots, root + locus plots), the default labels are the system name. + + If `label` is set to False, individual lines are still given + labels, but no legend is generated in the plot. (This can also be + accomplished by setting `legend_map` to False). + + Note: the `label` keyword argument is not implemented for describing + function plots or phase plane plots, since these plots are primarily + intended to be for a single system. Standard `matplotlib` commands can + be used to customize these plots for displaying information for multiple + systems. + +* The `legend_loc`, `legend_map` and `show_legend` keyword arguments + can be used to customize the locations for legends. By default, a + minimal number of legends are used such that lines can be uniquely + identified and no legend is generated if there is only one line in the + plot. Setting `show_legend` to False will suppress the legend and + setting it to True will force the legend to be displayed even if + there is only a single line in each axes. In addition, if the value of + the `legend_loc` keyword argument is set to a string or integer, it + will set the position of the legend as described in the + :func:`matplotlib.legend` documentation. Finally, `legend_map` can be + set to an array that matches the shape of the subplots, with each item + being a string indicating the location of the legend for that axes (or + None for no legend). + +* The `rcParams` keyword argument can be used to override the default + matplotlib style parameters used when creating a plot. The default + parameters for all control plots are given by the + `config.defaults['ctrlplot.rcParams']` dictionary and have the following + values: + + .. list-table:: + :widths: 50 50 + :header-rows: 1 + + * - Key + - Value + * - 'axes.labelsize' + - 'small' + * - 'axes.titlesize' + - 'small' + * - 'figure.titlesize' + - 'medium' + * - 'legend.fontsize' + - 'x-small' + * - 'xtick.labelsize' + - 'small' + * - 'ytick.labelsize' + - 'small' + + Only those values that should be changed from the default need to be + specified in the `rcParams` keyword argument. To override the + defaults for all control plots, update the + `config.defaults['ctrlplt.rcParams']` dictionary entries. For convenience, + this dictionary can also be accessed as `ct.rcParams`. + + The default values for style parameters for control plots can be restored + using :func:`reset_rcParams`. + +* For multi-input, multi-output time and frequency domain plots, the + `sharex` and `sharey` keyword arguments can be used to determine whether + and how axis limits are shared between the individual subplots. Setting + the keyword to 'row' will share the axes limits across all subplots in a + row, 'col' will share across all subplots in a column, 'all' will share + across all subplots in the figure, and False will allow independent + limits for each subplot. + + For Bode plots, the `share_magnitude` and `share_phase` keyword arguments + can be used to independently control axis limit sharing for the magnitude + and phase portions of the plot, and `share_frequency` can be used instead + of `sharex`. + +* The `title` keyword can be used to override the automatic creation + of the plot title. The default title is a string of the form + " plot for " where is a list of the sys + names contained in the plot (which is updated if the plotting + function is called multiple times). Use `title` = False to suppress + the title completely. The title can also be updated using the + :func:`~ControlPlot.set_plot_title` method for the returned control + plot object. + + The plot title is only generated if `ax` is None. + +The following code illustrates the use of some of these customization +features: + +.. testcode:: ctrlplot + + P = ct.tf([0.02], [1, 0.1, 0.01]) # servomechanism + C1 = ct.tf([1, 1], [1, 0]) # unstable + L1 = P * C1 + C2 = ct.tf([1, 0.05], [1, 0]) # stable + L2 = P * C2 + + plt.rcParams.update(ct.rcParams) + fig = plt.figure(figsize=[7, 4]) + ax_mag = fig.add_subplot(2, 2, 1) + ax_phase = fig.add_subplot(2, 2, 3) + ax_nyquist = fig.add_subplot(1, 2, 2) + + ct.bode_plot( + [L1, L2], ax=[ax_mag, ax_phase], + label=["$L_1$ (unstable)", "$L_2$ (unstable)"], + show_legend=False) + ax_mag.set_title("Bode plot for $L_1$, $L_2$") + ax_mag.tick_params(labelbottom=False) + fig.align_labels() + + ct.nyquist_plot(L1, ax=ax_nyquist, label="$L_1$ (unstable)") + ct.nyquist_plot( + L2, ax=ax_nyquist, label="$L_2$ (stable)", + max_curve_magnitude=22, legend_loc='upper right') + ax_nyquist.set_title("Nyquist plot for $L_1$, $L_2$") + + fig.suptitle("Loop analysis for servomechanism control design") + plt.tight_layout() + +.. testcode:: ctrlplot + :hide: + + plt.savefig('figures/ctrlplot-servomech.png') + plt.close('all') + +.. image:: figures/ctrlplot-servomech.png + :align: center + +As this example illustrates, python-control plotting functions and +Matplotlib plotting functions can generally be intermixed. One type of +plot for which this does not currently work is pole/zero plots with a +continuous-time omega-damping grid (including root locus diagrams), due to +the way that axes grids are implemented. As a workaround, the +:func:`pole_zero_subplots` command can be used to create an array +of subplots with different grid types, as illustrated in the following +example: + +.. testcode:: ctrlplot + + ax_array = ct.pole_zero_subplots(2, 1, grid=[True, False]) + 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], ax=ax_array[0, 0]) + cplt = ct.root_locus_plot([sys1, sys2], ax=ax_array[1, 0]) + cplt.set_plot_title("Root locus plots (w/ specified axes)") + cplt.figure.tight_layout() + +.. testcode:: ctrlplot + :hide: + + plt.savefig('figures/ctrlplot-pole_zero_subplots.png') + plt.close('all') + +.. image:: figures/ctrlplot-pole_zero_subplots.png + :align: center + +Alternatively, turning off the omega-damping grid (using `grid` = False or +`grid` = 'empty') allows use of Matplotlib layout commands. + + +Response and Plotting Reference +=============================== + +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:: + + describing_function_response + frequency_response + forced_response + gangof4_response + impulse_response + initial_response + input_output_response + nyquist_response + pole_zero_map + root_locus_map + singular_values_response + step_response + +Plotting functions +------------------ + +Plotting functions take a response or list of responses and return a +`ControlPlot` object that can be used to retrieve information about +the plot. Plotting functions can also be called with a system or list +of systems, in which case the appropriate response will be first +computed and then plotted. + +Note that the `phase_plane_plot` function is part of the +python-control namespace, but the individual functions for customizing +phase plots are contained in the `phaseplot` module, which should be +imported separately using ``import control.phaseplot as pp``. The +phase plane plotting functionality is described in more detail in the +:ref:`phase-plane-plots` section. + +.. autosummary:: + + bode_plot + describing_function_plot + nichols_plot + nyquist_plot + phase_plane_plot + phaseplot.circlegrid + phaseplot.equilpoints + phaseplot.meshgrid + phaseplot.separatrices + phaseplot.streamlines + phaseplot.vectorfield + pole_zero_plot + root_locus_plot + singular_values_plot + time_response_plot + + +Utility functions +----------------- +These additional functions can be used to manipulate response data or +carry out other operations in creating control plots. + + +.. autosummary:: + + phaseplot.boxgrid + combine_time_responses + pole_zero_subplots + reset_rcParams + + +Response and plotting classes +----------------------------- + +The following classes are used in generating response data. + +.. autosummary:: + + ControlPlot + DescribingFunctionResponse + FrequencyResponseData + FrequencyResponseList + NyquistResponseData + PoleZeroData + TimeResponseData + TimeResponseList diff --git a/doc/rlocus-siso_ctime-clicked.png b/doc/rlocus-siso_ctime-clicked.png deleted file mode 100644 index dff339371..000000000 Binary files a/doc/rlocus-siso_ctime-clicked.png and /dev/null differ diff --git a/doc/rlocus-siso_ctime-default.png b/doc/rlocus-siso_ctime-default.png deleted file mode 100644 index 636951ed5..000000000 Binary files a/doc/rlocus-siso_ctime-default.png and /dev/null differ diff --git a/doc/rlocus-siso_dtime-default.png b/doc/rlocus-siso_dtime-default.png deleted file mode 100644 index 301778729..000000000 Binary files a/doc/rlocus-siso_dtime-default.png and /dev/null differ diff --git a/doc/rlocus-siso_multiple-nogrid.png b/doc/rlocus-siso_multiple-nogrid.png deleted file mode 100644 index 07ece6505..000000000 Binary files a/doc/rlocus-siso_multiple-nogrid.png and /dev/null differ diff --git a/doc/robust_mimo.py b/doc/robust_mimo.py deleted file mode 120000 index f49c7abb6..000000000 --- a/doc/robust_mimo.py +++ /dev/null @@ -1 +0,0 @@ -../examples/robust_mimo.py \ No newline at end of file diff --git a/doc/robust_siso.py b/doc/robust_siso.py deleted file mode 120000 index 9d770ea2d..000000000 --- a/doc/robust_siso.py +++ /dev/null @@ -1 +0,0 @@ -../examples/robust_siso.py \ No newline at end of file diff --git a/doc/rss-balred.py b/doc/rss-balred.py deleted file mode 120000 index 04b921134..000000000 --- a/doc/rss-balred.py +++ /dev/null @@ -1 +0,0 @@ -../examples/rss-balred.py \ No newline at end of file diff --git a/doc/scherer_etal_ex7_H2_h2syn.py b/doc/scherer_etal_ex7_H2_h2syn.py deleted file mode 120000 index 527f80144..000000000 --- a/doc/scherer_etal_ex7_H2_h2syn.py +++ /dev/null @@ -1 +0,0 @@ -../examples/scherer_etal_ex7_H2_h2syn.py \ No newline at end of file diff --git a/doc/scherer_etal_ex7_Hinf_hinfsyn.py b/doc/scherer_etal_ex7_Hinf_hinfsyn.py deleted file mode 120000 index 7755a325f..000000000 --- a/doc/scherer_etal_ex7_Hinf_hinfsyn.py +++ /dev/null @@ -1 +0,0 @@ -../examples/scherer_etal_ex7_Hinf_hinfsyn.py \ No newline at end of file diff --git a/doc/secord-matlab.py b/doc/secord-matlab.py deleted file mode 120000 index 988ec5aca..000000000 --- a/doc/secord-matlab.py +++ /dev/null @@ -1 +0,0 @@ -../examples/secord-matlab.py \ No newline at end of file diff --git a/doc/simulating_discrete_nonlinear.ipynb b/doc/simulating_discrete_nonlinear.ipynb deleted file mode 120000 index 1712b729e..000000000 --- a/doc/simulating_discrete_nonlinear.ipynb +++ /dev/null @@ -1 +0,0 @@ -../examples/simulating_discrete_nonlinear.ipynb \ No newline at end of file diff --git a/doc/statesp.rst b/doc/statesp.rst new file mode 100644 index 000000000..752c488bb --- /dev/null +++ b/doc/statesp.rst @@ -0,0 +1,171 @@ +.. currentmodule:: control + +State Space Analysis and Design +=============================== + +This section describes the functions the are available to analyze +state space systems and design state feedback controllers. The +functionality described here is mainly specific to state space system +representations; additional functions for analysis of linear +input/output systems, including transfer functions and frequency +response data systems, are defined in the next section and can also be +applied to LTI systems in state space form. + + +State space properties +---------------------- + +The following basic attributes and methods are available for +:class:`StateSpace` objects: + +.. autosummary:: + + ~StateSpace.A + ~StateSpace.B + ~StateSpace.C + ~StateSpace.D + ~StateSpace.dt + ~StateSpace.shape + ~StateSpace.nstates + ~StateSpace.poles + ~StateSpace.zeros + ~StateSpace.dcgain + ~StateSpace.sample + ~StateSpace.returnScipySignalLTI + ~StateSpace.__call__ + +A complete list of attributes, methods, and properties is available in +the :class:`StateSpace` class documentation. + + +Similarity transformations and canonical forms +---------------------------------------------- + +State space systems can be transformed into different internal +representations representing a variety of standard canonical forms +that have the same input/output properties. The +:func:`similarity_transform` function allows a change of internal +state variable via similarity transformation and the +:func:`canonical_form` function converts systems into different +canonical forms. Additional information is available on the +documentation pages for the individual functions: + +.. autosummary:: + + canonical_form + observable_form + modal_form + reachable_form + similarity_transform + + +Time domain properties +---------------------- + +The following functions are available to analyze the time domain +properties of a linear system: + +.. autosummary:: + + damp + forced_response + impulse_response + initial_response + ssdata + step_info + step_response + +The time response functions (:func:`impulse_response`, +:func:`initial_response`, :func:`forced_response`, and +:func:`step_response`) are described in more detail in the +:ref:`response-chapter` chapter. + + +State feedback design +--------------------- + +State feedback controllers for a linear system are controllers of the form + +.. math:: + + u = -K x + +where :math:`K \in {\mathbb R}^{m \times n}` is a matrix of feedback +gains. Assuming the systems is controllable, the resulting closed +loop system will have dynamics matrix :math:`A - B K` with stable +eigenvalues. + +Feedback controllers can be designed using one of several +methods: + +.. autosummary:: + + lqr + place + place_acker + place_varga + +The :func:`place`, :func:`place_acker`, and :func:`place_varga` functions +place the eigenvalues of the closed loop system to a desired set of +values. Each takes the `A` and `B` matrices of the state space system +and the desired location of the eigenvalues and returns a gain matrix +`K`:: + + K = ct.place(sys.A, sys.B, E) + +where `E` is a 1D array of desired eigenvalues. + +The :func:`lqr` function computes the optimal state feedback controller +that minimizes the quadratic cost + +.. math:: + + J = \int_0^\infty (x' Q x + u' R u + 2 x' N u) dt + +by solving the appropriate Riccati equation. It returns the gain +matrix `K`, the solution to the Riccati equation `S`, and the location +of the closed loop eigenvalues `E`. It can be called in one of +several forms: + + * ``K, S, E = ct.lqr(sys, Q, R)`` + * ``K, S, E = ct.lqr(sys, Q, R, N)`` + * ``K, S, E = ct.lqr(A, B, Q, R)`` + * ``K, S, E = ct.lqr(A, B, Q, R, N)`` + +If :code:`sys` is a discrete-time system, the first two forms will compute +the discrete-time optimal controller. For the second two forms, the +:func:`dlqr` function can be used to compute the discrete-time optimal +controller. Additional arguments and details are given on the +:func:`lqr` and :func:`dlqr` documentation pages. + +State estimation +---------------- + +State estimators (or observers) are dynamical systems that estimate +the state of a system given a model of the dynamics and the input +and output signals as a function of time. Linear state estimators +have the form + +.. math:: + + \frac{d\hat x}{dt} = A \hat x + B u + L(y - C\hat x - D u), + +where :math:`\hat x` is an estimate of the state and :math:`L \in +{\mathbb R}^{n \times p}` represents the estimator gain. The gain +:math:`L` is chosen such that the eigenvalues of the matrix :math:`A - +L C` are stable, resulting in an estimate that converges to the value +of the system state. + +The gain matrix :math:`L` can be chosen using eigenvalue placement by +calling the :func:`place` function:: + + L = ct.place(sys.A.T, sys.C.T, E).T + +where `E` is the desired location of the eigenvalues and ``.T`` computes +the transpose of a matrix. + +More sophisticated estimators can be constructed by modeling noise and +disturbances as stochastic signals generated by a random process. +Estimators constructed using these models are described in more detail +in the :ref:`kalman-filter` section of the :ref:`stochastic-systems` +chapter. diff --git a/doc/steering-gainsched.py b/doc/steering-gainsched.py deleted file mode 120000 index 200e49543..000000000 --- a/doc/steering-gainsched.py +++ /dev/null @@ -1 +0,0 @@ -../examples/steering-gainsched.py \ No newline at end of file diff --git a/doc/steering-optimal.png b/doc/steering-optimal.png deleted file mode 100644 index 518de89a4..000000000 Binary files a/doc/steering-optimal.png and /dev/null differ diff --git a/doc/steering-optimal.py b/doc/steering-optimal.py deleted file mode 120000 index 506033ec1..000000000 --- a/doc/steering-optimal.py +++ /dev/null @@ -1 +0,0 @@ -../examples/steering-optimal.py \ No newline at end of file diff --git a/doc/steering.ipynb b/doc/steering.ipynb deleted file mode 120000 index a7f083b90..000000000 --- a/doc/steering.ipynb +++ /dev/null @@ -1 +0,0 @@ -../examples/steering.ipynb \ No newline at end of file diff --git a/doc/stochastic.rst b/doc/stochastic.rst new file mode 100644 index 000000000..881cf234a --- /dev/null +++ b/doc/stochastic.rst @@ -0,0 +1,408 @@ +.. currentmodule:: control + +.. _stochastic-systems: + +****************** +Stochastic Systems +****************** + +The Python Control Systems Library has support for basic operations +involving linear and nonlinear I/O systems with Gaussian white noise +as an input. + + +Stochastic Signals +================== + +A stochastic signal is a representation of the output of a random +process. NumPy and SciPy have a functions to calculate the covariance +and correlation of random signals: + + * :func:`numpy.cov` - with a single argument, returns the sample + variance of a vector random variable :math:`X \in \mathbb{R}^n` + where the input argument represents samples of :math:`X`. With + two arguments, returns the (cross-)covariance of random variables + :math:`X` and :math:`Y` where the input arguments represent + samples of the given random variables. + + * :func:`scipy.signal.correlate` - the "cross-correlation" between two + random (1D) sequences. If these sequences came from a random + process, this is a single sample approximation of the (discrete + time) correlation function. Use the function + :func:`scipy.signal.correlation_lags` to compute the lag + :math:`\tau` and :func:`scipy.signal.correlate` to get the (auto) + correlation function :math:`r_X(\tau)`. + +The python-control package has variants of these functions that do +appropriate processing for continuous-time models. + +The :func:`white_noise` function generates a (multi-variable) white +noise signal of specified intensity as either a sampled continuous-time +signal or a discrete-time signal. A white noise signal along a 1D +array of linearly spaced set of times `timepts` can be computing using + +.. code:: + + V = ct.white_noise(timepts, Q[, dt]) + +where `Q` is a positive definite matrix providing the noise +intensity and `dt` is the sampling time (or 0 for continuous time). + +In continuous time, the white noise signal is scaled such that the +integral of the covariance over a sample period is `Q`, thus +approximating a white noise signal. In discrete time, the white noise +signal has covariance `Q` at each point in time (without any +scaling based on the sample time). + +The python-control :func:`correlation` function computes the +correlation matrix :math:`{\mathbb E}\{X^\mathsf{T}(t+\tau) X(t)\}` or +the cross-correlation matrix :math:`{\mathbb E}\{X^\mathsf{T}(t+\tau) +Y(t)\}`, where :math:`\mathbb{E}` represents expectation: + +.. code:: + + tau, Rtau = ct.correlation(timepts, X[, Y]) + +The signal `X` (and `Y`, if present) represents a continuous or +discrete-time signal sampled at regularly spaced times `timepts`. The +return value provides the correlation :math:`R_\tau` between +:math:`X(t+\tau)` and :math:`X(t)` at a set of time offsets +:math:`\tau` (determined based on the spacing of entries in the +`timepts` vector. + +Note that the computation of the correlation function is based on a +single time signal (or pair of time signals) and is thus a very crude +approximation to the true correlation function between two random +processes. + +To compute the response of a linear (or nonlinear) system to a white +noise input, use the :func:`forced_response` (or +:func:`input_output_response`) function: + +.. testsetup:: + + import matplotlib.pyplot as plt + import numpy as np + import random + import control as ct + + random.seed(71) + np.random.seed(71) + +.. testcode:: + + a, c = 1, 1 + sys = ct.ss([[-a]], [[1]], [[c]], 0, name='sys') + timepts = np.linspace(0, 5, 1000) + Q = np.array([[0.1]]) + V = ct.white_noise(timepts, Q) + resp = ct.forced_response(sys, timepts, V) + resp.plot() + +.. testcode:: + :hide: + + plt.savefig('figures/stochastic-whitenoise-response.png') + plt.close('all') + +.. image:: figures/stochastic-whitenoise-response.png + :align: center + +The correlation function for the output can be computed using the +:func:`correlation` function and compared to the analytical expression: + +.. testcode:: + + tau, r_Y = ct.correlation(timepts, resp.outputs) + plt.plot(tau, r_Y, label='empirical') + plt.plot( + tau, c**2 * Q.item() / (2 * a) * np.exp(-a * np.abs(tau)), + label='approximation') + plt.xlabel(r"$\tau$") + plt.ylabel(r"$r_\tau$") + plt.title(f"Output correlation for {sys.name}") + plt.legend() + +.. testcode:: + :hide: + + plt.savefig('figures/stochastic-whitenoise-correlation.png') + plt.close('all') + +.. image:: figures/stochastic-whitenoise-correlation.png + :align: center + + +.. _kalman-filter: + +Linear Quadratic Estimation (Kalman Filter) +=========================================== + +A standard application of stochastic linear systems is the computation +of the optimal linear estimator under the assumption of white Gaussian +measurement and process noise. This estimator is called the linear +quadratic estimator (LQE) and its gains can be computed using the +:func:`lqe` function. + +We consider a continuous-time, state space system + +.. math:: + + \frac{dx}{dt} &= Ax + Bu + Gw \\ + y &= Cx + Du + v + +with unbiased process noise :math:`w` and measurement noise :math:`v` +with covariances satisfying + +.. math:: + + {\mathbb E}\{w w^T\} = QN,\qquad + {\mathbb E}\{v v^T\} = RN,\qquad + {\mathbb E}\{w v^T\} = NN + +where :math:`{\mathbb E}\{\cdot\}` represents expectation. + +The :func:`lqe` function computes the observer gain matrix :math:`L` +such that the stationary (non-time-varying) Kalman filter + +.. math:: + + \frac{d\hat x}{dt} = A \hat x + B u + L(y - C\hat x - D u), + +produces a state estimate :math:`\hat x` that minimizes the expected +squared error using the sensor measurements :math:`y`. + +As with the :func:`lqr` function, the :func:`lqe` function can be +called in several forms: + + * ``L, P, E = lqe(sys, QN, RN)`` + * ``L, P, E = lqe(sys, QN, RN, NN)`` + * ``L, P, E = lqe(A, G, C, QN, RN)`` + * ``L, P, E = lqe(A, G, C, QN, RN, NN)`` + +where :code:`sys` is an :class:`LTI` object, and `A`, `G`, `C`, `QN`, `RN`, +and `NN` are 2D arrays of appropriate dimension. If :code:`sys` is a +discrete-time system, the first two forms will compute the discrete +time optimal controller. For the second two forms, the :func:`dlqr` +function can be used. Additional arguments and details are given on +the :func:`lqr` and :func:`dlqr` documentation pages. + +.. testsetup:: kalman + + sys = ct.rss(2, 2, 2) + Qu = np.eye(2) + Qv = np.eye(2) + Qw = np.eye(2) + Qx = np.eye(2) + + timepts = np.linspace(0, 10) + U = ct.white_noise(timepts, Qv) + Y = ct.white_noise(timepts, Qw) + + X0 = np.zeros(2) + P0 = np.eye(2) + +The :func:`create_estimator_iosystem` function can be used to create +an I/O system implementing a Kalman filter, including integration of +the Riccati ODE. The command has the form + +.. testcode:: kalman + + estim = ct.create_estimator_iosystem(sys, Qv, Qw) + +The input to the estimator is the measured outputs `Y` and the system +input `U`. To run the estimator on a noisy signal, use the command + +.. testcode:: kalman + + resp = ct.input_output_response(estim, timepts, [Y, U], [X0, P0]) + +If desired, the :func:`correct` parameter can be set to False +to allow prediction with no additional sensor information: + +.. testcode:: kalman + + resp = ct.input_output_response( + estim, timepts, 0, [X0, P0], params={'correct': False}) + +The :func:`create_estimator_iosystem` and +:func:`create_statefbk_iosystem` functions can be used to combine an +estimator with a state feedback controller: + +.. testcode:: kalman + + K, _, _ = ct.lqr(sys, Qx, Qu) + estim = ct.create_estimator_iosystem(sys, Qv, Qw, P0) + ctrl, clsys = ct.create_statefbk_iosystem(sys, K, estimator=estim) + +The controller will have the same form as a full state feedback +controller, but with the system state :math:`x` input replaced by the +estimated state :math:`\hat x` (output of `estim`): + +.. math:: + + u = u_\text{d} - K (\hat x - x_\text{d}). + +The closed loop controller `clsys` includes both the state +feedback and the estimator dynamics and takes as its input the desired +state :math:`x_\text{d}` and input :math:`u_\text{d}`: + +.. testcode:: kalman + :hide: + + Xd = np.zeros((2, timepts.size)) + Ud = np.zeros((2, timepts.size)) + +.. testcode:: kalman + + resp = ct.input_output_response( + clsys, timepts, [Xd, Ud], [X0, np.zeros_like(X0), P0]) + + + +Maximum Likelihood Estimation +============================= + +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 they are (based on the given 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 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 *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. + +The :mod:`optimal` module described in the :ref:`optimal-module` +section implements functions for solving optimal estimation problems +using maximum likelihood estimation. The +:class:`optimal.OptimalEstimationProblem` class is used to define an +optimal estimation problem over a finite horizon:: + + oep = opt.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:`~optimal.OptimalEstimationProblem.compute_estimate` method:: + + estim = oep.compute_optimal( + Y, U[, initial_state=x0, initial_guess=(xhat, v)]) + xhat, v, w = estim.states, estim.inputs, estim.outputs + +For discrete-time systems, the +:func:`~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: + +.. autosummary:: + + optimal.gaussian_likelihood_cost + optimal.disturbance_range_constraint + +Examples +======== + +The following examples illustrate the use of tools from the stochastic +systems module. Background information for these examples can be +found in the FBS2e supplement on `Optimization-Based Control +`_). + +.. toctree:: + :maxdepth: 1 + + Kalman filter (kinematic car) + (Extended) Kalman filtering (PVTOL) + Moving horizon estimation (PVTOL) diff --git a/doc/stochresp.ipynb b/doc/stochresp.ipynb deleted file mode 120000 index 36190a54c..000000000 --- a/doc/stochresp.ipynb +++ /dev/null @@ -1 +0,0 @@ -../examples/stochresp.ipynb \ No newline at end of file diff --git a/doc/test_sphinxdocs.py b/doc/test_sphinxdocs.py new file mode 100644 index 000000000..1a49f357c --- /dev/null +++ b/doc/test_sphinxdocs.py @@ -0,0 +1,207 @@ +# test_sphinxdocs.py - pytest checks for user guide +# RMM, 23 Dec 2024 +# +# This set of tests is used to make sure that all primary functions are +# referenced in the documentation. + +import inspect +import os +import re +import sys +import warnings +from importlib import resources + +import pytest +import numpydoc.docscrape as npd + +import control +import control.flatsys + +# Location of the documentation and files to check +sphinx_dir = str(resources.files('control')) + '/../doc/generated/' + +# Functions that should not be referenced +legacy_functions = [ + 'acker', # place_acker + 'balred', # balanced_reduction + 'bode', # bode_plot + 'c2d', # sample_system + 'era', # eigensys_realization + 'evalfr', # use __call__() + 'find_eqpt', # find_operating_point + 'FRD', # FrequencyResponseData (or frd) + 'gangof4', # gangof4_plot + 'hsvd', # hankel_singular_values + 'minreal', # minimal_realization + 'modred', # model_reduction + 'nichols', # nichols_plot + 'norm', # system_norm + 'nyquist', # nyquist_plot + 'pzmap', # pole_zero_plot + 'rlocus', # root_locus_plot + 'rlocus', # root_locus_plot + 'root_locus', # root_locus_plot + 'solve_ocp', # solve_optimal_trajectory + 'solve_oep', # solve_optimal_estimate + 'solve_flat_ocp', # solve_flat_optimal +] + +# Functons that we can skip +object_skiplist = [ + control.NamedSignal, # np.ndarray members cause errors + control.FrequencyResponseList, # Use FrequencyResponseData + control.TimeResponseList, # Use TimeResponseData + control.common_timebase, # mainly internal use + control.cvxopt_check, # mainly internal use + control.pandas_check, # mainly internal use + control.slycot_check, # mainly internal use +] + +# Global list of objects we have checked +checked = set() + +# Decide on the level of verbosity (use -rP when running pytest) +verbose = 0 +standalone = False + +control_module_list = [ + control, control.flatsys, control.optimal, control.phaseplot] +@pytest.mark.parametrize("module", control_module_list) +def test_sphinx_functions(module, check_legacy=True): + + # Look through every object in the package + _info(f"Checking module {module}", 1) + + for name, obj in inspect.getmembers(module): + objname = ".".join([module.__name__, name]) + + # 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 + + elif inspect.isclass(obj) and issubclass(obj, Exception): + continue + + elif inspect.isclass(obj) or inspect.isfunction(obj): + # Skip anything that is inherited, hidden, deprecated, or checked + if inspect.isclass(module) and name not in module.__dict__ \ + or name.startswith('_') or obj in checked: + continue + else: + checked.add(obj) + + # Get the relevant information about this object + exists = os.path.exists(sphinx_dir + objname + ".rst") + deprecated = _check_deprecated(obj) + skip = obj in object_skiplist + referenced = f" {objname} referenced in sphinx docs" + legacy = name in legacy_functions + + _info(f" Checking {objname}", 2) + match exists, skip, deprecated, legacy: + case True, True, _, _: + _info(f"skipped object" + referenced, -1) + case True, _, True, _: + _warn(f"deprecated object" + referenced) + case True, _, _, True: + if check_legacy: + _warn(f"legacy object" + referenced) + case False, False, False, False: + _fail(f"{objname} not referenced in sphinx docs") + + +defaults_skiplist = [] +def test_config_defaults(): + # Keep track of params we found and params we have checked + config_rstdocs = dict() + config_defaults = control.config.defaults + + # Read the documentation file and extract the keys + with open('config.rst', 'r') as file: + for line in file: + if (key_match := re.search(r"py:data:: ([\w]+\.[\w]+)", line)): + if (key := key_match.group(1)) in defaults_skiplist: + _info(f"skipping config param {key}", 2) + continue + else: + _info(f"checking config param {key}", 2) + + if key in config_rstdocs: + _warn(f"config param '{key}' listed multiple times") + + # Get the default value and check it + while not re.match(r"^$|^\.\.", line := next(file)): + if (val_match := re.search(r":value: (.*)", line)): + _info(f"found value for config param {key}", 3) + config_rstdocs[key] = val_match.group(1) + + # Check to make sure (almost) all keys in config.defaults were documented + for key in config_defaults: + if key in defaults_skiplist: + config_rstdocs.pop(key, None) + continue + + if key not in config_rstdocs: + # TODO: change to _fail once everything is set up + _warn(f"config param '{key}' not documented") + continue + + # Make sure the listed default value is correct + try: + if (defval := config_defaults[key]) != eval(config_rstdocs[key]): + _warn(f"config param '{key}' has different default value: " + f"{config_rstdocs[key]} instead of {defval}") + except SyntaxError: + _warn(f"could not evaluate default value for config param '{key}'") + + # Done processing this key + config_rstdocs.pop(key, None) + + if config_rstdocs: + _warn(f"Unknown params in config.rst: {config_rstdocs}") + + +# Test MATLAB library separately (and after config_defaults) +def test_sphinx_matlab(): + import control.matlab + test_sphinx_functions(control.matlab, check_legacy=False) + + +def _check_deprecated(obj): + with warnings.catch_warnings(): + warnings.simplefilter('ignore') # debug via sphinx, not here + doc = npd.FunctionDoc(obj) + + doc_extended = "" if doc is None else "\n".join(doc["Extended Summary"]) + return ".. deprecated::" in doc_extended + + +# Utility function to warn with verbose output +def _info(str, level): + if verbose > level: + print(("INFO: " if level < 0 else " " * level) + str) + +def _warn(str, level=-1): + if verbose > level: + print("WARN: " + " " * level + str) + if not standalone: + warnings.warn(str, stacklevel=2) + +def _fail(str, level=-1): + if verbose > level: + print("FAIL: " + " " * level + str) + if not standalone: + pytest.fail(str) + + +if __name__ == "__main__": + verbose = 0 if len(sys.argv) == 1 else int(sys.argv[1]) + standalone = True + + for module in control_module_list: + test_sphinx_functions(module) + test_config_defaults() + test_sphinx_matlab() + diff --git a/doc/timeplot-mimo_ioresp-mt_tr.png b/doc/timeplot-mimo_ioresp-mt_tr.png deleted file mode 100644 index e4c800086..000000000 Binary files a/doc/timeplot-mimo_ioresp-mt_tr.png and /dev/null differ diff --git a/doc/timeplot-mimo_ioresp-ov_lm.png b/doc/timeplot-mimo_ioresp-ov_lm.png deleted file mode 100644 index 27dd89159..000000000 Binary files a/doc/timeplot-mimo_ioresp-ov_lm.png and /dev/null differ diff --git a/doc/timeplot-mimo_step-default.png b/doc/timeplot-mimo_step-default.png deleted file mode 100644 index 877764fbf..000000000 Binary files a/doc/timeplot-mimo_step-default.png and /dev/null differ diff --git a/doc/timeplot-mimo_step-linestyle.png b/doc/timeplot-mimo_step-linestyle.png deleted file mode 100644 index 9685ea6fa..000000000 Binary files a/doc/timeplot-mimo_step-linestyle.png and /dev/null differ diff --git a/doc/timeplot-mimo_step-pi_cs.png b/doc/timeplot-mimo_step-pi_cs.png deleted file mode 100644 index 6046c8cce..000000000 Binary files a/doc/timeplot-mimo_step-pi_cs.png and /dev/null differ diff --git a/doc/xferfcn.rst b/doc/xferfcn.rst new file mode 100644 index 000000000..627c47c33 --- /dev/null +++ b/doc/xferfcn.rst @@ -0,0 +1,192 @@ +.. currentmodule:: control + +Frequency Domain Analysis and Design +==================================== + +Transfer function properties +---------------------------- + +The following basic attributes and methods are available for +:class:`TransferFunction` objects: + +.. autosummary:: + + ~TransferFunction.num_array + ~TransferFunction.den_array + ~TransferFunction.shape + ~TransferFunction.poles + ~TransferFunction.zeros + ~TransferFunction.dcgain + ~TransferFunction.sample + ~TransferFunction.returnScipySignalLTI + ~TransferFunction.__call__ + +A complete list of attributes, methods, and properties is available in +the :class:`TransferFunction` class documentation. + + +Frequency domain properties +--------------------------- + +The following functions are available to analyze the frequency +domain properties of a linear systems: + +.. autosummary:: + + bandwidth + dcgain + frequency_response + phase_crossover_frequencies + singular_values_response + stability_margins + tfdata + +These functions work on both state space and transfer function models. +The :func:`frequency_response` and :func:`singular_values_response` +functions are described in more detail in the :ref:`response-chapter` +chapter. + + +Input/output norms +------------------ + +Continuous and discrete-time signals can be represented as a normed +linear space with the appropriate choice of signal norm. For +continuous time signals, the three most common norms are the 1-norm, +2-norm, and the :math:`\infty`-norm: + +.. list-table:: + :header-rows: 1 + + * - Name + - Continuous time + - Discrete time + * - 1-norm + - :math:`\int_{-\infty}^\infty |u(\tau)|, d\tau` + - :math:`\sum_k \|x[k]\|` + * - 2-norm + - :math:`\left(\int_{-\infty}^\infty |u(\tau)|^2, d\tau \right)^{1/2}` + - :math:`\left(\sum_k \|x[k]\|^2 \right)^{1/2}` + * - :math:`\infty`-norm + - :math:`\sup_t |u(t)|` + - :math:`\max_k \|x[k]\|` + +Given a norm for input signals and a norm for output signals, we can +define the *induced norm* for an input/output system. The +following table summarizes the induced norms for a transfer function +:math:`G(s)` with impulse response :math:`g(t)`: + +.. list-table:: + :header-rows: 1 + + * - + - :math:`\|u\|_2` + - :math:`\| u \|_\infty` + * - :math:`\| y \|_2` + - :math:`\| G \|_\infty` + - :math:`\infty` + * - :math:`\| y \|_\infty` + - :math:`\| G \|_2` + - :math:`\| g \|_1` + +The system 2-norm and :math:`\infty`-norm can be computed using +:func:`system_norm`:: + + sysnorm = ct.system_norm(sys, p=) + +where `val` is either 2 or 'inf' (the 1-norm is not yet implemented). + + +Stability margins +----------------- + +The stability margin of a system indicates the robustness of a +feedback system to perturbations that might cause the system to become +unstable. Standard measures of robustness include gain margin, phase +margin, and stability margin (distance to the -1 point on the Nyquist +curve). These margins are computed based on the loop transfer +function for a feedback system, assuming the loop will be closed using +negative feedback with gain 1. + +The :func:`stability_margins` function computes all three of these +margins as well as the frequencies at which they occur: + +.. doctest:: + + >>> sys = ct.tf(10, [1, 2, 3, 4]) + >>> gm, pm, sm, wpc, wgc, wms = ct.stability_margins(sys) + >>> print(f"Gain margin: {gm:2.2} at omega = {wpc:2.2} rad/sec") + Gain margin: 0.2 at omega = 1.7 rad/sec + + +Frequency domain synthesis +-------------------------- + +Synthesis of feedback controllers in the frequency domain can be done +using the following functions: + +.. autosummary:: + + h2syn + hinfsyn + mixsyn + +The :func:`mixsyn` function computes a feedback controller +:math:`C(s)` that minimizes the mixed sensitivity gain + +.. math:: + + \| W_1 S \|_\infty + \| W_2 C \|_\infty + \| W_3 T \|_\infty, + +where + +.. math:: + + S = \frac{1}{1 + P C}, \qquad T = \frac{P C}{1 + P C} + +are the sensitivity function and complementary sensitivity function, +and :math:`P(s)` represents the process dynamics. + +The :func:`h2syn` and :func:`hinfsyn` functions compute a feedback +controller :math:`C(s)` that minimizes the 2-norm and the +:math:`\infty`-norm of the sensitivity function for the closed loop +system, respectively. + + +Systems with time delays +------------------------ + +Time delays are not directly representable in `python-control`, but +the :func:`pade` function generates a linear system that approximates +a time delay to a given order: + +.. doctest:: + + >>> num, den = ct.pade(0.1, 3) + >>> delay = ct.tf(num, den, name='delay') + >>> print(delay) + : delay + Inputs (1): ['u[0]'] + Outputs (1): ['y[0]'] + + -s^3 + 120 s^2 - 6000 s + 1.2e+05 + --------------------------------- + s^3 + 120 s^2 + 6000 s + 1.2e+05 + +The plot below shows how the Pade approximation compares to a pure +time delay. + +.. testcode:: + :hide: + + import matplotlib.pyplot as plt + omega = np.logspace(0, 2) + delay_exact = ct.FrequencyResponseData(np.exp(-0.1j * omega ), omega) + cplt = ct.bode_plot( + [delay_exact/0.98, delay*0.98], omega, legend_loc='upper right', + label=['Exact delay', '3rd order Pade approx'], + title="Pade approximation versus pure time delay") + cplt.axes[0, 0].set_ylim([0.1, 10]) + plt.savefig('figures/xferfcn-delay-compare.png') + +.. image:: figures/xferfcn-delay-compare.png diff --git a/examples/.gitignore b/examples/.gitignore new file mode 100644 index 000000000..ad3049346 --- /dev/null +++ b/examples/.gitignore @@ -0,0 +1 @@ +.ipynb-clean diff --git a/examples/Makefile b/examples/Makefile new file mode 100644 index 000000000..554e078ff --- /dev/null +++ b/examples/Makefile @@ -0,0 +1,29 @@ +# Makefile for python-control examples +# RMM, 6 Jul 2024 +# +# This makefile allows cleanup and posting of Jupyter notebooks into +# Google Colab. +# +# Files are copied to Google Colab using rclone. In order to copy files to +# Google Colab, you should edit the GDRIVE variable to use the name of the +# drive you have configured in rclone and the path where you want to place +# the files. The default location is set up for the fbsbook.org@gmail.com +# Google Drive account, currently maintained by Richard Murray. + +NOTEBOOKS = cds110-L*_*.ipynb cds112-L*_*.ipynb +GDRIVE= fbsbook-gdrive:python-control/public/notebooks + +# Clean up notebooks to remove output +clean: .ipynb-clean +.ipynb-clean: $(NOTEBOOKS) + @for i in $?; do \ + echo jupyter nbconvert --clear-output clear-metadata $$i; \ + jupyter nbconvert \ + --ClearMetadataPreprocessor.enabled=True \ + --clear-output $$i; \ + done + touch $@ + +# Post Jupyter notebooks on course website +post: .ipynb-clean + rclone copy . $(GDRIVE) --include /cds110-L\*_\*.ipynb diff --git a/examples/bdalg-matlab.py b/examples/bdalg-matlab.py index 8911d6579..eaafaa59a 100644 --- a/examples/bdalg-matlab.py +++ b/examples/bdalg-matlab.py @@ -1,7 +1,7 @@ -# bdalg-matlab.py - demonstrate some MATLAB commands for block diagram altebra +# bdalg-matlab.py - demonstrate some MATLAB commands for block diagram algebra # RMM, 29 May 09 -from control.matlab import * # MATLAB-like functions +from control.matlab import ss, ss2tf, tf, tf2ss # MATLAB-like functions # System matrices A1 = [[0, 1.], [-4, -1]] diff --git a/examples/cds110-L1_servomech-python.ipynb b/examples/cds110-L1_servomech-python.ipynb new file mode 100644 index 000000000..a4e479492 --- /dev/null +++ b/examples/cds110-L1_servomech-python.ipynb @@ -0,0 +1,571 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "hairy-humidity", + "metadata": { + "id": "hairy-humidity" + }, + "source": [ + "
\n", + "

CDS 110, Lecture 1

\n", + "

Dynamics and Control of a Servomechanism System using Python-Control

\n", + "

Richard M. Murray, Winter 2024

\n", + "
\n", + "\n", + "[Open in Google Colab](https://colab.research.google.com/drive/1GKRYwtbHWSWc21EIYYIZUnbJqUorhY8w)\n", + "\n", + "In this lecture we show how to model an input/output system and design a controller for the system (using eigenvalue placement). This main intent of this lecture is to introduce the Python Control Systems Toolbox ([python-control](https://python-control.org)) and how it can be used to design a control system.\n", + "\n", + "We consider a class of control systems know as *servomechanisms*. Servermechanisms are mechanical systems that use feedback to provide high precision control of position and velocity. Some examples of servomechanisms are shown below:\n", + "\n", + "| | | |\n", + "| -- | -- | -- |\n", + "| Satellite Dish | Disk Drive | Robotics |\n", + "| \"Satellite | \"Disk | \"Disk\n", + "| [YouTube video](https://www.youtube.com/watch?v=HSGfE_sC2hw) | [YouTube video](https://www.youtube.com/watch?v=oQh8KDea6SI) | [YouTube video](https://www.youtube.com/watch?v=hg3TIFIxWCo)\n", + "| | |" + ] + }, + { + "cell_type": "markdown", + "id": "2c284896-bcff-4c06-b80d-d9d6fbc0690f", + "metadata": {}, + "source": [ + "The python-control toolbox can be installed using `pip` over from conda-forge. The code below will import the control toolbox either from your local installation or via pip. We use the prefix `ct` to access control toolbox commands:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "invalid-carnival", + "metadata": {}, + "outputs": [], + "source": [ + "# Import standard packages needed for this exercise\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "try:\n", + " import control as ct\n", + " print(\"python-control\", ct.__version__)\n", + "except ImportError:\n", + " !pip install control\n", + " import control as ct" + ] + }, + { + "cell_type": "markdown", + "id": "P7t3Nm4Tre2Z", + "metadata": { + "id": "P7t3Nm4Tre2Z" + }, + "source": [ + "## System dynamics\n", + "\n", + "Consider a simple mechanism consisting of a spring loaded arm that is driven by a motor, as shown below:\n", + "\n", + "
\"servomech-diagram\"
\n", + "\n", + "The motor applies a torque that twists the arm against a linear spring and moves the end of the arm across a rotating platter. The input to the system is the motor torque $\\tau_\\text{m}$. The force exerted by the spring is a nonlinear function of the head position due to the way it is attached.\n", + "\n", + "The equations of motion for the system are given by\n", + "\n", + "$$\n", + "J \\ddot \\theta = -b \\dot\\theta - k r\\sin\\theta + \\tau_\\text{m},\n", + "$$\n", + "\n", + "which can be written in state space form as\n", + "\n", + "$$\n", + "\\frac{d}{dt} \\begin{bmatrix} \\theta \\\\ \\theta \\end{bmatrix} =\n", + " \\begin{bmatrix} \\dot\\theta \\\\ -k r \\sin\\theta / J - b\\dot\\theta / J \\end{bmatrix}\n", + " + \\begin{bmatrix} 0 \\\\ 1/J \\end{bmatrix} \\tau_\\text{m}.\n", + "$$\n", + "\n", + "The system parameters are given by\n", + "\n", + "$$\n", + "k = 1,\\quad J = 100,\\quad b = 10,\n", + "\\quad r = 1,\\quad l = 2,\\quad \\epsilon = 0.01.\n", + "$$\n", + "\n", + "and we assume that time is measured in milliseconds (ms) and distance in centimeters (cm). (The constants here are made up and don't necessarily reflect a real disk drive, though the units and time constants are motivated by computer disk drives.)" + ] + }, + { + "cell_type": "markdown", + "id": "3e476db9", + "metadata": { + "id": "3e476db9" + }, + "source": [ + "The system dynamics can be modeled in python-control using a `NonlinearIOSystem` object, which we create with the `nlsys` function:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "27bb3c38", + "metadata": {}, + "outputs": [], + "source": [ + "# Parameter values\n", + "servomech_params = {\n", + " 'J': 100, # Moment of inertia of the motor\n", + " 'b': 10, # Angular damping of the arm\n", + " 'k': 1, # Spring constant\n", + " 'r': 1, # Location of spring contact on arm\n", + " 'l': 2, # Distance to the read head\n", + " 'eps': 0.01, # Magnitude of velocity-dependent perturbation\n", + "}\n", + "\n", + "# State derivative\n", + "def servomech_update(t, x, u, params):\n", + " # Extract the configuration and velocity variables from the state vector\n", + " theta = x[0] # Angular position of the disk drive arm\n", + " thetadot = x[1] # Angular velocity of the disk drive arm\n", + " tau = u[0] # Torque applied at the base of the arm\n", + "\n", + " # Get the parameter values\n", + " J, b, k, r = map(params.get, ['J', 'b', 'k', 'r'])\n", + "\n", + " # Compute the angular acceleration\n", + " dthetadot = 1/J * (\n", + " -b * thetadot - k * r * np.sin(theta) + tau)\n", + "\n", + " # Return the state update law\n", + " return np.array([thetadot, dthetadot])\n", + "\n", + "# System output (tip radial position + angular velocity)\n", + "def servomech_output(t, x, u, params):\n", + " l = params['l']\n", + " return np.array([l * x[0], x[1]])\n", + "\n", + "# System dynamics\n", + "servomech = ct.nlsys(\n", + " servomech_update, servomech_output, name='servomech',\n", + " params=servomech_params, states=['theta_', 'thdot_'],\n", + " outputs=['y', 'thdot'], inputs=['tau'])\n", + "\n", + "print(servomech)\n", + "print(\"\\nParams:\", servomech.params)" + ] + }, + { + "cell_type": "markdown", + "id": "competitive-terrain", + "metadata": { + "id": "competitive-terrain" + }, + "source": [ + "### Linearization\n", + "\n", + "To study the open loop dynamics of the system, we compute the linearization of the dynamics about the equilibrium point corresponding to $\\theta_\\text{e} = 15^\\circ$." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "senior-carpet", + "metadata": {}, + "outputs": [], + "source": [ + "# Convert the equilibrium angle to radians\n", + "theta_e = (15 / 180) * np.pi\n", + "\n", + "# Compute the input required to hold this position\n", + "u_e = servomech.params['k'] * servomech.params['r'] * np.sin(theta_e)\n", + "print(\"Equilibrium torque = %g\" % u_e)\n", + "\n", + "# Linearize the system about the equilibrium point\n", + "P = servomech.linearize([theta_e, 0], u_e)[0, 0]\n", + "# P.update_names(name='linservo')\n", + "print(\"Linearized dynamics:\\n\", P)" + ] + }, + { + "cell_type": "markdown", + "id": "qGtb17lO4PvM", + "metadata": { + "id": "qGtb17lO4PvM" + }, + "source": [ + "We can check the roots of the characteristic equation for this second order system using the `poles` method (we will learn how this works later in the term):" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "Vkji0Y8FT7oq", + "metadata": {}, + "outputs": [], + "source": [ + "# Check the stability of the equilibrium point\n", + "P.poles()" + ] + }, + { + "cell_type": "markdown", + "id": "naH-Nl7V4c2R", + "metadata": { + "id": "naH-Nl7V4c2R" + }, + "source": [ + "Alternatively, we can look at the eigenvalues of the \"dynamics matrix\" for the linearized system (we will learn about this formulation in [Lecture 3](cds110-L3_lti-systems.ipynb)):" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "aKxayyiK4NLj", + "metadata": {}, + "outputs": [], + "source": [ + "evals, evecs = np.linalg.eig(P.A)\n", + "print(evals)" + ] + }, + { + "cell_type": "markdown", + "id": "AYQlD5v9GcK4", + "metadata": { + "id": "AYQlD5v9GcK4" + }, + "source": [ + "Both approaches give the same result and we see that the system is stable (negative real part) with an imaginary component (so we can expect some oscillation in the response)." + ] + }, + { + "cell_type": "markdown", + "id": "instant-lancaster", + "metadata": { + "id": "instant-lancaster" + }, + "source": [ + "### Open loop step response\n", + "\n", + "A standard method for understanding the dynamics is to plot output of the system in response to an input that is set to 1 at time $t = 0$ (called the \"step response\").\n", + "\n", + "We use the `step_response` function to plot the step response of the linearized, open-loop system and compute the \"rise time\" and \"settling time\" (we will define these more formally next week)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "african-mauritius", + "metadata": {}, + "outputs": [], + "source": [ + "# Compute the step response\n", + "lin_response = ct.step_response(P)\n", + "timepts, output = lin_response.time, lin_response.outputs\n", + "\n", + "# Plot step response (input 0 to output 0)\n", + "plt.plot(timepts, output)\n", + "plt.xlabel(\"Time $t$ [ms]\")\n", + "plt.ylabel(\"Position $y$ [cm]\")\n", + "plt.title(\"Step response for the linearized, open-loop system\")\n", + "\n", + "# Compute and print properties of the step response\n", + "results = ct.step_info(P)\n", + "print(\"Rise time:\", results['RiseTime']) # 10-90% rise time\n", + "print(\"Settling time:\", results['SettlingTime']) # 2% error\n", + "\n", + "# Calculate the rise time start time by hand\n", + "rise_time_start = timepts[np.where(output > 0.1 * output[-1])[0][0]]\n", + "rise_time_stop = rise_time_start + results['RiseTime']\n", + "\n", + "# Add lines for the step response features\n", + "plt.plot([timepts[0], timepts[-1]], [output[-1], output[-1]], 'k--')\n", + "\n", + "plt.plot([rise_time_start, rise_time_start], [0, 2.5], 'k:')\n", + "plt.plot([rise_time_stop, rise_time_stop], [0, 2.5], 'k:')\n", + "plt.arrow(rise_time_start, 0.5, rise_time_stop - rise_time_start, 0)\n", + "plt.text((rise_time_start + rise_time_stop)/2, 0.6, '$T_r$')\n", + "\n", + "plt.plot([0, 0], [0, 2.5], 'k:')\n", + "plt.plot([results['SettlingTime'], results['SettlingTime']], [0, 2.5], 'k:')\n", + "plt.arrow(0, 1.5, results['SettlingTime'], 0)\n", + "plt.text(results['SettlingTime']/2, 1.6, '$T_s$');\n" + ] + }, + { + "cell_type": "markdown", + "id": "DoCK6MWlHaUO", + "metadata": { + "id": "DoCK6MWlHaUO" + }, + "source": [ + "We see that the open loop step response (for the linearized system) is stable, and that the final value is larger than 1 (this value just depends on the parameters in the system)." + ] + }, + { + "cell_type": "markdown", + "id": "nviDlWek9dge", + "metadata": { + "id": "nviDlWek9dge" + }, + "source": [ + "We can also compare the response of the linearized system to the full nonlinear system:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "qwrPhD499jbl", + "metadata": {}, + "outputs": [], + "source": [ + "nl_response = ct.input_output_response(servomech, timepts, U=1)\n", + "\n", + "# Plot step response (input 0 to output 0)\n", + "plt.plot(timepts, output, label=\"linearized\")\n", + "plt.plot(timepts, nl_response.outputs[0], label=\"nonlinear\")\n", + "\n", + "plt.xlabel(\"Time $t$ [ms]\")\n", + "plt.ylabel(\"Position $y$ [cm]\")\n", + "plt.title(\"Step response for the open-loop system\")\n", + "plt.legend();" + ] + }, + { + "cell_type": "markdown", + "id": "7YNmgE2XHmL3", + "metadata": { + "id": "7YNmgE2XHmL3" + }, + "source": [ + "We see that the nonlinear system responds differently. This is because the force exerted by the spring is nonlinear due to the kinematics of the mechanism design." + ] + }, + { + "cell_type": "markdown", + "id": "stuffed-premiere", + "metadata": { + "id": "stuffed-premiere" + }, + "source": [ + "## Feedback control design\n", + "\n", + "We next design a feedback controller for the system that allows the system to track a desired position $y_\\text{d}$ and sets the closed loop eigenvalues of the linearized system to $\\lambda_{1,2} = −10 \\pm 10 i$. We will learn how to do this more formally in later lectures, so if you aren't familiar with these techniques, that's OK.\n", + "\n", + "We make use of full state feedback of the form $u = -K(x - x_\\text{d})$ where $x_\\text{d}$ is the desired state of the system. The python-control `place` command can be used to compute the state feedback gains $K$ that set the closed loop poles at a desired location:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8NK8O6XT7B_a", + "metadata": {}, + "outputs": [], + "source": [ + "# Place the closed loop poles using feedback\n", + "# u = -K (x - xd)\n", + "\n", + "# Find the gains required to place the gains at the desired location\n", + "K = ct.place(P.A, P.B, [-10 + 10*1j, -10 - 10*1j])\n", + "print(f\"{K=}\\n\")\n", + "\n", + "# Implement an I/O system implementing this control law\n", + "def statefbk_output(t, x, u, params):\n", + " l = params.get('l', 2)\n", + " # Create the current and desired state\n", + " x = np.array([u[0] / l, u[1]])\n", + " xd = np.array([u[2] / l, u[3]])\n", + " return -K @ (x - xd)\n", + "\n", + "statefbk = ct.nlsys(\n", + " None, statefbk_output, name='statefbk',\n", + " inputs=['y', 'thdot', 'y_d', 'thdot_d'],\n", + " outputs=['tau']\n", + ")\n", + "print(statefbk)" + ] + }, + { + "cell_type": "markdown", + "id": "v1fb1pJ_zRLk", + "metadata": { + "id": "v1fb1pJ_zRLk" + }, + "source": [ + "Note that this controller has no internal state, but rather is a static input/output function." + ] + }, + { + "cell_type": "markdown", + "id": "ZR8EKtn-H9V7", + "metadata": { + "id": "ZR8EKtn-H9V7" + }, + "source": [ + "We can now connect the controller to the process using the `interconnect` command. Because we have named the signals in a careful way, the `interconnect` command can automatically connect everything together:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "associate-assistant", + "metadata": {}, + "outputs": [], + "source": [ + "clsys = ct.interconnect(\n", + " [servomech, statefbk],\n", + " inputs=['y_d', 'thdot_d'],\n", + " outputs=['y', 'tau']\n", + ")\n", + "print(clsys)" + ] + }, + { + "cell_type": "markdown", + "id": "4o5oy_6N51yf", + "metadata": { + "id": "4o5oy_6N51yf" + }, + "source": [ + "To examine the dynamics of the closed loop system, we plot the step response for the closed loop system and compute the rise time, settling time, and steady state error." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "qIEH3Trn53d4", + "metadata": {}, + "outputs": [], + "source": [ + "# Compute the step response of the closed loop system\n", + "timepts = np.linspace(0, 1)\n", + "clsys_resp = ct.input_output_response(clsys, timepts, [1, 0])\n", + "\n", + "plt.plot(clsys_resp.time, clsys_resp.outputs[0])\n", + "plt.xlabel(\"Time $t$ [ms]\")\n", + "plt.ylabel(\"Position $y$ [cm]\")\n", + "plt.title(\"Step response for closed loop, state space controller\")\n", + "\n", + "# Compute and print properties of the step response\n", + "results = ct.step_info(clsys_resp.outputs[0], timepts)\n", + "print(\"\")\n", + "print(f\"Rise time: {results['RiseTime']:.2g} ms\")\n", + "print(f\"Settling time: {results['SettlingTime']:.2g} ms\")\n", + "print(f\"Steady state error: {abs(results['SteadyStateValue'] - 1) * 100:.2g}%\")" + ] + }, + { + "cell_type": "markdown", + "id": "K-ZX_SDmN4rF", + "metadata": { + "id": "K-ZX_SDmN4rF" + }, + "source": [ + "Note the change in timescale (100 ms to 1 ms) and also the fact that the system now goes to the reference value ($y = 1$)." + ] + }, + { + "cell_type": "markdown", + "id": "e0176710", + "metadata": { + "id": "e0176710" + }, + "source": [ + "## Frequency response\n", + "\n", + "Another way to measure the performance of the system is to compute its frequency response.\n", + "\n", + "Roughly speaking, we set the input of the system to be of the form $u(t) = \\sin(\\omega t)$ and then look at the output signal $y(t)$. For a *linear* system, we can show that the output signal will have the form\n", + "\n", + "$$\n", + "y(t) = M \\sin(\\omega t + \\phi)\n", + "$$\n", + "\n", + "where the magnitude $M$ and phase $\\phi$ depend on the input frequency.\n", + "\n", + "We can plot the magnitude (also called the \"gain\") and the phase of the system as a function of the frequency $\\omega$ and plot these values on a log-log and log-linear scale (called a *Bode* plot):" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a8684cc1", + "metadata": {}, + "outputs": [], + "source": [ + "# Compute the linearization of the closed loop system\n", + "G = clsys.linearize([theta_e, 0], [0, 0], name=\"G\")\n", + "\n", + "# Plot the Bode plot (input[0] = yd, outut[0] = y)\n", + "response = ct.frequency_response(G[0, 0])\n", + "cplt = response.plot(title=\"Bode plot for G\", freq_label=\"Frequency [rad/ms]\")" + ] + }, + { + "cell_type": "markdown", + "id": "W_kzSIKGsSka", + "metadata": { + "id": "W_kzSIKGsSka" + }, + "source": [ + "Examination of the frequency response allows us to identify the range of input frequencies over which the control system can accurately track the input ($M(\\omega) \\approx 1$). For this system, we have good tracking up to approximately 10 rad/ms, which corresponds to about 1.6 kHz." + ] + }, + { + "cell_type": "markdown", + "id": "rocky-hobby", + "metadata": { + "id": "rocky-hobby" + }, + "source": [ + "## Trajectory tracking\n", + "\n", + "Another type of analysis we might do is to see how well the system can track a more complicated reference trajectory. For the disk drive example, we might move the system from one point on the disk to a second and then to a third (as we read different portions of the disk).\n", + "\n", + "To explore this, we can create simulations of the full nonlinear system with the linear controllers designed above and plot the response of the system. We do that here for a reference trajectory that has an initial value of 0 cm at $t = 0$, to 1 cm at $t = 0.5$, to 3 cm at $t = 1$, back to 2 cm at $t = 1.5$ ms:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "utility-community", + "metadata": {}, + "outputs": [], + "source": [ + "# Create a reference trajectory to track\n", + "timepts = np.linspace(0, 2.5, 250)\n", + "ref = [\n", + " np.concatenate((\n", + " np.ones(50) * 0,\n", + " np.ones(50) * 1,\n", + " np.ones(50) * 3,\n", + " np.ones(100) * 2,\n", + " )), 0]\n", + "\n", + "# Create the system response and plot the results\n", + "response = ct.input_output_response(clsys, timepts, ref)\n", + "plt.plot(response.time, response.outputs[0])\n", + "\n", + "# Plot the reference trajectory\n", + "plt.plot(timepts, ref[0], 'k--');\n", + "\n", + "# Label the plot\n", + "plt.xlabel(\"Time $t$ [ms]\")\n", + "plt.ylabel(\"Position $y$ [cm]\")\n", + "plt.title(\"Trajectory tracking with full nonlinear dynamics\");" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "074427a3", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/examples/cds110-L2_invpend-dynamics.ipynb b/examples/cds110-L2_invpend-dynamics.ipynb new file mode 100644 index 000000000..5b1bfc099 --- /dev/null +++ b/examples/cds110-L2_invpend-dynamics.ipynb @@ -0,0 +1,433 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "t0JD8EbaVWg-" + }, + "source": [ + "
\n", + "

CDS 110, Lecture 2

\n", + "

Nonlinear Dynamics (and Control) of an Inverted Pendulum System

\n", + "

Richard M. Murray, Winter 2024

\n", + "
\n", + "\n", + "[Open in Google Colab](https://colab.research.google.com/drive/1is083NiFdHcHX8Hq56oh_AO35nQGO4bh)\n", + "\n", + "In this lecture we investigate the nonlinear dynamics of an inverted pendulum system. More information on this example can be found in [FBS2e](https://fbswiki.org/wiki/index.php?title=FBS), Examples 3.3 and 5.4. This lecture demonstrates how to use [python-control](https://python-control.org) to analyze nonlinear systems, including creating phase plane plots.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Import the packages needed for the examples included in this notebook\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from math import pi\n", + "try:\n", + " import control as ct\n", + " print(\"python-control\", ct.__version__)\n", + "except ImportError:\n", + " !pip install control\n", + " import control as ct" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "P_ZMCccjvHY1" + }, + "source": [ + "## System model" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Msad1ficHjtc" + }, + "source": [ + "We consider an invereted pendulum, which is a simplified version of a balance system:\n", + "\n", + "
\"invpend.diagram\"
\n", + "\n", + "The dynamics for an inverted pendulum system can be written as:\n", + "\n", + "$$\n", + " \\dfrac{d}{dt} \\begin{bmatrix} \\theta \\\\ \\dot\\theta\\end{bmatrix} =\n", + " \\begin{bmatrix}\n", + " \\dot\\theta \\\\\n", + " \\dfrac{m g l}{J_\\text{t}} \\sin \\theta\n", + " - \\dfrac{b}{J_\\text{t}} \\dot\\theta\n", + " + \\dfrac{l}{J_\\text{t}} u \\cos\\theta\n", + " \\end{bmatrix}, \\qquad\n", + " y = \\theta,\n", + "$$\n", + "\n", + "where $m$ and $J_t = J + m l^2$ are the mass and (total) moment of inertia of the system to be balanced, $l$ is the distance from the base to the center of mass of the balanced body, $b$ is the coefficient of rotational friction, and $g$ is the acceleration due to gravity.\n", + "\n", + "We begin by creating a nonlinear model of the system:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "invpend_params = {'m': 1, 'l': 1, 'b': 0.5, 'g': 1}\n", + "def invpend_update(t, x, u, params):\n", + " m, l, b, g = params['m'], params['l'], params['b'], params['g']\n", + " umax = params.get('umax', 1)\n", + " usat = np.clip(u[0], -umax, umax)\n", + " return [x[1], -b/m * x[1] + (g * l / m) * np.sin(x[0] + usat/m)]\n", + "invpend = ct.nlsys(\n", + " invpend_update, states=['theta', 'thdot'],\n", + " inputs=['tau'], outputs=['theta', 'thdot'],\n", + " params=invpend_params, name='invpend')\n", + "print(invpend)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "IAoQAORFvLj1" + }, + "source": [ + "## Open loop dynamics" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "vOALp_IwjVxC" + }, + "source": [ + "The open loop dynamics of the system can be visualized using the `phase_plane_plot` command in python-control:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ct.phase_plane_plot(\n", + " invpend, [-2*pi - 1, 2*pi + 1, -2, 2], 8),\n", + "\n", + "# Draw lines at the downward equilibrium angles\n", + "plt.plot([-pi, -pi], [-2, 2], 'k--')\n", + "plt.plot([pi, pi], [-2, 2], 'k--')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "WZuvqNzeJinm" + }, + "source": [ + "We see that the vertical ($\\theta = 0$) equilibrium point is unstable, but the downward equlibrium points ($\\theta = \\pm \\pi$) are stable.\n", + "\n", + "Note also the *separatrices* for the equilibrium point, which gives insights into the regions of attraction (the red dashed line separates the two regions of attraction)." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "2JibDTJBKHIF" + }, + "source": [ + "## Proportional feedback\n", + "\n", + "We now stabilize the system using a simple proportional feedback controller:\n", + "\n", + "$$u = -k_\\text{p} \\theta.$$\n", + "\n", + "This controller can be designed as an input/output system that has no state dynamics, just a mapping from the inputs to the outputs:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Set up the controller\n", + "def propctrl_output(t, x, u, params):\n", + " kp = params.get('kp', 1)\n", + " return -kp * (u[0] - u[1])\n", + "propctrl = ct.nlsys(\n", + " None, propctrl_output, name=\"p_ctrl\",\n", + " inputs=['theta', 'r'], outputs='tau'\n", + ")\n", + "print(propctrl)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "AvU35WoBMFjt" + }, + "source": [ + "Note that the input to the controller is the reference value $r$ (which we will always take to be zero), the measured output $y$, which is the angle $\\theta$ for our system. The output of the controller is the system input $u$, corresponding to the force applied to the wheels.\n", + "\n", + "To connect the controller to the system, we use the [`interconnect`](https://python-control.readthedocs.io/en/latest/generated/control.interconnect.html) function, which will connect all signals that have the same names:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Create the closed loop system\n", + "clsys = ct.interconnect(\n", + " [invpend, propctrl], name='invpend w/ proportional feedback',\n", + " inputs=['r'], outputs=['theta', 'tau'], params={'kp': 1})\n", + "print(clsys)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "IIiSaHNuM1u_" + }, + "source": [ + "Note: you will see a warning when you run this command, because the output $\\dot\\theta$ (`thdot`) is not connected to anything. You can ignore this here, but as you get to more complicated examples, you should pay attention to warnings of this sort and make sure they are OK." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can now linearize the closed loop system at different gains and compute the eigenvalues to check for stability:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution\n", + "for kp in [0, 1, 10]:\n", + " print(\"kp = \", kp, \"; poles = \", clsys.linearize([0, 0], [0], params={'kp': kp}).poles())" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "iV4u31DsNWP9" + }, + "source": [ + "We see that at $k_\\text{p} = 10$ the eigenvalues (poles) of the closed loop system both have negative real part, and so the system is stabilized." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Jg87a3iZP-Qd" + }, + "source": [ + "### Phase portrait\n", + "\n", + "To study the resulting dynamics, we try plotting a phase plot using the same commands as before, but now for the closed loop system (with appropriate proportional gain):" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ct.phase_plane_plot(\n", + " clsys, [-2*pi, 2*pi, -2, 2], 8, params={'kp': 10});" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "jhU2gidqi-ri" + }, + "source": [ + "This plot is not very useful and has several errors. It shows the limitations of the default parameter values for the `phase_plane_plot` command.\n", + "\n", + "Some things to notice in this plot:\n", + "* Not all of the equilibrium points are showing up (there are two unstable equilibrium points that are missing)\n", + "* There is no detail about what is happening near the origin." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Improved phase portrait\n", + "\n", + "To fix these issues, we can do a couple of things:\n", + "* Restrict the range of the plot from $-3\\pi/2$ to $3\\pi/2$, which means that grid used to calculate the equilibrium point is a bit finer.\n", + "* Reset the grid spacing, so that we have more initial conditions around the edge of the plot and a finer search for equilibrium points.\n", + "\n", + "Here's some improved code:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "kp_params = {'kp': 10}\n", + "ct.phase_plane_plot(\n", + " clsys, [-1.5 * pi, 1.5 * pi, -2, 2], 8,\n", + " gridspec=[13, 7], params=kp_params,\n", + " plot_separatrices={'timedata': 5})\n", + "plt.plot([-pi, -pi], [-2, 2], 'k--', [ pi, pi], [-2, 2], 'k--')\n", + "plt.plot([-pi/2, -pi/2], [-2, 2], 'k:', [ pi/2, pi/2], [-2, 2], 'k:');" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Play around with some paramters to see what happens\n", + "fig, axs = plt.subplots(2, 2)\n", + "for i, kp in enumerate([3, 10]):\n", + " for j, umax in enumerate([0.2, 1]):\n", + " ct.phase_plane_plot(\n", + " clsys, [-1.5 * pi, 1.5 * pi, -2, 2], 8,\n", + " gridspec=[13, 7], plot_separatrices={'timedata': 5},\n", + " params={'kp': kp, 'umax': umax}, ax=axs[i, j])\n", + " axs[i, j].set_title(f\"{kp=}, {umax=}\")\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "dYeVbfG4kU-9" + }, + "source": [ + "## State space controller\n", + "\n", + "For the proportional controller, we have limited control over the dynamics of the closed loop system. For example, we see that the solutions near the origin are highly oscillatory in both the $k_\\text{p} = 3$ and $k_\\text{p} = 10$ cases.\n", + "\n", + "An alternative is to use \"full state feedback\", in which we set\n", + "\n", + "$$\n", + "u = -K (x - x_\\text{d}) = -k_1 (\\theta - \\theta_d) - k_2 (\\dot\\theta - \\dot\\theta_d).\n", + "$$\n", + "\n", + "We will learn more about how to design these controllers later, so if you aren't familiar with the idea of eigenvalue placement, just take this as a bit of \"control theory magic\" for now.\n", + "\n", + "To compute the gains, we make use of the `place` command, applied to the linearized system:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Linearize the system\n", + "P = invpend.linearize([0, 0], [0])\n", + "\n", + "# Place the closed loop eigenvalues (poles) at desired locations\n", + "K = ct.place(P.A, P.B, [-1 + 0.1j, -1 - 0.1j])\n", + "print(f\"{K=}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def statefbk_output(t, x, u, params):\n", + " K = params.get('K', np.array([0, 0]))\n", + " return -K @ (u[0:2] - u[2:])\n", + "statefbk = ct.nlsys(\n", + " None, statefbk_output, name=\"k_ctrl\",\n", + " inputs=['theta', 'thdot', 'theta_d', 'thdot_d'], outputs='tau'\n", + ")\n", + "print(statefbk)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "clsys_sf = ct.interconnect(\n", + " [invpend, statefbk], name='invpend w/ state feedback',\n", + " inputs=['theta_d', 'thdot_d'], outputs=['theta', 'tau'], params={'kp': 1})\n", + "print(clsys_sf)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "aGm3usQIvmqN" + }, + "source": [ + "### Phase portrait" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ct.phase_plane_plot(\n", + " clsys_sf, [-1.5 * pi, 1.5 * pi, -2, 2], 8,\n", + " gridspec=[13, 7], params={'K': K})\n", + "plt.plot([-pi, -pi], [-2, 2], 'k--', [ pi, pi], [-2, 2], 'k--')\n", + "plt.plot([-pi/2, -pi/2], [-2, 2], 'k:', [ pi/2, pi/2], [-2, 2], 'k:')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "A7UNUtfJwLWQ" + }, + "source": [ + "Note that the closed loop response around the upright equilibrium point is much less oscillatory (consistent with where we placed the closed loop eigenvalues of the system dynamics)." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "eVSa1Mvqycov" + }, + "source": [ + "## Things to try\n", + "\n", + "Here are some things to try with the above code:\n", + "* Try changing the locations of the closed loop eigenvalues in the `place` command\n", + "* Try resetting the limits of the control action (`umax`)\n", + "* Try leaving the state space controller fixed but changing the parameters of the system dynamics ($m$, $l$, $b$). Does the controller still stabilize the system?\n", + "* Plot the initial condition response of the system and see how to map time traces to phase plot traces." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/examples/cds110-L3_lti-systems.ipynb b/examples/cds110-L3_lti-systems.ipynb new file mode 100644 index 000000000..652bb1216 --- /dev/null +++ b/examples/cds110-L3_lti-systems.ipynb @@ -0,0 +1,515 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "gQZtf4ZqM8HL" + }, + "source": [ + "
\n", + "

CDS 110, Lecture 3

\n", + "

Python Tools for Analyzing Linear Systems

\n", + "

Richard M. Murray, Winter 2024

\n", + "
\n", + "\n", + "[Open in Google Colab](https://colab.research.google.com/drive/164yYvB86c2EvEcIHpUPNXCroiN9nnTAa)\n", + "\n", + "In this lecture we describe tools in the Python Control Systems Toolbox ([python-control](https://python-control.org)) that can be used to analyze linear systems, including some of the options available to present the information in different ways.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "try:\n", + " import control as ct\n", + " print(\"python-control\", ct.__version__)\n", + "except ImportError:\n", + " !pip install control\n", + " import control as ct" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": { + "id": "qMVGK15gNQw2" + }, + "source": [ + "## Coupled mass spring system\n", + "\n", + "Consider the spring mass system below:\n", + "\n", + "
\n", + "\n", + "We wish to analyze the time and frequency response of this system using a variety of python-control functions for linear systems analysis.\n", + "\n", + "### System dynamics\n", + "\n", + "The dynamics of the system can be written as\n", + "\n", + "$$\n", + "\\begin{aligned}\n", + " m \\ddot{q}_1 &= -2 k q_1 - c \\dot{q}_1 + k q_2, \\\\\n", + " m \\ddot{q}_2 &= k q_1 - 2 k q_2 - c \\dot{q}_2 + ku\n", + "\\end{aligned}\n", + "$$\n", + "\n", + "or in state space form:\n", + "\n", + "$$\n", + "\\begin{aligned}\n", + " \\dfrac{dx}{dt} &= \\begin{bmatrix}\n", + " 0 & 0 & 1 & 0 \\\\\n", + " 0 & 0 & 0 & 1 \\\\[0.5ex]\n", + " -\\dfrac{2k}{m} & \\dfrac{k}{m} & -\\dfrac{c}{m} & 0 \\\\[0.5ex]\n", + " \\dfrac{k}{m} & -\\dfrac{2k}{m} & 0 & -\\dfrac{c}{m}\n", + " \\end{bmatrix} x\n", + " + \\begin{bmatrix}\n", + " 0 \\\\ 0 \\\\[0.5ex] 0 \\\\[1ex] \\dfrac{k}{m}\n", + " \\end{bmatrix} u.\n", + "\\end{aligned}\n", + "$$\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Define the parameters for the system\n", + "m, c, k = 1, 0.1, 2\n", + "# Create a linear system\n", + "A = np.array([\n", + " [0, 0, 1, 0],\n", + " [0, 0, 0, 1],\n", + " [-2*k/m, k/m, -c/m, 0],\n", + " [k/m, -2*k/m, 0, -c/m]\n", + "])\n", + "B = np.array([[0], [0], [0], [k/m]])\n", + "C = np.array([[1, 0, 0, 0], [0, 1, 0, 0]])\n", + "D = 0\n", + "\n", + "sys = ct.ss(A, B, C, D, outputs=['q1', 'q2'], name=\"coupled spring mass\")\n", + "print(sys)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "kobxJ1yG4v_1" + }, + "source": [ + "Another way to get these same dynamics is to define an input/output system:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "coupled_params = {'m': 1, 'c': 0.1, 'k': 2}\n", + "def coupled_update(t, x, u, params):\n", + " m, c, k = params['m'], params['c'], params['k']\n", + " return np.array([\n", + " x[2], x[3],\n", + " -2*k/m * x[0] + k/m * x[1] - c/m * x[2],\n", + " k/m * x[0] -2*k/m * x[1] - c/m * x[3] + k/m * u[0]\n", + " ])\n", + "def coupled_output(t, x, u, params):\n", + " return x[0:2]\n", + "coupled = ct.nlsys(\n", + " coupled_update, coupled_output, inputs=1, outputs=['q1', 'q2'],\n", + " states=['q1', 'q2', 'q1dot', 'q2dot'], name='coupled (nl)',\n", + " params=coupled_params\n", + ")\n", + "print(coupled.linearize([0, 0, 0, 0], [0]))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "YmH87LEXWo1U" + }, + "source": [ + "### Initial response\n", + "\n", + "The `initial_response` function can be used to compute the response of the system with no input, but starting from a given initial condition. This function returns a response object, which can be used for plotting." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "response = ct.initial_response(sys, X0=[1, 0, 0, 0])\n", + "cplt = response.plot()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Y4aAxYvZRBnD" + }, + "source": [ + "If you want to play around with the way the data are plotted, you can also use the response object to get direct access to the states and outputs." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Plot the outputs of the system on the same graph, in different colors\n", + "t = response.time\n", + "x = response.states\n", + "plt.plot(t, x[0], 'b', t, x[1], 'r')\n", + "plt.legend(['$x_1$', '$x_2$'])\n", + "plt.xlim(0, 50)\n", + "plt.ylabel('States')\n", + "plt.xlabel('Time [s]')\n", + "plt.title(\"Initial response from $x_1 = 1$, $x_2 = 0$\");" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Cou0QVnkTou9" + }, + "source": [ + "There are also lots of options available in `initial_response` and `.plot()` for tuning the plots that you get." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for X0 in [[1, 0, 0, 0], [0, 2, 0, 0], [1, 2, 0, 0], [0, 0, 1, 0], [0, 0, 2, 0]]:\n", + " response = ct.initial_response(sys, T=20, X0=X0)\n", + " response.plot(label=f\"{X0=}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "b3VFPUBKT4bh" + }, + "source": [ + "### Step response\n", + "\n", + "Similar to `initial_response`, you can also generate a step response for a linear system using the `step_response` function, which returns a time response object:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "cplt = ct.step_response(sys).plot()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "iHZR1Q3IcrFT" + }, + "source": [ + "We can analyze the properties of the step response using the `stepinfo` command:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "step_info = ct.step_info(sys)\n", + "print(\"Input 0, output 0 rise time = \",\n", + " step_info[0][0]['RiseTime'], \"seconds\\n\")\n", + "step_info" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "F8KxXwqHWFab" + }, + "source": [ + "Note that by default the inputs are not included in the step response plot (since they are a bit boring), but you can change that:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "stepresp = ct.step_response(sys)\n", + "cplt = stepresp.plot(plot_inputs=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Plot the inputs on top of the outputs\n", + "cplt = stepresp.plot(plot_inputs='overlay')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Look at the \"shape\" of the step response\n", + "print(f\"{stepresp.time.shape=}\")\n", + "print(f\"{stepresp.inputs.shape=}\")\n", + "print(f\"{stepresp.states.shape=}\")\n", + "print(f\"{stepresp.outputs.shape=}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "FDfZkyk1ly0T" + }, + "source": [ + "## Forced response\n", + "\n", + "To compute the response to an input, using the convolution equation, we can use the `forced_response` function:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "T = np.linspace(0, 50, 500)\n", + "U1 = np.cos(T)\n", + "U2 = np.sin(3 * T)\n", + "\n", + "resp1 = ct.forced_response(sys, T, U1)\n", + "resp2 = ct.forced_response(sys, T, U2)\n", + "resp3 = ct.forced_response(sys, T, U1 + U2)\n", + "\n", + "# Plot the individual responses\n", + "resp1.sysname = 'U1'; resp1.plot(color='b')\n", + "resp2.sysname = 'U2'; resp2.plot(color='g')\n", + "resp3.sysname = 'U1 + U2'; resp3.plot(color='r');" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Show that the system response is linear\n", + "cplt = resp3.plot()\n", + "cplt.axes[0, 0].plot(resp1.time, resp1.outputs[0] + resp2.outputs[0], 'k--')\n", + "cplt.axes[1, 0].plot(resp1.time, resp1.outputs[1] + resp2.outputs[1], 'k--')\n", + "cplt.axes[2, 0].plot(resp1.time, resp1.inputs[0] + resp2.inputs[0], 'k--');" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Show that the forced response from non-zero initial condition is not linear\n", + "X0 = [1, 0, 0, 0]\n", + "resp1 = ct.forced_response(sys, T, U1, X0=X0)\n", + "resp2 = ct.forced_response(sys, T, U2, X0=X0)\n", + "resp3 = ct.forced_response(sys, T, U1 + U2, X0=X0)\n", + "\n", + "cplt = resp3.plot()\n", + "cplt.axes[0, 0].plot(resp1.time, resp1.outputs[0] + resp2.outputs[0], 'k--')\n", + "cplt.axes[1, 0].plot(resp1.time, resp1.outputs[1] + resp2.outputs[1], 'k--')\n", + "cplt.axes[2, 0].plot(resp1.time, resp1.inputs[0] + resp2.inputs[0], 'k--');" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "mo7hpvPQkKke" + }, + "source": [ + "### Frequency response" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Manual computation of the frequency response\n", + "resp = ct.input_output_response(sys, T, np.sin(1.35 * T))\n", + "\n", + "cplt = resp.plot(\n", + " plot_inputs='overlay', \n", + " legend_map=np.array([['lower left'], ['lower left']]),\n", + " label=[['q1', 'u[0]'], ['q2', None]])" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "muqeLlJJ6s8F" + }, + "source": [ + "The magnitude and phase of the frequency response is controlled by the transfer function,\n", + "\n", + "$$\n", + "G(s) = C (sI - A)^{-1} B + D\n", + "$$\n", + "\n", + "which can be computed using the `ss2tf` function:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "try:\n", + " G = ct.ss2tf(sys, name='u to q1, q2')\n", + "except ct.ControlMIMONotImplemented:\n", + " # Create SISO transfer functions, in case we don't have slycot\n", + " G = ct.ss2tf(sys[0, 0], name='u to q1')\n", + "print(G)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Gain and phase for the simulation above\n", + "from math import pi\n", + "val = G(1.35j)\n", + "print(f\"{G(1.35j)=}\")\n", + "print(f\"Gain: {np.absolute(val)}\")\n", + "print(f\"Phase: {np.angle(val)}\", \" (\", np.angle(val) * 180/pi, \"deg)\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Gain and phase at s = 0 (= steady state step response)\n", + "print(f\"{G(0)=}\")\n", + "print(\"Final value of step response:\", stepresp.outputs[0, 0, -1])" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "I9eFoXm92Jgj" + }, + "source": [ + "The frequency response across all frequencies can be computed using the `frequency_response` function:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "freqresp = ct.frequency_response(sys)\n", + "cplt = freqresp.plot()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "pylQb07G2cqe" + }, + "source": [ + "By default, frequency responses are plotted using a \"Bode plot\", which plots the log of the magnitude and the (linear) phase against the log of the forcing frequency.\n", + "\n", + "You can also call the Bode plot command directly, and change the way the data are presented:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "cplt = ct.bode_plot(sys, overlay_outputs=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "I_LTjP2J6gqx" + }, + "source": [ + "Note the \"dip\" in the frequency response for y[1] at frequency 2 rad/sec, which corresponds to a \"zero\" of the transfer function.\n", + "\n", + "This dip becomes even more pronounced in the case of low damping coefficient $c$:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "cplt = ct.frequency_response(\n", + " coupled.linearize([0, 0, 0, 0], [0], params={'c': 0.01})\n", + ").plot(overlay_outputs=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "c7eWm8LCGh01" + }, + "source": [ + "## Additional resources\n", + "* [Code for FBS2e figures](https://fbswiki.org/wiki/index.php/Category:Figures): Python code used to generate figures in FBS2e\n", + "* [Python-control documentation for plotting time responses](https://python-control.readthedocs.io/en/0.10.0/plotting.html#time-response-data)\n", + "* [Python-control documentation for plotting frequency responses](https://python-control.readthedocs.io/en/0.10.0/plotting.html#frequency-response-data)\n", + "* [Python-control examples](https://python-control.readthedocs.io/en/0.10.0/examples.html): lots of Python and Jupyter examples of control system analysis and design\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/examples/cds110-L4a_predprey-statefbk.ipynb b/examples/cds110-L4a_predprey-statefbk.ipynb new file mode 100644 index 000000000..487a4e40b --- /dev/null +++ b/examples/cds110-L4a_predprey-statefbk.ipynb @@ -0,0 +1,411 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "gQZtf4ZqM8HL" + }, + "source": [ + "
\n", + "

CDS 110, Lecture 4a

\n", + "

Dynamics and State Feedback Control of a Predator-Prey Model

\n", + "

Richard M. Murray, Winter 2024

\n", + "
\n", + "\n", + "[Open in Google Colab](https://colab.research.google.com/drive/1yMOSRNDDNtm-TJGMXX3NS7F4XybOuch-)\n", + "\n", + "In this lecture we describe the use of state space control concepts to analyze and stabilize the dynamics of a nonlinear model of a predator-prey system.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "try:\n", + " import control as ct\n", + " print(\"python-control\", ct.__version__)\n", + "except ImportError:\n", + " !pip install control\n", + " import control as ct" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "qMVGK15gNQw2" + }, + "source": [ + "## Predator-Prey System Model\n", + "\n", + "We consider a predator-prey system, in which a predator species (lynxes) interacts with a prey species (hares):\n", + "\n", + "
\n", + " \"predprey-photo\"\n", + "   \n", + " \"predprey-photo\"\n", + "
\n", + "\n", + "The graph on the right shows the populations of hares and lynxes between 1845 and 1935 in a section of the Canadian Rockies (MacLulich, 1937)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Define the dynamics for the predator-prey system (no input)\n", + "predprey_params = {'r': 1.6, 'd': 0.56, 'b': 0.6, 'k': 125, 'a': 3.2, 'c': 50}\n", + "def predprey_update(t, x, u, params):\n", + " \"\"\"Predator prey dynamics\"\"\"\n", + " r, d, b, k, a, c = map(params.get, ['r', 'd', 'b', 'k', 'a', 'c'])\n", + " u = np.clip(u, -r, r)\n", + "\n", + " # Dynamics for the system\n", + " dx0 = (r + u[0]) * x[0] * (1 - x[0]/k) - a * x[1] * x[0]/(c + x[0])\n", + " dx1 = b * a * x[1] * x[0] / (c + x[0]) - d * x[1]\n", + "\n", + " return np.array([dx0, dx1])\n", + "\n", + "# Create a nonlinear I/O system\n", + "predprey = ct.nlsys(\n", + " predprey_update, name='predprey', params=predprey_params,\n", + " states=['H', 'L'], inputs='u', outputs=['H', 'L'])" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "YmH87LEXWo1U" + }, + "source": [ + "### Open loop dynamics\n", + "\n", + "The open loop dynamics of the system are oscillatory, with a period similar to the data shown above:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "T = np.linspace(0, 100, 500)\n", + "response = ct.input_output_response(\n", + " predprey, T, 0, [35, 35]\n", + ")\n", + "ct.time_response_plot(response, plot_inputs=False, overlay_signals=True);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can also visualize the data using a phase plane plot:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Generate a simple phase portrait\n", + "ct.phase_plane_plot(predprey, [0, 120, 0, 100], 1, gridtype='meshgrid');" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see that the default parameters give a lot of warning messages and the phase portrait does not convey all of the details in some regions of the state space.\n", + "\n", + "We can make sure of some of the functions in the `phaseplot` module to get a better view of the dynamics:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Generate a phase portrait\n", + "ct.phaseplot.equilpoints(predprey, [-5, 126, -5, 100])\n", + "ct.phaseplot.streamlines(\n", + " predprey, np.array([\n", + " [0, 100], [1, 0],\n", + " ]), 10, color='b')\n", + "ct.phaseplot.streamlines(\n", + " predprey, np.array([[124, 1]]), np.linspace(0, 10, 500), color='b')\n", + "ct.phaseplot.streamlines(\n", + " predprey, np.array([[125, 25], [125, 50], [125, 75]]), 3, color='b')\n", + "ct.phaseplot.streamlines(predprey, np.array([2, 8]), 6, color='b')\n", + "ct.phaseplot.streamlines(\n", + " predprey, np.array([[20, 30]]), np.linspace(0, 65, 500),\n", + " gridtype='circlegrid', gridspec=[2, 1], arrows=10, color='r')\n", + "ct.phaseplot.vectorfield(predprey, [5, 125, 5, 100], gridspec=[20, 20])\n", + "\n", + "# Add the limit cycle\n", + "resp1 = ct.initial_response(predprey, np.linspace(0, 100), [20, 75])\n", + "resp2 = ct.initial_response(\n", + " predprey, np.linspace(0, 20, 500), resp1.states[:, -1])\n", + "plt.plot(resp2.states[0], resp2.states[1], color='k');" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "KhjlC1258qff" + }, + "source": [ + "### Find the equilibrium points and check stability\n", + "\n", + "We see that there are three equilibrium points in the system. We can test the stability of the center equilibrium point, which from the phase portrait appears to be unstable." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "xe, ue = ct.find_eqpt(predprey, [20, 30], 0)\n", + "print(f\"{xe=}\")\n", + "print(f\"{ue=}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "sys = predprey.linearize(xe, ue)\n", + "print(sys)\n", + "print(\"Poles: \", sys.poles())" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "sUECx0cz9QpK" + }, + "source": [ + "## Stabilization\n", + "\n", + "Suppose now that we have the ability to modulate the food supply for the hares. We do this by modifying the parameter $r$ in the model (this is the term `u` in the model at the top of the notebook). We can use the `place` command to find a set of gains that stabilize the dynamics around the unstable equilibrium point." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "K = ct.place(sys.A, sys.B, [-0.1, -0.2])\n", + "print(f\"{K=}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Design an eigenvalue placement (EP) controller to stabilize the equilibrium point\n", + "epctrl = ct.nlsys(\n", + " None, lambda t, x, u, params: -K @ (u[0:2] - xe),\n", + " inputs=['H', 'L', 'r'], outputs=['u'],\n", + ")\n", + "predprey_ep = ct.interconnect(\n", + " [predprey, epctrl], inputs=['r'], outputs=['H', 'L', 'u'],\n", + " name='predprey w/ eval placement'\n", + ")\n", + "print(predprey_ep)\n", + "\n", + "# Show the connection table, useful for debugging what is connected to what\n", + "predprey_ep.connection_table()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "xe_ep, ue_ep = ct.find_eqpt(predprey_ep, [20, 30], [0])\n", + "print(f\"{xe_ep=}\")\n", + "print(f\"{ue_ep=}\")\n", + "print(\"Poles: \", predprey_ep.linearize(xe_ep, ue_ep).poles())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Generate a simple phase portrait\n", + "ct.phase_plane_plot(\n", + " predprey_ep, [0, 120, 0, 100], 1,\n", + " plot_separatrices=False,\n", + " gridtype='meshgrid', gridspec=[8, 5]\n", + " );\n", + "ct.phaseplot.streamlines(\n", + " predprey_ep, np.array([xe_ep]), 20, dir='reverse',\n", + " gridtype='circlegrid', gridspec=[4, 11]);" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Simulation from someplace nearby\n", + "T = np.linspace(0, 40)\n", + "response = ct.input_output_response(predprey_ep, T, 0, [35, 35])\n", + "ct.time_response_plot(\n", + " response, plot_inputs=False, overlay_signals=True,\n", + " title=\"I/O response with eval placement, \" +\n", + " f\"r = {predprey.params['r']}\",\n", + " legend_loc='upper right')\n", + "plt.plot([T[0], T[-1]], [0, 0], 'k--')\n", + "plt.plot([T[0], T[-1]], [xe_ep[0], xe_ep[0]], 'k--')\n", + "plt.plot([T[0], T[-1]], [xe_ep[1], xe_ep[1]], 'k--')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "zZTBWhlTgSNk" + }, + "source": [ + "## Integral feedback\n", + "\n", + "Another technique that we will learn about later in the class is integral feedback, which can be used to compensate for modeling uncertainty and constant disturbances.\n", + "\n", + "We start by asking what happens if we change the value for the parameter $r$ from its original value of 1.6 to a new value of 1.65 (a change of less than 4%):" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Simulate with a change in food for the hares\n", + "T = np.linspace(0, 40)\n", + "response = ct.input_output_response(\n", + " predprey_ep, T, 0, [35, 35], params={'r': 1.65}\n", + ")\n", + "ct.time_response_plot(\n", + " response, plot_inputs=False, overlay_signals=True,\n", + " title=\"I/O response w/ eval placement, \" +\n", + " f\"r = {response.params['r']}\")\n", + "plt.plot([T[0], T[-1]], [0, 0], 'k--')\n", + "plt.plot([T[0], T[-1]], [xe_ep[0], xe_ep[0]], 'k--')\n", + "plt.plot([T[0], T[-1]], [xe_ep[1], xe_ep[1]], 'k--')\n", + "response.sysname" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see that the controller no longer stabilizes the equilibrium point (shown with the dashed lines). In particular, the steady state value of the lynx population does to almost twice the original value.\n", + "\n", + "This effect is even worse if we increase $r$ just a bit more (from 1.65 to 1.7)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "T = np.linspace(0, 40)\n", + "response = ct.input_output_response(\n", + " predprey_ep, T, 0, xe, params={'r': 1.7}\n", + ")\n", + "ct.time_response_plot(\n", + " response, plot_inputs=False, overlay_signals=True,\n", + " title=\"I/O response for predprey w/ eval placement, \" +\n", + " f\"r = {response.params['r']}\")\n", + "plt.plot([T[0], T[-1]], [0, 0], 'k--')\n", + "plt.plot([T[0], T[-1]], [xe_ep[0], xe_ep[0]], 'k--')\n", + "plt.plot([T[0], T[-1]], [xe_ep[1], xe_ep[1]], 'k--')\n", + "response.sysname" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The system dynamics are now oscillatory, indicating that we are no longer stabilizing the desired equilibrium point. This indicates a lack of robustness in our feedback control system.\n", + "\n", + "We can compensate for the change in the parameter $r$ by making use of integral feedback in our controller. We will learn more about integral feedback in later lectures, but for now we demonstrate its ability to compensate for errors in our system model." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Integral feedback\n", + "# Design an eigenvalue placement (EP) controller to stabilize the equilibrium point\n", + "Ki = 0.0001\n", + "pictrl = ct.nlsys(\n", + " lambda t, x, u, params: u[1] - u[2],\n", + " lambda t, x, u, params: -K @ (u[0:2] - xe) - Ki * x[0],\n", + " inputs=['H', 'L', 'r'], outputs=['u'], states=1,\n", + ")\n", + "predprey_pi = ct.interconnect(\n", + " [predprey, pictrl], inputs=['r'], outputs=['H', 'L', 'u'],\n", + " name='predprey_pi'\n", + ")\n", + "print(predprey_pi)\n", + "\n", + "# Simulate with a change in food for the hares\n", + "T = np.linspace(0, 100, 500)\n", + "response = ct.input_output_response(\n", + " predprey_pi, T, xe[1], [25, 25, 0], params={'r': 1.65})\n", + "ct.time_response_plot(\n", + " response, plot_inputs=False, overlay_signals=True,\n", + " title=\"I/O response w/ integral action, \" +\n", + " f\"r = {response.params['r']}\",\n", + " legend_loc='upper right')\n", + "\n", + "plt.plot([T[0], T[-1]], [0, 0], 'k--')\n", + "plt.plot([T[0], T[-1]], [xe_ep[0], xe_ep[0]], 'k--')\n", + "plt.plot([T[0], T[-1]], [xe_ep[1], xe_ep[1]], 'k--')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see that the system is once again stable at the desired equilibrium point!" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/examples/cds110-L4b_lqr-tracking.ipynb b/examples/cds110-L4b_lqr-tracking.ipynb new file mode 100644 index 000000000..f438c692a --- /dev/null +++ b/examples/cds110-L4b_lqr-tracking.ipynb @@ -0,0 +1,930 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "EHq8UWSjXSyz" + }, + "source": [ + "
\n", + "

CDS 110, Lecture 4b

\n", + "

LQR Tracking

\n", + "

Richard M. Murray and Natalie Bernat, Winter 2024

\n", + "
\n", + "\n", + "[Open in Google Colab](https://colab.research.google.com/drive/1Q6hXokOO_e3-wl6_ghigpxGJRUrGcHp3)\n", + "\n", + "This example uses a linear system to show how to implement LQR based tracking and some of the tradeoffs between feedfoward and feedback. Integral action is also implemented." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "try:\n", + " import control as ct\n", + " print(\"python-control\", ct.__version__)\n", + "except ImportError:\n", + " !pip install control\n", + " import control as ct" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "a23d6f89" + }, + "source": [ + "# Part I: Second order linear system\n", + "\n", + "We'll use a simple linear system to illustrate the concepts:\n", + "$$\n", + "\\frac{dx}{dt} =\n", + "\\begin{bmatrix}\n", + "0 & 10 \\\\\n", + "-1 & 0\n", + "\\end{bmatrix}\n", + "x +\n", + "\\begin{bmatrix}\n", + "0 \\\\\n", + "1\n", + "\\end{bmatrix}\n", + "u,\n", + "\\qquad\n", + "y = \\begin{bmatrix} 1 & 1 \\end{bmatrix} x.\n", + "$$\n", + "\n", + "" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Define a simple linear system that we want to control\n", + "A = np.array([[0, 10], [-1, 0]])\n", + "B = np.array([[0], [1]])\n", + "C = np.array([[1, 1]])\n", + "sys = ct.ss(A, B, C, 0, name='sys')\n", + "print(sys)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ja1g1MlbieJy" + }, + "source": [ + "## Linear quadratic regulator (LQR) design\n", + "\n", + "We'll design a controller of the form\n", + "\n", + "$$\n", + "u=-Kx+k_rr\n", + "$$\n", + "\n", + "- For the feedback control gain $K$, we'll use linear quadratic regulator theory. We seek to find the control law that minimizes the cost function:\n", + "\n", + " $$\n", + " J(x(\\cdot), u(\\cdot)) = \\int_0^\\infty x^T(\\tau) Q x(\\tau) + u^T(\\tau) R u(\\tau)\\, d\\tau\n", + " $$\n", + "\n", + " The weighting matrices $Q\\succeq 0 \\in \\mathbb{R}^{n \\times n}$ and $R \\succ 0\\in \\mathbb{R}^{m \\times m}$ should be chosen based on the desired performance of the system (tradeoffs in state errors and input magnitudes). See Example 3.5 in [Optimization Based Control (OBC)](https://fbswiki.org/wiki/index.php/Supplement:_Optimization-Based_Control) for a discussion of how to choose these weights. For now, we just choose identity weights for all states and inputs.\n", + "\n", + "- For the feedforward control gain $k_r$, we derive the feedforward gain from an equilibrium point analysis:\n", + " $$\n", + " y_e = C(A-BK)^{-1}Bk_rr\n", + " \\qquad\\implies\\qquad k_r = \\frac{-1}{C(A-BK)^{-1}B}\n", + " $$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Construct an LQR controller for the system\n", + "Q = np.eye(sys.nstates)\n", + "R = np.eye(sys.ninputs)\n", + "K, _, _ = ct.lqr(sys, Q, R)\n", + "print('K: '+str(K))\n", + "\n", + "# Set the feedforward gain to track the reference\n", + "kr = (-1 / (C @ np.linalg.inv(A - B @ K) @ B))\n", + "print('k_r: '+str(kr))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "99f036ea" + }, + "source": [ + "Now that we have our gains designed, we can simulate the closed loop system:\n", + "$$\n", + "\\frac{dx}{dt} = A_{cl}x + B_{cl} r,\n", + "\\quad A_{cl} = A-BK,\n", + "\\quad B_{cl} = Bk_r\n", + "$$\n", + "Notice that, with a state feedback controller, the new (closed loop) dynamics matrix absorbs the old (open loop) \"input\" $u$, and the new (closed loop) input is our reference signal $r$." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Create a closed loop system\n", + "A_cl = A - B @ K\n", + "B_cl = B * kr\n", + "clsys = ct.ss(A_cl, B_cl, C, 0)\n", + "print(clsys)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "84422c3f" + }, + "source": [ + "## System simulations\n", + "\n", + "### Baseline controller\n", + "\n", + "To see how the baseline controller performs, we ask it to track a constant reference $r = 2$:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Plot the step response with respect to the reference input\n", + "r = 2\n", + "Tf = 8\n", + "tvec = np.linspace(0, Tf, 100)\n", + "\n", + "U = r * np.ones_like(tvec)\n", + "time, output = ct.input_output_response(clsys, tvec, U)\n", + "plt.plot(time, output)\n", + "plt.plot([time[0], time[-1]], [r, r], '--');\n", + "plt.legend(['y', 'r']);\n", + "plt.ylabel(\"Output\")\n", + "plt.xlabel(\"Time $t$ [sec]\")\n", + "plt.title(\"Baseline controller step response\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ea2d1c59" + }, + "source": [ + "Things to try:\n", + "- set $k_r=0$\n", + "- set $k_r \\neq \\frac{-1}{C(A-BK)^{-1}B}$\n", + "- try different LQR weightings" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "84ee7635" + }, + "source": [ + "### Disturbance rejection\n", + "\n", + "To add an input disturbance to the system, we include a second open loop input:\n", + "$$\n", + "\\frac{dx}{dt} =\n", + "\\begin{bmatrix}\n", + "0 & 10 \\\\\n", + "-1 & 0\n", + "\\end{bmatrix}\n", + "x +\n", + "\\begin{bmatrix}\n", + "0 & 0\\\\\n", + "1 & 1\n", + "\\end{bmatrix}\n", + "\\begin{bmatrix}\n", + "u\\\\\n", + "d\n", + "\\end{bmatrix},\n", + "\\qquad\n", + "y = \\begin{bmatrix} 1 & 1 \\end{bmatrix} x.\n", + "$$\n", + "\n", + "Our closed loop system becomes:\n", + "$$\n", + "\\frac{dx}{dt} =\n", + "\\begin{bmatrix}\n", + "0 & 10 \\\\\n", + "-1-K_{1} & 0-K_{2}\n", + "\\end{bmatrix}\n", + "x +\n", + "\\begin{bmatrix}\n", + "0 & 0\\\\\n", + "k_r & 1\n", + "\\end{bmatrix}\n", + "\\begin{bmatrix}\n", + "r\\\\\n", + "d\n", + "\\end{bmatrix},\n", + "\\qquad\n", + "y = \\begin{bmatrix} 1 & 1 \\end{bmatrix} x.\n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Resimulate with a disturbance input\n", + "B_ext = np.hstack([B * kr, B])\n", + "clsys = ct.ss(A - B @ K, B_ext, C, 0)\n", + "\n", + "# Construct the inputs for the augmented system\n", + "delta = 0.5\n", + "U = np.vstack([r * np.ones_like(tvec), delta * np.ones_like(tvec)])\n", + "\n", + "time, output = ct.input_output_response(clsys, tvec, U)\n", + "\n", + "plt.plot(time, output[0])\n", + "plt.plot([time[0], time[-1]], [r, r], '--')\n", + "plt.legend(['y', 'r']);\n", + "plt.ylabel(\"Output\")\n", + "plt.xlabel(\"Time $t$ [sec]\")\n", + "plt.title(\"Baseline controller step response with disturbance\");" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Qis2PP3nd7ua" + }, + "source": [ + "We see that this leads to steady state error, since the feedforward signal didn't include an offset for the disturbance." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "84a9e61c" + }, + "source": [ + "#### Integral feedback\n", + "\n", + "A standard approach to compensate for constant disturbances is to use integral feedback. To do this, we have to keep track of the integral of the error\n", + "\n", + "$$z = \\int_0^\\tau (y - r)\\, d\\tau= \\int_0^\\tau (Cx - r)\\, d\\tau.$$\n", + "\n", + "We do this by creating an augmented system that includes the dynamics of the process ($dx/dt$) along with the dynamics of the integrator state ($dz/dt$):\n", + "\n", + "$$\n", + "\\frac{d}{dt}\\begin{bmatrix}\n", + "x \\\\\n", + "z\n", + "\\end{bmatrix} =\n", + "\\begin{bmatrix}\n", + "A & 0 \\\\\n", + "C & 0\n", + "\\end{bmatrix}\n", + "\\begin{bmatrix}\n", + "x \\\\\n", + "z\n", + "\\end{bmatrix} +\n", + "\\begin{bmatrix}\n", + "B\\\\\n", + "0 \\\\\n", + "\\end{bmatrix}\n", + "u+\n", + "\\begin{bmatrix}\n", + "0\\\\\n", + "-I \\\\\n", + "\\end{bmatrix}\n", + "r,\n", + "\\qquad\n", + "y = \\begin{bmatrix} C \\\\ 0 \\end{bmatrix} \\begin{bmatrix}\n", + "x \\\\\n", + "z\n", + "\\end{bmatrix}.\n", + "$$\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Define an augmented state space for use with LQR\n", + "A_aug = np.block([[sys.A, np.zeros((sys.nstates, 1))], [C, 0] ])\n", + "B_aug = np.vstack([sys.B, 0])\n", + "print(\"A =\", A_aug, \"\\nB =\", B_aug)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "463d9b85" + }, + "source": [ + "\n", + "Our controller then takes the form:\n", + "\n", + "$$\n", + "\\begin{aligned}\n", + "u &= - Kx - k_\\text{i} \\int_0^\\tau (y - r)\\, d\\tau+k_rr \\\\\n", + " &= - (Kx + k_\\text{i}z)+k_rr .\n", + "\\end{aligned}\n", + "$$\n", + "\n", + "This results in the closed loop system:\n", + "$$\n", + "\\frac{dx}{dt} =\n", + "\\begin{bmatrix}\n", + "A-BK & -Bk_i \\\\\n", + "C & 0\n", + "\\end{bmatrix}\n", + "\\begin{bmatrix}\n", + "x \\\\\n", + "z\n", + "\\end{bmatrix} +\n", + "\\begin{bmatrix}\n", + "Bk_r\\\\\n", + "-I \\\\\n", + "\\end{bmatrix}\n", + "r,\n", + "\\qquad\n", + "y = \\begin{bmatrix} C \\\\ 0 \\end{bmatrix} \\begin{bmatrix}\n", + "x \\\\\n", + "z\n", + "\\end{bmatrix}.\n", + "$$\n", + "\n", + "Since z is part of the augmented state space, we can generate an LQR controller for the augmented system to find both the usual gain $K$ and the integral gain $k_i$:\n", + "$$\n", + "\\bar{K} = \\begin{bmatrix} K& k_i\\end{bmatrix}\n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Create an LQR controller for the augmented system\n", + "K_aug, _, _ = ct.lqr(A_aug, B_aug, np.diag([1, 1, 1]), np.eye(sys.ninputs))\n", + "print('K_aug: '+str(K_aug))\n", + "\n", + "K = K_aug[:, 0:2]\n", + "ki = K_aug[:, 2]\n", + "kr = -1 / (C @ np.linalg.inv(A - B * K) @ B)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "19bb6592" + }, + "source": [ + "\n", + "\n", + "\n", + "Notice that the value of $K$ changed, so we needed to recompute $k_r$ too." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "zHlf8zoHoqvF" + }, + "source": [ + "To run simulations, we return to our system augmented with a disturbance, but we expand the outputs available to the controller:\n", + "\n", + "$$\n", + "\\frac{dx}{dt} =\n", + "\\begin{bmatrix}\n", + "0 & 10 \\\\\n", + "-1 & 0\n", + "\\end{bmatrix}\n", + "x +\n", + "\\begin{bmatrix}\n", + "0 & 0\\\\\n", + "1 & 1\n", + "\\end{bmatrix}\n", + "\\begin{bmatrix}\n", + "u\\\\\n", + "d\n", + "\\end{bmatrix},\n", + "$$\n", + "\n", + "$$\n", + "\\bar{y} = \\begin{bmatrix} 1 & 0 & 1 \\\\ 0 & 1 & 1 \\end{bmatrix}^T x = \\begin{bmatrix} x_1 & x_2 & y \\end{bmatrix} .\n", + "$$\n", + "\n", + "The controller then constructs its internal state $z$ out of $x$ and $r$.\n", + "\n", + "" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Construct a system with disturbance inputs, and full outputs (for the controller)\n", + "A_integral = sys.A\n", + "B_integral = np.hstack([sys.B, sys.B])\n", + "C_integral = [[1, 0], [0, 1], [1, 1]] # outputs for the controller: x1, x2, y\n", + "sys_integral = ct.ss(\n", + " A_integral, B_integral, C_integral, 0,\n", + " inputs=['u', 'd'],\n", + " outputs=['x1', 'x2', 'y']\n", + ")\n", + "print(sys_integral)\n", + "\n", + "# Construct an LQR+integral controller for the system with an internal state z\n", + "A_ctrl = [[0]]\n", + "B_ctrl = [[1, 1, -1]] # z_dot=Cx-r\n", + "C_ctrl = -ki #-ki*z\n", + "D_ctrl = np.hstack([-K, kr]) #-K*x + kr*r\n", + "ctrl_integral=ct.ss(\n", + " A_ctrl, B_ctrl, C_ctrl, D_ctrl, # u = -ki*z - K*x + kr*r\n", + " inputs=['x1', 'x2', 'r'], # system outputs + reference\n", + " outputs=['u'], # controller action\n", + ")\n", + "print(ctrl_integral)\n", + "\n", + "# Create the closed loop system\n", + "clsys_integral = ct.interconnect([sys_integral, ctrl_integral], inputs=['r', 'd'], outputs=['y'])\n", + "print(clsys_integral)\n", + "\n", + "# Resimulate with a disturbance input\n", + "delta = 0.5\n", + "U = np.vstack([r * np.ones_like(tvec), delta * np.ones_like(tvec)])\n", + "time, output, states = ct.input_output_response(clsys_integral, tvec, U, return_x=True)\n", + "plt.plot(time, output[0])\n", + "plt.plot([time[0], time[-1]], [r, r], '--')\n", + "plt.plot(time, states[2])\n", + "plt.legend(['y', 'r', 'z']);\n", + "plt.ylabel(\"Output\")\n", + "plt.xlabel(\"Time $t$ [sec]\")\n", + "plt.title(\"LQR+integral controller step response with disturbance\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "M9nXbITrhYg7" + }, + "source": [ + "Notice that the steady state value of $z=\\int(y-r)$ is not zero, but rather settles to whatever value makes $y-r$ zero!\n", + "" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "f8bfc15c" + }, + "source": [ + "# Part II: PVTOL Linear Quadratic Regulator Example\n", + "\n", + "Natalie Bernat, 26 Apr 2024
\n", + "Richard M. Murray, 25 Jan 2022\n", + "\n", + "This notebook contains an example of LQR control applied to the PVTOL system. It demonstrates how to construct an LQR controller by linearizing the system, and provides an alternate view of the feedforward component of the controller." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "77e2ed47" + }, + "source": [ + "## System description\n", + "\n", + "We use the PVTOL dynamics from [Feedback Systems (FBS2e)](https://fbswiki.org/wiki/index.php/Feedback_Systems:_An_Introduction_for_Scientists_and_Engineers), which can be found in Example 3.12}\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "
\n", + "$$\n", + "\\begin{aligned}\n", + " m \\ddot x &= F_1 \\cos\\theta - F_2 \\sin\\theta - c \\dot x, \\\\\n", + " m \\ddot y &= F_1 \\sin\\theta + F_2 \\cos\\theta - m g - c \\dot y, \\\\\n", + " J \\ddot \\theta &= r F_1.\n", + "\\end{aligned}\n", + "$$\n", + " \n", + "$$\n", + "\\frac{dz}{dt} =\n", + "\\begin{bmatrix}\n", + "z_4 \\\\\n", + "z_5 \\\\\n", + "z_6 \\\\\n", + "-\\frac{c}{m}z_4 \\\\\n", + "-g-\\frac{c}{m}z_5 \\\\\n", + "0\n", + "\\end{bmatrix} +\n", + "\\begin{bmatrix}\n", + "0 \\\\\n", + "0 \\\\\n", + "0 \\\\\n", + "\\frac{F_1}{m}cos\\theta -\\frac{F_2}{m}sin\\theta \\\\\n", + "\\frac{F_1}{m}sin\\theta +\\frac{F_2}{m}cos\\theta \\\\\n", + "-\\frac{r}{J}F_1\n", + "\\end{bmatrix}\n", + "$$\n", + "
\n", + "\n", + "The state space variables for this system are:\n", + "\n", + "$z=(x,y,\\theta, \\dot x,\\dot y,\\dot \\theta), \\quad u=(F_1,F_2)$\n", + "\n", + "Notice that the x and y positions ($z_1$ and $z_2$) do not actually appear in the dynamics-- this makes sense, since the aircraft should hypothetically fly the same way no matter where in the air it is (neglecting effects near the ground)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# PVTOL dynamics\n", + "def pvtol_update(t, x, u, params):\n", + " from math import cos, sin\n", + " \n", + " # Get the parameter values\n", + " m, J, r, g, c = map(params.get, ['m', 'J', 'r', 'g', 'c'])\n", + "\n", + " # Get the inputs and states\n", + " x, y, theta, xdot, ydot, thetadot = x\n", + " F1, F2 = u\n", + "\n", + " # Constrain the inputs\n", + " F2 = np.clip(F2, 0, 1.5 * m * g)\n", + " F1 = np.clip(F1, -0.1 * F2, 0.1 * F2)\n", + "\n", + " # Dynamics\n", + " xddot = (F1 * cos(theta) - F2 * sin(theta) - c * xdot) / m\n", + " yddot = (F1 * sin(theta) + F2 * cos(theta) - m * g - c * ydot) / m\n", + " thddot = (r * F1) / J\n", + "\n", + " return np.array([xdot, ydot, thetadot, xddot, yddot, thddot])\n", + "\n", + "def pvtol_output(t, x, u, params):\n", + " return x\n", + "\n", + "pvtol = ct.nlsys(\n", + " pvtol_update, pvtol_output, name='pvtol',\n", + " states = [f'x{i}' for i in range(6)],\n", + " inputs = ['F1', 'F2'],\n", + " outputs=[f'x{i}' for i in range(6)],\n", + " # outputs = ['x', 'y', 'theta', 'xdot', 'ydot', 'thdot'],\n", + " params = {\n", + " 'm': 4., # mass of aircraft\n", + " 'J': 0.0475, # inertia around pitch axis\n", + " 'r': 0.25, # distance to center of force\n", + " 'g': 9.8, # gravitational constant\n", + " 'c': 0.05, # damping factor (estimated)\n", + " }\n", + ")\n", + "\n", + "print(pvtol)\n", + "print(pvtol.params)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "YZiISLS-qMS_" + }, + "source": [ + "Next, we'll linearize the system around the equilibrium points. As discussed in FBS2e (example 7.9), the linearization around this equilibrium point has the form:\n", + "$$\n", + "A =\n", + "\\begin{bmatrix}\n", + "0 & 0 & 0 & 1 & 0 & 0\\\\\n", + "0 & 0 & 0 & 0 & 1 & 0 \\\\\n", + "0 & 0 & 0 & 0 & 0 & 1 \\\\\n", + "0 & 0 & -g & -c/m & 0 & 0 \\\\\n", + "0 & 0 & 0 & 0 & -c/m & 0 \\\\\n", + "0 & 0 & 0 & 0 & 0 & 0\n", + "\\end{bmatrix}\n", + ", \\quad B=\n", + "\\begin{bmatrix}\n", + "0 & 0 \\\\\n", + "0 & 0 \\\\\n", + "0 & 0 \\\\\n", + "1/m & 0 \\\\\n", + "0 & 1/m \\\\\n", + "r/J & 0\n", + "\\end{bmatrix}\n", + ".\n", + "$$\n", + "(note that here $r$ is a system parameter, not the same as the reference $r$ we've been using elsewhere in this notebook)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To compute this linearization in python-control, we start by computing the equilibrium point. We do this using the `find_eqpt` function, which can be used to find equilibrium points satisfying varioius conditions. For this system, we wish to find the state $x_\\text{e}$ and input $u_\\text{e}$ that holds the $x, y$ position of the aircraft at the point $(0, 0)$. The `find_eqpt` function performs a numerical optimization to find the values of $x_\\text{e}$ and $u_\\text{e}$ corresponding to an equilibrium point with the desired values for the outputs. We pass the function initial guesses for the state and input as well the values of the output and the indices of the output that we wish to constrain:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Find the equilibrium point corresponding to hover\n", + "xeq, ueq = ct.find_eqpt(pvtol, np.zeros(6), np.zeros(2), y0=np.zeros(6), iy=[0, 1])\n", + "print(f\"{xeq=}, {ueq=}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Using these values, we compute the linearization:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "linsys = pvtol.linearize(xeq, ueq)\n", + "print(linsys)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "7cb8840b" + }, + "source": [ + "## Linear quadratic regulator (LQR) design\n", + "\n", + "Now that we have a linearized model of the system, we can compute a controller using linear quadratic regulator theory. We wish to minimize the following cost function\n", + "\n", + "$$\n", + "J(\\phi(\\cdot), \\nu(\\cdot)) = \\int_0^\\infty \\phi^T(\\tau) Q \\phi(\\tau) + \\nu^T(\\tau) R \\nu(\\tau)\\, d\\tau,\n", + "$$\n", + "\n", + "where we have changed to our linearized coordinates:\n", + "\n", + "$$\\phi=z-z_e, \\quad \\nu = u-u_e$$\n", + "\n", + "Using the standard approach for finding K, we obtain a feedback controller for the system:\n", + "$$\\nu=-K\\phi$$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Start with a diagonal weighting\n", + "Q1 = np.diag([1, 1, 1, 1, 1, 1])\n", + "R1 = np.diag([1, 1])\n", + "K, X, E = ct.lqr(linsys, Q1, R1)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "863d07de" + }, + "source": [ + "To create a controller for the system, we have to apply a control signal $u$, so we change back from the relative coordinates to the absolute coordinates:\n", + "\n", + "$$u=u_e - K(z - z_e)$$\n", + "\n", + "Notice that, since $(Kz_e+u_e)$ is completely determined by (user-defined) inputs to the system, this term is a type of feedforward control signal.\n", + "\n", + "To create a controller for the system, we can use the function [`create_statefbk_iosystem()`](https://python-control.readthedocs.io/en/latest/generated/control.create_statefbk_iosystem.html), which creates an I/O system that takes in a desired trajectory $(x_\\text{d}, u_\\text{d})$ and the current state $x$ and generates a control law of the form:\n", + "\n", + "$$\n", + "u = u_\\text{d} - K (x - x_\\text{d})\n", + "$$\n", + "\n", + "Note that this is slightly different than the first equation: here we are using $x_\\text{d}$ instead of $x_\\text{e}$ and $u_\\text{d}$ instead of $u_\\text{e}$. This is because we want our controller to track a desired trajectory $(x_\\text{d}(t), u_\\text{d}(t))$ rather than just stabilize the equilibrium point $(x_\\text{e}, u_\\text{e})$." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "control, pvtol_closed = ct.create_statefbk_iosystem(pvtol, K)\n", + "print(control, \"\\n\")\n", + "print(pvtol_closed)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This command will usually generate a warning saying that python control \"cannot verify system output is system state\". This happens because we specified an output function `pvtol_output` when we created the system model, and python-control does not have a way of checking that the output function returns the entire state (which is needed if we are going to do full-state feedback).\n", + "\n", + "This warning could be avoided by passing the argument `None` for the system output function, in which case python-control returns the full state as the output (and it knows that the full state is being returned as the output)." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "bedcb0c0" + }, + "source": [ + "## Closed loop system simulation\n", + "\n", + "For this simple example, we set the target for the system to be a \"step\" input that moves the system 1 meter to the right.\n", + "\n", + "We start by defining a short function to visualize the output using a collection of plots:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Utility function to plot the results in a useful way\n", + "def plot_results(t, x, u, fig=None):\n", + " # Set the size of the figure\n", + " if fig is None:\n", + " fig = plt.figure(figsize=(10, 6))\n", + "\n", + " # Top plot: xy trajectory\n", + " plt.subplot(2, 1, 1)\n", + " lines = plt.plot(x[0], x[1])\n", + " plt.xlabel('x [m]')\n", + " plt.ylabel('y [m]')\n", + " plt.axis('equal')\n", + "\n", + " # Mark starting and ending points\n", + " color = lines[0].get_color()\n", + " plt.plot(x[0, 0], x[1, 0], 'o', color=color, fillstyle='none')\n", + " plt.plot(x[0, -1], x[1, -1], 'o', color=color, fillstyle='full')\n", + "\n", + "\n", + " # Time traces of the state and input\n", + " plt.subplot(2, 4, 5)\n", + " plt.plot(t, x[1])\n", + " plt.xlabel('Time t [sec]')\n", + " plt.ylabel('y [m]')\n", + "\n", + " plt.subplot(2, 4, 6)\n", + " plt.plot(t, x[2])\n", + " plt.xlabel('Time t [sec]')\n", + " plt.ylabel('theta [rad]')\n", + "\n", + " plt.subplot(2, 4, 7)\n", + " plt.plot(t, u[0])\n", + " plt.xlabel('Time t [sec]')\n", + " plt.ylabel('$F_1$ [N]')\n", + "\n", + " plt.subplot(2, 4, 8)\n", + " plt.plot(t, u[1])\n", + " plt.xlabel('Time t [sec]')\n", + " plt.ylabel('$F_2$ [N]')\n", + " plt.tight_layout()\n", + "\n", + " return fig" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next we generate a step response and plot the results. Because our closed loop system takes as inputs $x_\\text{d}$ and $u_\\text{d}$, we need to set those variable to values that would correspond to our step input. In this case, we are taking a step in the $x$ coordinate, so we set $x_\\text{d}$ to be $1$ in that coordinate starting at $t = 0$ and continuing for some sufficiently long period of time ($15$ seconds):" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Generate a step response by setting xd, ud\n", + "Tf = 15\n", + "T = np.linspace(0, Tf, 100)\n", + "xd = np.outer(np.array([1, 0, 0, 0, 0, 0]), np.ones_like(T))\n", + "ud = np.outer(ueq, np.ones_like(T))\n", + "ref = np.vstack([xd, ud])\n", + "\n", + "response = ct.input_output_response(pvtol_closed, T, ref, xeq)\n", + "fig = plot_results(response.time, response.states, response.outputs[6:])" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "f014e660" + }, + "source": [ + "This controller does a pretty good job. We see in the top plot the $x$, $y$ projection of the trajectory, with the open circle indicating the starting point and the closed circle indicating the final point. The bottom set of plots show the altitude and pitch as functions of time, as well as the input forces. All of the signals look reasonable.\n", + "\n", + "The limitations of the linear controller can be seen if we take a larger step, say 10 meters." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "xd = np.outer(np.array([10, 0, 0, 0, 0, 0]), np.ones_like(T))\n", + "ref = np.vstack([xd, ud])\n", + "response = ct.input_output_response(pvtol_closed, T, ref, xeq)\n", + "fig = plot_results(response.time, response.states, response.outputs[6:])" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "4luxppVpm6Xo" + }, + "source": [ + "We now see that the trajectory looses significant altitude ($> 2.5$ meters). This is because the linear controller sees a large initial error and so it applies very large input forces to correct for the error ($F_1 \\approx -10$ N at $t = 0$. This causes the aircraft to pitch over to a large angle (almost $-60$ degrees) and this causes a large loss in altitude.\n", + "\n", + "We will see in the [Lecture 6](cds110-L6a_kincar-trajgen) how to remedy this problem by making use of feasible trajectory generation." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "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.13.1" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/examples/cds110-L5_kincar-estimation.ipynb b/examples/cds110-L5_kincar-estimation.ipynb new file mode 100644 index 000000000..6eea0a1f0 --- /dev/null +++ b/examples/cds110-L5_kincar-estimation.ipynb @@ -0,0 +1,815 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "-cop8q3CTs-G" + }, + "source": [ + "
\n", + "

CDS 110, Lecture 5

\n", + "

State Estimation for a Kinematic Car Model

\n", + "

Richard M. Murray, Winter 2024

\n", + "
\n", + "\n", + "[Open in Google Colab](https://colab.research.google.com/drive/1TESB0NzWS3XBxJa_hdOXMifICbBEDRz8)\n", + "\n", + "In this lecture, we will show how to construct an observer for a system in the presence of noise and disturbances.\n", + "\n", + "Recall that an observer is a system that takes as input the (noisy) measured output of a system along with the applied input to the system, and produces as estimate $\\hat x$ of the current state:\n", + "\n", + "
\n", + "\n", + "
\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Import the various Python packages that we require\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from math import pi, sin, cos, tan\n", + "try:\n", + " import control as ct\n", + " print(\"python-control\", ct.__version__)\n", + "except ImportError:\n", + " !pip install control\n", + " import control as ct\n", + "import control.flatsys as fs" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "c5UGnS73sH4c" + }, + "source": [ + "## White noise\n", + "\n", + "A white noise process $W(t)$ is a signal that has the property that the mean of the signal is 0 and the value of the signal at any point in time $t$ is uncorrelated to the value of the signal at a point in time $s$, but that has a fixed amount of variance. Mathematically, a white noise process $W\n", + "(t) \\in \\mathbb{R}^k$ satisfies\n", + "\n", + "$$\n", + "\\begin{aligned}\n", + "\\mathbb{E}\\{W(t)\\} &= 0, &&\\text{for all $t$} \\\\\n", + "\\mathbb{E}\\{W^\\mathtt{T}(t) W(s)\\} &= Q\\, \\delta(t-s) && \\text{for all $s, t$},\n", + "\\end{aligned}\n", + "$$\n", + "\n", + "where $Q \\in \\mathbb{R}^{k \\times k}$ is the \"intensity\" of the white noise process.\n", + "\n", + "The python-control function `white_noise` can be used to create an instantiation of a white noise process:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Create the time vector that we want to use\n", + "Tf = 5\n", + "T = np.linspace(0, Tf, 1000)\n", + "dt = T[1] - T[0]\n", + "\n", + "# Create a white noise signal\n", + "?ct.white_noise\n", + "Q = np.array([[0.1]])\n", + "W = ct.white_noise(T, Q)\n", + "\n", + "plt.figure(figsize=[5, 3])\n", + "plt.plot(T, W[0])\n", + "plt.xlabel('Time [s]')\n", + "plt.ylabel('$V$');" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "MtAPkkCd14_g" + }, + "source": [ + "To confirm this is a white noise signal, we can compute the correlation function\n", + "\n", + "$$\n", + "\\rho(\\tau) = \\mathbb{E}\\{V^\\mathtt{T}(t) V(t + \\tau)\\} = Q\\, \\delta(\\tau),\n", + "$$\n", + "\n", + "where $\\delta(\\tau)$ is the unit impulse function:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Correlation function for the input\n", + "tau, r_W = ct.correlation(T, W)\n", + "\n", + "plt.plot(tau, r_W, 'r-')\n", + "plt.xlabel(r'$\\tau$')\n", + "plt.ylabel(r'$r_W(\\tau)$')\n", + "\n", + "# Compute out the area under the peak\n", + "print(\"Signal covariance: \", Q.item())\n", + "print(\"Area under impulse: \", np.max(W) * dt)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "1eN_MZ94tQ9v" + }, + "source": [ + "## System definition: kinematic car\n", + "\n", + "We make use of a simple model for a vehicle navigating in the plane, known as the \"bicycle model\". The kinematics of this vehicle can be written in terms of the contact point $(x, y)$ and the angle $\\theta$ of the vehicle with respect to the horizontal axis:\n", + "\n", + "\n", + "\n", + " \n", + " \n", + "\n", + "
\n", + "$$\n", + "\\large\\begin{aligned}\n", + " \\dot x &= \\cos\\theta\\, v \\\\\n", + " \\dot y &= \\sin\\theta\\, v \\\\\n", + " \\dot\\theta &= \\frac{v}{l} \\tan \\delta\n", + "\\end{aligned}\n", + "$$\n", + "
\n", + "\n", + "The input $v$ represents the velocity of the vehicle and the input $\\delta$ represents the turning rate. The parameter $l$ is the wheelbase." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# System definition\n", + "# Function to compute the RHS of the system dynamics\n", + "def kincar_update(t, x, u, params):\n", + " # Get the parameters for the model\n", + " l = params['wheelbase'] # vehicle wheelbase\n", + " deltamax = params['maxsteer'] # max steering angle (rad)\n", + "\n", + " # Saturate the steering input\n", + " delta = np.clip(u[1], -deltamax, deltamax)\n", + "\n", + " # Return the derivative of the state\n", + " return np.array([\n", + " np.cos(x[2]) * u[0], # xdot = cos(theta) v\n", + " np.sin(x[2]) * u[0], # ydot = sin(theta) v\n", + " (u[0] / l) * np.tan(delta) # thdot = v/l tan(delta)\n", + " ])\n", + "\n", + "kincar_params={'wheelbase': 3, 'maxsteer': 0.5}\n", + "\n", + "# Create nonlinear input/output system\n", + "kincar = ct.nlsys(\n", + " kincar_update, None, name=\"kincar\", params=kincar_params,\n", + " inputs=('v', 'delta'), outputs=('x', 'y', 'theta'),\n", + " states=('x', 'y', 'theta'))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Utility function to plot lane change manuever\n", + "def plot_lanechange(t, y, u, figure=None, yf=None, label=None):\n", + " # Plot the xy trajectory\n", + " plt.subplot(3, 1, 1, label='xy')\n", + " plt.plot(y[0], y[1], label=label)\n", + " plt.xlabel(\"x [m]\")\n", + " plt.ylabel(\"y [m]\")\n", + " if yf is not None:\n", + " plt.plot(yf[0], yf[1], 'ro')\n", + "\n", + " # Plot x and y as functions of time\n", + " plt.subplot(3, 2, 3, label='x')\n", + " plt.plot(t, y[0])\n", + " plt.ylabel(\"$x$ [m]\")\n", + "\n", + " plt.subplot(3, 2, 4, label='y')\n", + " plt.plot(t, y[1])\n", + " plt.ylabel(\"$y$ [m]\")\n", + "\n", + " # Plot the inputs as a function of time\n", + " plt.subplot(3, 2, 5, label='v')\n", + " plt.plot(t, u[0])\n", + " plt.xlabel(\"Time $t$ [sec]\")\n", + " plt.ylabel(\"$v$ [m/s]\")\n", + "\n", + " plt.subplot(3, 2, 6, label='delta')\n", + " plt.plot(t, u[1])\n", + " plt.xlabel(\"Time $t$ [sec]\")\n", + " plt.ylabel(\"$\\\\delta$ [rad]\")\n", + "\n", + " plt.subplot(3, 1, 1)\n", + " plt.title(\"Lane change manuever\")\n", + " if label:\n", + " plt.legend()\n", + " plt.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "5F-40uInyvQr" + }, + "source": [ + "We next define a desired trajectory for the vehicle. For simplicity, we use a piecewise linear trajectory and then stabilize the system around that trajectory. We will learn in a later lecture how to do this is in more rigorous way. For now, it is enough to know that this generates a feasible trajectory for the vehicle." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Generate a trajectory for the vehicle\n", + "# Define the endpoints of the trajectory\n", + "x0 = np.array([0., -4., 0.]); u0 = np.array([10., 0.])\n", + "xf = np.array([40., 4., 0.]); uf = np.array([10., 0.])\n", + "Tf = 4\n", + "Ts = Tf / 100\n", + "\n", + "# First 0.6 seconds: drive straight\n", + "T1 = np.linspace(0, 0.6, 15, endpoint=False)\n", + "x1 = np.array([6, -4, 0])\n", + "xd1 = np.array([x0 + (x1 - x0) * (t - T1[0]) / (T1[-1] - T1[0]) for t in T1]).transpose()\n", + "\n", + "# Next 2.8 seconds: change to the other lane\n", + "T2 = np.linspace(0.6, 3.4, 70, endpoint=False)\n", + "x2 = np.array([35, 4, 0])\n", + "xd2 = np.array([x1 + (x2 - x1) * (t - T2[0]) / (T2[-1] - T2[0]) for t in T2]).transpose()\n", + "\n", + "# Final 0.6 seconds: drive straight\n", + "T3 = np.linspace(3.4, Tf, 15, endpoint=False)\n", + "xd3 = np.array([x2 + (xf - x2) * (t - T3[0]) / (T3[-1] - T3[0]) for t in T3]).transpose()\n", + "\n", + "T = np.hstack([T1, T2, T3])\n", + "xr = np.hstack([xd1, xd2, xd3])\n", + "ur = np.array([u0 for t in T]).transpose()\n", + "\n", + "# Now create a simple controller to stabilize the trajectory\n", + "P = kincar.linearize(x0, u0)\n", + "K, _, _ = ct.lqr(\n", + " kincar.linearize(x0, u0),\n", + " np.diag([10, 100, 1]), np.diag([10, 10])\n", + ")\n", + "\n", + "# Construct a closed loop controller for the system\n", + "ctrl, clsys = ct.create_statefbk_iosystem(kincar, K)\n", + "resp = ct.input_output_response(clsys, T, [xr, ur], x0)\n", + "\n", + "xd = resp.states\n", + "ud = resp.outputs[kincar.nstates:]\n", + "\n", + "plot_lanechange(T, xd, ud, label='feasible')\n", + "plot_lanechange(T, xr, ur, label='reference')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Simulation of the open loop trajectory\n", + "sys_resp = ct.input_output_response(kincar, T, ud, xd[:, 0])\n", + "plt.plot(sys_resp.states[0], sys_resp.states[1])\n", + "plt.axis([0, 40, -5, 5])\n", + "plt.xlabel(\"$x$ [m]\")\n", + "plt.ylabel(\"$y$ [m]\")\n", + "plt.gca().set_aspect('equal')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "7V81jzfZtiRe" + }, + "source": [ + "## State estimation\n", + "\n", + "To illustrate how we can estimate the state of the trajectory, we construct an observer that takes the measured inputs and outputs to the system and computes an estimate of the state, using a estimator with dynamics\n", + "\n", + "$$\n", + "\\dot{\\hat x} = f(\\hat x, u) - L(C \\hat x - y)\n", + "$$\n", + "\n", + "Note that we go ahead and use the nonlinear dynamics for the prediction term, but the linearization for the correction term.\n", + "\n", + "We can determine the estimator gain $L$ via multiple methods:\n", + "* Eigenvalue placement\n", + "* Optimal estimation (Kalman filter)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Jt_5SUTBuN7-" + }, + "source": [ + "### Eigenvalue placement" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Define the outputs to use for measurements\n", + "C = np.eye(2, 3)\n", + "\n", + "# Compute the linearization of the nonlinear dynamics\n", + "P = kincar.linearize([0, 0, 0], [10, 0])\n", + "\n", + "# Compute the gains via eigenvalue placement\n", + "L = ct.place(P.A.T, C.T, [-1, -2, -3]).T\n", + "\n", + "# Estimator update law\n", + "def estimator_update(t, xhat, u, params):\n", + " # Extract the inputs to the estimator\n", + " y = u[0:2] # first two system outputs\n", + " u = u[2:4] # inputs that were applied\n", + "\n", + " # Update the state estimate\n", + " xhatdot = kincar.updfcn(t, xhat, u, kincar_params) \\\n", + " - params['L'] @ (C @ xhat - y)\n", + "\n", + " # Return the derivative\n", + " return xhatdot\n", + "\n", + "estimator = ct.nlsys(\n", + " estimator_update, None, name='estimator',\n", + " states=kincar.nstates, params={'L': L},\n", + " inputs= kincar.state_labels[0:2] + kincar.input_labels,\n", + " outputs=[f'xh{i}' for i in range(kincar.nstates)],\n", + ")\n", + "print(estimator)\n", + "print(estimator.params)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Run the estimator from a different initial condition\n", + "estresp = ct.input_output_response(\n", + " estimator, T, [xd[0:2], ud], [0, -3, 0])\n", + "\n", + "fig, axs = plt.subplots(3, 1, figsize=[5, 4])\n", + "\n", + "axs[0].plot(estresp.time, estresp.outputs[0], 'b-', T, xd[0], 'r--')\n", + "axs[0].set_ylabel(\"$x$\")\n", + "axs[0].legend([r\"$\\hat x$\", \"$x$\"])\n", + "\n", + "axs[1].plot(estresp.time, estresp.outputs[1], 'b-', T, xd[1], 'r--')\n", + "axs[1].set_ylabel(\"$y$\")\n", + "\n", + "axs[2].plot(estresp.time, estresp.outputs[2], 'b-', T, xd[2], 'r--')\n", + "axs[2].set_ylabel(r\"$\\theta$\")\n", + "axs[2].set_xlabel(\"Time $t$ [s]\")\n", + "\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "KPkD-wSXt8d0" + }, + "source": [ + "### Kalman filter\n", + "\n", + "An alternative mechanism for creating an estimator is through the use of optimal estimation (Kalman filtering).\n", + "\n", + "Suppose that we have (very) noisy measurements of the system position, and also have disturbances taht are applied to our control signal." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Disturbance and noise covariances\n", + "Qv = np.diag([0.1**2, 0.01**2])\n", + "Qw = np.eye(2) * 0.1**2\n", + "\n", + "u_noisy = ud + ct.white_noise(T, Qv)\n", + "sys_resp = ct.input_output_response(kincar, T, u_noisy, xd[:, 0])\n", + "\n", + "# Create noisy version of the measurements\n", + "y_noisy = sys_resp.outputs[0:2] + ct.white_noise(T, Qw)\n", + "\n", + "plt.plot(y_noisy[0], y_noisy[1], 'k-')\n", + "plt.plot(sys_resp.outputs[0], sys_resp.outputs[1], 'b-')\n", + "plt.axis([0, 40, -5, 5])\n", + "plt.xlabel(\"$x$ [m]\")\n", + "plt.ylabel(\"$y$ [m]\")\n", + "plt.legend(['measured', 'actual'])\n", + "plt.gca().set_aspect('equal')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A Kalman filter allows us to estimate the optimal state given measurements of the inputs and outputs, as well as knowledge of the covariance of the signals." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Compute the Kalman gains (linear quadratic estimator)\n", + "L_kf, _, _ = ct.lqe(P.A, P.B, C, Qv, Qw)\n", + "\n", + "kfresp = ct.input_output_response(\n", + " estimator, T, [y_noisy, ud], [0, -3, 0],\n", + " params={'L': L_kf})\n", + "\n", + "fig, axs = plt.subplots(3, 1, figsize=[5, 4])\n", + "\n", + "axs[0].plot(T, y_noisy[0], 'k-')\n", + "axs[0].plot(kfresp.time, kfresp.outputs[0], 'b-', T, sys_resp.outputs[0], 'r--')\n", + "axs[0].set_ylabel(\"$x$\")\n", + "axs[0].legend([r\"$\\hat x$\", \"$x$\"])\n", + "\n", + "axs[1].plot(T, y_noisy[1], 'k-')\n", + "axs[1].plot(kfresp.time, kfresp.outputs[1], 'b-', T, sys_resp.outputs[1], 'r--')\n", + "axs[1].set_ylabel(\"$y$\")\n", + "\n", + "axs[2].plot(kfresp.time, kfresp.outputs[2], 'b-', T, sys_resp.outputs[2], 'r--')\n", + "axs[2].set_ylabel(r\"$\\theta$\")\n", + "axs[2].set_xlabel(\"Time $t$ [s]\")\n", + "\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "pMfHmzsW0Dqh" + }, + "source": [ + "We can get a better view of the convergence by plotting the errors:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "fig, axs = plt.subplots(3, 1, figsize=[5, 4])\n", + "\n", + "axs[0].plot(kfresp.time, kfresp.outputs[0] - sys_resp.outputs[0])\n", + "axs[0].plot([T[0], T[-1]], [0, 0], 'k--')\n", + "axs[0].set_ylabel(\"$x$ error\")\n", + "axs[0].set_ylim([-1, 1])\n", + "\n", + "axs[1].plot(kfresp.time, kfresp.outputs[1] - sys_resp.outputs[1])\n", + "axs[1].plot([T[0], T[-1]], [0, 0], 'k--')\n", + "axs[1].set_ylabel(\"$y$ error\")\n", + "axs[1].set_ylim([-1, 1])\n", + "\n", + "axs[2].plot(kfresp.time, kfresp.outputs[2] - sys_resp.outputs[2])\n", + "axs[2].plot([T[0], T[-1]], [0, 0], 'k--')\n", + "axs[2].set_ylabel(r\"$\\theta$ error\")\n", + "axs[2].set_xlabel(\"Time $t$ [s]\")\n", + "axs[2].set_ylim([-0.2, 0.2])\n", + "\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "nccW48C5tns9" + }, + "source": [ + "## Output feedback control\n", + "\n", + "We next construct a controller that makes use of the estimated state. We will attempt to control the longitudinal position using the steering angle as an input, with the velocity set to the desired velocity (no tracking of the longitudinal position)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Compute the linearization of the nonlinear dynamics\n", + "P = kincar.linearize([0, 0, 0], [10, 0])\n", + "\n", + "# Extract out the linearized dynamics from delta to y\n", + "Alat = P.A[1:3, 1:3]\n", + "Blat = P.B[1:3, 1:2]\n", + "Clat = P.C[1:2, 1:3]\n", + "\n", + "sys = ct.ss(Alat, Blat, Clat, 0)\n", + "print(sys)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Construct a state space controller, using LQR\n", + "Qx = np.diag([1, 10])\n", + "Qu = np.diag([1])\n", + "\n", + "K, _, _ = ct.lqr(Alat, Blat, Qx, Qu)\n", + "print(f\"{K=}\")\n", + "\n", + "kf = -1 / (Clat @ np.linalg.inv(Alat - Blat @ K) @ Blat)\n", + "print(f\"{kf=}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "v5oHK9-XMrEv" + }, + "source": [ + "### Direct state space feedback\n", + "\n", + "We start by checking the response of the system assuming that we measure the state directly.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Construct a controller for the full system\n", + "def ctrl_output(t, x, u, params):\n", + " r_v, r_y = u[0:2]\n", + " x = u[3:5] # y, theta\n", + " return np.vstack([r_v, -K @ x + kf * r_y])\n", + "ctrl = ct.nlsys(\n", + " None, ctrl_output, name='ctrl',\n", + " inputs=['r_v', 'r_y', 'x', 'y', 'theta'],\n", + " outputs=['v', 'delta']\n", + ")\n", + "print(ctrl)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Direct state feedback\n", + "clsys_direct = ct.interconnect(\n", + " [kincar, ctrl],\n", + " inputs=['r_v', 'r_y'],\n", + " outputs=['x', 'y', 'theta', 'v', 'delta'],\n", + ")\n", + "print(clsys_direct)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Run a simulation\n", + "clresp_direct = ct.input_output_response(\n", + " clsys_direct, T, [10, xd[1]], X0=[0, -3, 0])\n", + "\n", + "plt.plot(clresp_direct.outputs[0], clresp_direct.outputs[1])\n", + "plt.plot(xd[0], xd[1], 'r--')\n", + "# plt.plot(clresp.time, clresp.outputs[1])\n", + "plt.xlabel(\"$x$ [m]\")\n", + "plt.ylabel(\"$y$ [m]\")\n", + "plt.gca().set_aspect('equal')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "J0iS9V8YT4Ox" + }, + "source": [ + "Note the \"lag\" in the $x$ coordinate. This comes from the fact that we did not use feedback to maintain the longitudinal position as a function of time, compared with the desired trajectory. To see this, we can look at the commanded speed ($v$) versus the desired speed:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "plot_lanechange(T, xd, ud, label=\"desired\")\n", + "plot_lanechange(T, clresp_direct.outputs[0:2], clresp_direct.outputs[-2:], label=\"actual\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "SDrkfC_LUPDu" + }, + "source": [ + "From this plot we can also see that there is a very large input $\\delta$ applied at $t=0$. This is something we would have to fix if we were to implement this on a physical system (-1 rad $\\approx -60^\\circ$!)." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "KS0E2g6aMgC0" + }, + "source": [ + "### Estimator-based control\n", + "\n", + "We now consider the case were we cannot directly measure the state, but instead have to estimate the state from the commanded input and measured output. We can insert the estimator into the system model by reconnecting the inputs and outputs. The `ct.interconnect` function provides the needed flexibility:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "?ct.interconnect" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "rgI9QjBMAy7b" + }, + "source": [ + "We now create the system model that includes the estimator (observer). Here is the system we are trying to construct:\n", + "\n", + "\n", + "\n", + "\n", + "(Be careful with the notation: in the diagram above $y$ is the measured outputs, which for our system are the $x$ and $y$ position of the vehicle, so overusing the symbol $y$.)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Connect the system, estimator, and controller\n", + "clsys_estim = ct.interconnect(\n", + " [kincar, estimator, ctrl],\n", + " inplist=['ctrl.r_v', 'ctrl.r_y', 'estimator.x', 'estimator.y'],\n", + " inputs=['r_v', 'r_y', 'noise_x', 'noise_y'],\n", + " outlist=[\n", + " 'kincar.x', 'kincar.y', 'kincar.theta',\n", + " 'estimator.xh0', 'estimator.xh1', 'estimator.xh2',\n", + " 'ctrl.v', 'ctrl.delta'\n", + " ],\n", + " outputs=['x', 'y', 'theta', 'xhat', 'yhat', 'thhat', 'v', 'delta'],\n", + " connections=[\n", + " ['kincar.v', 'ctrl.v'],\n", + " ['kincar.delta', 'ctrl.delta'],\n", + " ['estimator.x', 'kincar.x'],\n", + " ['estimator.y', 'kincar.y'],\n", + " ['estimator.delta', 'ctrl.delta'],\n", + " ['estimator.v', 'ctrl.v'],\n", + " ['ctrl.x', 'estimator.xh0'],\n", + " ['ctrl.y', 'estimator.xh1'],\n", + " ['ctrl.theta', 'estimator.xh2'],\n", + " ],\n", + ")\n", + "print(clsys_estim)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Run a simulation with no noise first\n", + "clresp_nonoise = ct.input_output_response(\n", + " clsys_estim, T, [10, xd[1], 0, 0], X0=[0, -3, 0, 0, -5, 0])\n", + "\n", + "plt.plot(clresp_nonoise.outputs[0], clresp_nonoise.outputs[1])\n", + "plt.plot(xd[0], xd[1], 'r--')\n", + "\n", + "plt.xlabel(\"$x$ [m]\")\n", + "plt.ylabel(\"$y$ [m]\")\n", + "plt.gca().set_aspect('equal')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Add some noise\n", + "Qv = np.diag([0.1**2, 0.01**2])\n", + "Qw = np.eye(2) * 0.1**2\n", + "\n", + "u_noise = ct.white_noise(T, Qv)\n", + "y_noise = ct.white_noise(T, Qw)\n", + "\n", + "# Run a simulation\n", + "clresp_noisy = ct.input_output_response(\n", + " clsys_estim, T, [10, xd[1], y_noise], X0=[0, -3, 0, 0, -5, 0])\n", + "\n", + "plt.plot(clresp_direct.outputs[0], clresp_direct.outputs[1], label='direct')\n", + "plt.plot(clresp_nonoise.outputs[0], clresp_nonoise.outputs[1], label='nonoise')\n", + "plt.plot(clresp_noisy.outputs[0], clresp_noisy.outputs[1], label='noisy')\n", + "plt.legend()\n", + "plt.plot(xd[0], xd[1], 'r--')\n", + "\n", + "plt.xlabel(\"$x$ [m]\")\n", + "plt.ylabel(\"$y$ [m]\")\n", + "plt.gca().set_aspect('equal')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Plot the differences in y to make differences more clear\n", + "plt.plot(\n", + " clresp_nonoise.time, clresp_nonoise.outputs[1] - clresp_direct.outputs[1],\n", + " label='nonoise')\n", + "plt.plot(\n", + " clresp_noisy.time, clresp_noisy.outputs[1] - clresp_direct.outputs[1],\n", + " label='noisy')\n", + "plt.legend()\n", + "plt.plot([clresp_nonoise.time[0], clresp_nonoise.time[-1]], [0, 0], 'r--')\n", + "\n", + "plt.xlabel(\"Time [s]\")\n", + "plt.ylabel(\"$y$ [m]\");" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Show the control inputs as well as the final trajectory\n", + "plot_lanechange(T, xd, ud, label=\"desired\")\n", + "plot_lanechange(T, clresp_noisy.outputs[0:2], clresp_noisy.outputs[-2:], label=\"actual\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ZfxhaU9p_W4w" + }, + "source": [ + "### Things to try\n", + "\n", + "* Wrap a controller around the velocity (or $x$ position) in addition to the lateral ($y$) position\n", + "* Change the amounts of noise in the sensor signal\n", + "* Add disturbances to the dynamics (corresponding to wind, hills, etc)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/examples/cds110-L6a_kincar-trajgen.ipynb b/examples/cds110-L6a_kincar-trajgen.ipynb new file mode 100644 index 000000000..e139272bd --- /dev/null +++ b/examples/cds110-L6a_kincar-trajgen.ipynb @@ -0,0 +1,533 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "edb7e2c6", + "metadata": { + "id": "edb7e2c6" + }, + "source": [ + "
\n", + "

CDS 110, Lecture 6a

\n", + "

Trajectory Generation for a Kinematic Car Model

\n", + "

Richard M. Murray, Winter 2024

\n", + "
\n", + "\n", + "[Open in Google Colab](https://colab.research.google.com/drive/1vBFjCU2W6fSavy8loL0JfgZyO6UC46m3)\n", + "\n", + "This notebook contains an example of using (optimal) trajectory generation for a vehicle steering system. It illustrates different methods of setting up optimal control problems and solving them using python-control." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7066eb69", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import time\n", + "try:\n", + " import control as ct\n", + " print(\"python-control\", ct.__version__)\n", + "except ImportError:\n", + " !pip install control\n", + " import control as ct\n", + "import control.optimal as opt" + ] + }, + { + "cell_type": "markdown", + "id": "4afb09dd", + "metadata": { + "id": "4afb09dd" + }, + "source": [ + "## Vehicle steering dynamics\n", + "\n", + "\n", + "\n", + " \n", + " \n", + "\n", + "
\n", + "$$\n", + "\\large\\begin{aligned}\n", + " \\dot x &= \\cos\\theta\\, v \\\\\n", + " \\dot y &= \\sin\\theta\\, v \\\\\n", + " \\dot\\theta &= \\frac{v}{l} \\tan \\delta\n", + "\\end{aligned}\n", + "$$\n", + "
\n", + "\n", + "The vehicle dynamics are given by a simple bicycle model. We take the state of the system as $(x, y, \\theta)$ where $(x, y)$ is the position of the vehicle in the plane and $\\theta$ is the angle of the vehicle with respect to horizontal. The vehicle input is given by $(v, \\delta)$ where $v$ is the forward velocity of the vehicle and $\\delta$ is the angle of the steering wheel. The model includes saturation of the vehicle steering angle." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a6143a8a", + "metadata": {}, + "outputs": [], + "source": [ + "# Code to model vehicle steering dynamics\n", + "\n", + "# Function to compute the RHS of the system dynamics\n", + "def kincar_update(t, x, u, params):\n", + " # Get the parameters for the model\n", + " l = params['wheelbase'] # vehicle wheelbase\n", + " deltamax = params['maxsteer'] # max steering angle (rad)\n", + "\n", + " # Saturate the steering input\n", + " delta = np.clip(u[1], -deltamax, deltamax)\n", + "\n", + " # Return the derivative of the state\n", + " return np.array([\n", + " np.cos(x[2]) * u[0], # xdot = cos(theta) v\n", + " np.sin(x[2]) * u[0], # ydot = sin(theta) v\n", + " (u[0] / l) * np.tan(delta) # thdot = v/l tan(delta)\n", + " ])\n", + "\n", + "kincar_params={'wheelbase': 3, 'maxsteer': 0.5}\n", + "\n", + "# Create nonlinear input/output system\n", + "kincar = ct.nlsys(\n", + " kincar_update, None, name=\"kincar\", params=kincar_params,\n", + " inputs=('v', 'delta'), outputs=('x', 'y', 'theta'),\n", + " states=('x', 'y', 'theta'))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4c2bf8d6-7580-4712-affc-928a8b046d8a", + "metadata": {}, + "outputs": [], + "source": [ + "# Utility function to plot lane change manuever\n", + "def plot_lanechange(t, y, u, figure=None, yf=None, label=None):\n", + " # Plot the xy trajectory\n", + " plt.subplot(3, 1, 1, label='xy')\n", + " plt.plot(y[0], y[1], label=label)\n", + " plt.xlabel(\"x [m]\")\n", + " plt.ylabel(\"y [m]\")\n", + " if yf is not None:\n", + " plt.plot(yf[0], yf[1], 'ro')\n", + "\n", + " # Plot x and y as functions of time\n", + " plt.subplot(3, 2, 3, label='x')\n", + " plt.plot(t, y[0])\n", + " plt.ylabel(\"$x$ [m]\")\n", + "\n", + " plt.subplot(3, 2, 4, label='y')\n", + " plt.plot(t, y[1])\n", + " plt.ylabel(\"$y$ [m]\")\n", + "\n", + " # Plot the inputs as a function of time\n", + " plt.subplot(3, 2, 5, label='v')\n", + " plt.plot(t, u[0])\n", + " plt.xlabel(\"Time $t$ [sec]\")\n", + " plt.ylabel(\"$v$ [m/s]\")\n", + "\n", + " plt.subplot(3, 2, 6, label='delta')\n", + " plt.plot(t, u[1])\n", + " plt.xlabel(\"Time $t$ [sec]\")\n", + " plt.ylabel(\"$\\\\delta$ [rad]\")\n", + "\n", + " plt.subplot(3, 1, 1)\n", + " plt.title(\"Lane change manuever\")\n", + " if label:\n", + " plt.legend()\n", + " plt.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "id": "64bd3c3b", + "metadata": { + "id": "64bd3c3b" + }, + "source": [ + "## Optimal trajectory generation\n", + "\n", + "The general problem we are solving is of the form:\n", + "\n", + "$$\n", + "\\min_{u(\\cdot)}\n", + " \\int_0^T L(x,u)\\, dt + V \\bigl( x(T) \\bigr)\n", + "$$\n", + "subject to\n", + "$$\n", + " \\dot x = f(x, u), \\qquad x\\in \\mathcal{X} \\subset \\mathbb{R}^n,\\, u\\in \\mathcal{U} \\subset \\mathbb{R}^m\n", + "$$\n", + "\n", + "We consider the problem of changing from one lane to another over a perod of 10 seconds while driving at a forward speed of 10 m/s." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "42dcbd79", + "metadata": {}, + "outputs": [], + "source": [ + "# Initial and final conditions\n", + "x0 = np.array([ 0., -2., 0.]); u0 = np.array([10., 0.])\n", + "xf = np.array([100., 2., 0.]); uf = np.array([10., 0.])\n", + "Tf = 10" + ] + }, + { + "cell_type": "markdown", + "id": "5ff2e044", + "metadata": { + "id": "5ff2e044" + }, + "source": [ + "An important part of the optimization procedure is to give a good initial guess. Here are some possibilities:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "650d321a", + "metadata": {}, + "outputs": [], + "source": [ + "# Define the time horizon (and spacing) for the optimization\n", + "# timepts = np.linspace(0, Tf, 5, endpoint=True) # Try using this and see what happens\n", + "# timepts = np.linspace(0, Tf, 10, endpoint=True) # Try using this and see what happens\n", + "timepts = np.linspace(0, Tf, 20, endpoint=True)\n", + "\n", + "# Compute some initial guesses to use\n", + "bend_left = [10, 0.01] # slight left veer (will extend over all timepts)\n", + "straight_line = ( # straight line from start to end with nominal input\n", + " np.array([x0 + (xf - x0) * t/Tf for t in timepts]).transpose(),\n", + " u0\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "4e75a2c4", + "metadata": { + "id": "4e75a2c4" + }, + "source": [ + "### Approach 1: standard quadratic cost\n", + "\n", + "We can set up the optimal control problem as trying to minimize the distance from the desired final point while at the same time as not exerting too much control effort to achieve our goal.\n", + "\n", + "$$\n", + "\\min_{u(\\cdot)}\n", + " \\int_0^T \\left[(x(\\tau) - x_\\text{f})^T Q_x (x(\\tau) - x_\\text{f}) + (u(\\tau) - u_\\text{f})^T Q_u (u(\\tau) - u_\\text{f})\\right] \\, d\\tau\n", + "$$\n", + "subject to\n", + "$$\n", + " \\dot x = f(x, u), \\qquad x \\in \\mathbb{R}^n,\\, u \\in \\mathbb{R}^m\n", + "$$\n", + "\n", + "The optimization module solves optimal control problems by choosing the values of the input at each point in the time horizon to try to minimize the cost:\n", + "\n", + "$$\n", + "u_i(t_j) = \\alpha_{i, j}, \\qquad\n", + "u_i(t) = \\frac{t_{i+1} - t}{t_{i+1} - t_i} \\alpha_{i, j} + \\frac{t - t_i}{t_{i+1} - t_i} \\alpha_{{i+1},j}\n", + "$$\n", + "\n", + "This means that each input generates a parameter value at each point in the time horizon, so the more refined your time horizon, the more parameters the optimizer has to search over." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "984c2f0b", + "metadata": {}, + "outputs": [], + "source": [ + "# Set up the cost functions\n", + "Qx = np.diag([.1, 10, .1]) # keep lateral error low\n", + "Qu = np.diag([.1, 1]) # minimize applied inputs\n", + "quad_cost = opt.quadratic_cost(kincar, Qx, Qu, x0=xf, u0=uf)\n", + "\n", + "# Compute the optimal control, setting step size for gradient calculation (eps)\n", + "start_time = time.process_time()\n", + "result1 = opt.solve_ocp(\n", + " kincar, timepts, x0, quad_cost,\n", + " initial_guess=straight_line,\n", + " # initial_guess= bend_left,\n", + " # initial_guess=u0,\n", + " # minimize_method='trust-constr',\n", + " # minimize_options={'finite_diff_rel_step': 0.01},\n", + " # trajectory_method='shooting'\n", + " # solve_ivp_method='LSODA'\n", + ")\n", + "print(\"* Total time = %5g seconds\\n\" % (time.process_time() - start_time))\n", + "\n", + "# Plot the results from the optimization\n", + "plot_lanechange(timepts, result1.states, result1.inputs, xf)\n", + "print(\"Final computed state: \", result1.states[:,-1])\n", + "\n", + "# Simulate the system and see what happens\n", + "t1, u1 = result1.time, result1.inputs\n", + "t1, y1 = ct.input_output_response(kincar, timepts, u1, x0)\n", + "plot_lanechange(t1, y1, u1, yf=xf[0:2])\n", + "print(\"Final simulated state:\", y1[:,-1])\n", + "\n", + "# Label the different lines\n", + "plt.subplot(3, 1, 1)\n", + "plt.legend(['desired', 'simulated', 'endpoint'])\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "id": "b7cade52", + "metadata": { + "id": "b7cade52" + }, + "source": [ + "Note the amount of time required to solve the problem and also any warning messages about to being able to solve the optimization (mainly in earlier versions of python-control). You can try to adjust a number of factors to try to get a better solution:\n", + "* Try changing the number of points in the time horizon\n", + "* Try using a different initial guess\n", + "* Try changing the optimization method (see commented out code)" + ] + }, + { + "cell_type": "markdown", + "id": "6a9f9d9b", + "metadata": { + "id": "6a9f9d9b" + }, + "source": [ + "### Approach 2: input cost, input constraints, terminal cost\n", + "\n", + "The previous solution integrates the position error for the entire horizon, and so the car changes lanes very quickly (at the cost of larger inputs). Instead, we can penalize the final state and impose a higher cost on the inputs, resulting in a more gradual lane change.\n", + "\n", + "$$\n", + "\\min_{u(\\cdot)}\n", + " \\int_0^T \\underbrace{\\left[x(\\tau)^T Q_x x(\\tau) + (u(\\tau) - u_\\text{f})^T Q_u (u(\\tau) - u_\\text{f})\\right]}_{L(x, u)} \\, d\\tau + \\underbrace{(x(T) - x_\\text{f})^T Q_\\text{f} (x(T) - x_\\text{f})}_{V\\left(x(T)\\right)}\n", + "$$\n", + "subject to\n", + "$$\n", + " \\dot x = f(x, u), \\qquad x \\in \\mathbb{R}^n,\\, u \\in \\mathbb{R}^m\n", + "$$\n", + "\n", + "We can also try using a different solver for this example. You can pass the solver using the `minimize_method` keyword and send options to the solver using the `minimize_options` keyword (which should be set to a dictionary of options)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a201e33c", + "metadata": {}, + "outputs": [], + "source": [ + "# Add input constraint, input cost, terminal cost\n", + "constraints = [ opt.input_range_constraint(kincar, [8, -0.1], [12, 0.1]) ]\n", + "traj_cost = opt.quadratic_cost(kincar, None, np.diag([0.1, 1]), u0=uf)\n", + "term_cost = opt.quadratic_cost(kincar, np.diag([1, 10, 100]), None, x0=xf)\n", + "\n", + "# Compute the optimal control\n", + "start_time = time.process_time()\n", + "result2 = opt.solve_ocp(\n", + " kincar, timepts, x0, traj_cost, constraints, terminal_cost=term_cost,\n", + " initial_guess=straight_line,\n", + " # minimize_method='trust-constr',\n", + " # minimize_options={'finite_diff_rel_step': 0.01},\n", + " # minimize_method='SLSQP', minimize_options={'eps': 0.01},\n", + " # log=True,\n", + ")\n", + "print(\"* Total time = %5g seconds\\n\" % (time.process_time() - start_time))\n", + "\n", + "# Plot the results from the optimization\n", + "plot_lanechange(timepts, result2.states, result2.inputs, xf)\n", + "print(\"Final computed state: \", result2.states[:,-1])\n", + "\n", + "# Simulate the system and see what happens\n", + "t2, u2 = result2.time, result2.inputs\n", + "t2, y2 = ct.input_output_response(kincar, timepts, u2, x0)\n", + "plot_lanechange(t2, y2, u2, yf=xf[0:2])\n", + "print(\"Final simulated state:\", y2[:,-1])\n", + "\n", + "# Label the different lines\n", + "plt.subplot(3, 1, 1)\n", + "plt.legend(['desired', 'simulated', 'endpoint'], loc='upper left')\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "id": "3d2ccf97", + "metadata": { + "id": "3d2ccf97" + }, + "source": [ + "### Approach 3: terminal constraints\n", + "\n", + "We can also remove the cost function on the state and replace it with a terminal *constraint* on the state as well as bounds on the inputs. If a solution is found, it guarantees we get to exactly the final state:\n", + "\n", + "$$\n", + "\\min_{u(\\cdot)}\n", + " \\int_0^T \\underbrace{(u(\\tau) - u_\\text{f})^T Q_u (u(\\tau) - u_\\text{f})}_{L(x, u)} \\, d\\tau\n", + "$$\n", + "subject to\n", + "$$\n", + " \\begin{aligned}\n", + " \\dot x &= f(x, u), & \\qquad &x \\in \\mathbb{R}^n,\\, u \\in \\mathbb{R}^m \\\\\n", + " x(T) &= x_\\text{f} & &u_\\text{lb} \\leq u(t) \\leq u_\\text{ub},\\, \\text{for all $t$}\n", + " \\end{aligned}\n", + "$$\n", + "\n", + "Note that trajectory and terminal constraints can be very difficult to satisfy for a general optimization." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "dc77a856", + "metadata": {}, + "outputs": [], + "source": [ + "# Input cost and terminal constraints\n", + "R = np.diag([1, 1]) # minimize applied inputs\n", + "cost3 = opt.quadratic_cost(kincar, np.zeros((3,3)), R, u0=uf)\n", + "constraints = [\n", + " opt.input_range_constraint(kincar, [8, -0.1], [12, 0.1]) ]\n", + "terminal = [ opt.state_range_constraint(kincar, xf, xf) ]\n", + "\n", + "# Compute the optimal control\n", + "start_time = time.process_time()\n", + "result3 = opt.solve_ocp(\n", + " kincar, timepts, x0, cost3, constraints,\n", + " terminal_constraints=terminal, initial_guess=straight_line,\n", + "# solve_ivp_kwargs={'atol': 1e-3, 'rtol': 1e-2},\n", + "# minimize_method='trust-constr',\n", + "# minimize_options={'finite_diff_rel_step': 0.01},\n", + ")\n", + "print(\"* Total time = %5g seconds\\n\" % (time.process_time() - start_time))\n", + "\n", + "# Plot the results from the optimization\n", + "plot_lanechange(timepts, result3.states, result3.inputs, xf)\n", + "print(\"Final computed state: \", result3.states[:,-1])\n", + "\n", + "# Simulate the system and see what happens\n", + "t3, u3 = result3.time, result3.inputs\n", + "t3, y3 = ct.input_output_response(kincar, timepts, u3, x0)\n", + "plot_lanechange(t3, y3, u3, yf=xf[0:2])\n", + "print(\"Final state: \", y3[:,-1])\n", + "\n", + "# Label the different lines\n", + "plt.subplot(3, 1, 1)\n", + "plt.legend(['desired', 'simulated', 'endpoint'], loc='upper left')\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "id": "9e744463", + "metadata": { + "id": "9e744463" + }, + "source": [ + "### Approach 4: terminal constraints w/ basis functions (if time)\n", + "\n", + "As a final example, we can use a basis function to reduce the size of the problem and get faster answers with more temporal resolution:\n", + "\n", + "$$\n", + "\\min_{u(\\cdot)}\n", + " \\int_0^T L(x, u) \\, d\\tau + V\\left(x(T)\\right)\n", + "$$\n", + "subject to\n", + "$$\n", + " \\begin{aligned}\n", + " \\dot x &= f(x, u), \\qquad x \\in \\mathcal{X} \\subset \\mathbb{R}^n,\\, u \\in \\mathcal{U} \\subset \\mathbb{R}^m \\\\\n", + " u(t) &= \\sum_i \\alpha_i \\phi^i(t),\n", + " \\end{aligned}\n", + "$$\n", + "where $\\phi^i(t)$ are a set of basis functions.\n", + "\n", + "Here we parameterize the input by a set of 4 Bezier curves but solve for a much more time resolved set of inputs. Note that while we are using the `control.flatsys` module to define the basis functions, we are not exploiting the fact that the system is differentially flat." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ee82aa25", + "metadata": {}, + "outputs": [], + "source": [ + "# Get basis functions for flat systems module\n", + "import control.flatsys as flat\n", + "\n", + "# Compute the optimal control\n", + "start_time = time.process_time()\n", + "result4 = opt.solve_ocp(\n", + " kincar, timepts, x0, quad_cost, constraints,\n", + " terminal_constraints=terminal,\n", + " initial_guess=straight_line,\n", + " basis=flat.PolyFamily(4, T=Tf),\n", + " # solve_ivp_kwargs={'method': 'RK45', 'atol': 1e-2, 'rtol': 1e-2},\n", + " # solve_ivp_kwargs={'atol': 1e-3, 'rtol': 1e-2},\n", + " # minimize_method='trust-constr', minimize_options={'disp': True},\n", + " log=False\n", + ")\n", + "print(\"* Total time = %5g seconds\\n\" % (time.process_time() - start_time))\n", + "\n", + "# Plot the results from the optimization\n", + "plot_lanechange(timepts, result4.states, result4.inputs, xf)\n", + "print(\"Final computed state: \", result3.states[:,-1])\n", + "\n", + "# Simulate the system and see what happens\n", + "t4, u4 = result4.time, result4.inputs\n", + "t4, y4 = ct.input_output_response(kincar, timepts, u4, x0)\n", + "plot_lanechange(t4, y4, u4, yf=xf[0:2])\n", + "print(\"Final simulated state: \", y4[:,-1])\n", + "\n", + "# Label the different lines\n", + "plt.subplot(3, 1, 1)\n", + "plt.legend(['desired', 'simulated', 'endpoint'], loc='upper left')\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "id": "2a74388e", + "metadata": { + "id": "2a74388e" + }, + "source": [ + "Note how much smoother the inputs look, although the solver can still have a hard time satisfying the final constraints, resulting in longer computation times." + ] + }, + { + "cell_type": "markdown", + "id": "1465d149", + "metadata": { + "id": "1465d149" + }, + "source": [ + "### Additional things to try\n", + "\n", + "* Compare the results here with what we go last week exploiting the property of differential flatness (computation time, in particular)\n", + "* Try using different weights, solvers, initial guess and other properties and see how things change.\n", + "* Try using different values for `initial_guess` to get faster convergence and/or different classes of solutions." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "02bad3d5", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/examples/cds110-L6b_kincar-tracking.ipynb b/examples/cds110-L6b_kincar-tracking.ipynb new file mode 100644 index 000000000..9f4cbb475 --- /dev/null +++ b/examples/cds110-L6b_kincar-tracking.ipynb @@ -0,0 +1,509 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "exempt-legislation", + "metadata": { + "id": "exempt-legislation" + }, + "source": [ + "
\n", + "

CDS 110, Lecture 6b

\n", + "

Trajectory Tracking for a Kinematic Car

\n", + "

Richard M. Murray, Winter 2024

\n", + "
\n", + "\n", + "[Open in Google Colab](https://colab.research.google.com/drive/12VSFMqM6HVyj8TY_3zb0AnsJrG6UeLKF)\n", + "\n", + "This notebook contains an example of using trajectory tracking for a (nonlinear) state space system. The controller is of the form\n", + "\n", + "$$\n", + " u = u_\\text{d} − K (x − x_\\text{d}),\n", + "$$\n", + "\n", + "where $x_\\text{d}, u_\\text{d}$ is a feasible trajectory, and $K$ is a feedback gain first computed around a nominal condition and then computed using gain scheduling." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "corresponding-convenience", + "metadata": {}, + "outputs": [], + "source": [ + "# Import the packages needed for the examples included in this notebook\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import itertools\n", + "from cmath import sqrt\n", + "from math import pi\n", + "try:\n", + " import control as ct\n", + " print(\"python-control\", ct.__version__)\n", + "except ImportError:\n", + " !pip install control\n", + " import control as ct\n", + "import control.optimal as opt\n", + "import control.flatsys as fs" + ] + }, + { + "cell_type": "markdown", + "id": "corporate-sense", + "metadata": { + "id": "corporate-sense" + }, + "source": [ + "## Vehicle Steering Dynamics\n", + "\n", + "The vehicle dynamics are given by a simple bicycle model:\n", + "\n", + "\n", + "\n", + " \n", + " \n", + "\n", + "
\n", + "$$\\large\n", + "\\begin{aligned}\n", + " \\dot x &= \\cos\\theta\\, v \\\\\n", + " \\dot y &= \\sin\\theta\\, v \\\\\n", + " \\dot\\theta &= \\frac{v}{l} \\tan \\delta\n", + "\\end{aligned}\n", + "$$\n", + "
\n", + "\n", + "We take the state of the system as $(x, y, \\theta)$ where $(x, y)$ is the position of the vehicle in the plane and $\\theta$ is the angle of the vehicle with respect to horizontal. The vehicle input is given by $(v, \\delta)$ where $v$ is the forward velocity of the vehicle and $\\delta$ is the angle of the steering wheel. The model includes saturation of the vehicle steering angle." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "naval-pizza", + "metadata": {}, + "outputs": [], + "source": [ + "# Code to model vehicle steering dynamics\n", + "\n", + "# Function to compute the RHS of the system dynamics\n", + "def kincar_update(t, x, u, params):\n", + " # Get the parameters for the model\n", + " l = params['wheelbase'] # vehicle wheelbase\n", + " deltamax = params['maxsteer'] # max steering angle (rad)\n", + "\n", + " # Saturate the steering input\n", + " delta = np.clip(u[1], -deltamax, deltamax)\n", + "\n", + " # Return the derivative of the state\n", + " return np.array([\n", + " np.cos(x[2]) * u[0], # xdot = cos(theta) v\n", + " np.sin(x[2]) * u[0], # ydot = sin(theta) v\n", + " (u[0] / l) * np.tan(delta) # thdot = v/l tan(delta)\n", + " ])\n", + "\n", + "kincar_params={'wheelbase': 3, 'maxsteer': 0.5}\n", + "\n", + "# Create nonlinear input/output system\n", + "kincar = ct.nlsys(\n", + " kincar_update, None, name=\"kincar\", params=kincar_params,\n", + " inputs=('v', 'delta'), outputs=('x', 'y', 'theta'),\n", + " states=('x', 'y', 'theta'))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6340dbd4-7867-47ad-aefb-1bea7f6ad566", + "metadata": {}, + "outputs": [], + "source": [ + "# Utility function to plot lane change manuever\n", + "def plot_lanechange(t, y, u, figure=None, yf=None, label=None):\n", + " # Plot the xy trajectory\n", + " plt.subplot(3, 1, 1, label='xy')\n", + " plt.plot(y[0], y[1], label=label)\n", + " plt.xlabel(\"x [m]\")\n", + " plt.ylabel(\"y [m]\")\n", + " if yf is not None:\n", + " plt.plot(yf[0], yf[1], 'ro')\n", + "\n", + " # Plot x and y as functions of time\n", + " plt.subplot(3, 2, 3, label='x')\n", + " plt.plot(t, y[0])\n", + " plt.ylabel(\"$x$ [m]\")\n", + "\n", + " plt.subplot(3, 2, 4, label='y')\n", + " plt.plot(t, y[1])\n", + " plt.ylabel(\"$y$ [m]\")\n", + "\n", + " # Plot the inputs as a function of time\n", + " plt.subplot(3, 2, 5, label='v')\n", + " plt.plot(t, u[0])\n", + " plt.xlabel(\"Time $t$ [sec]\")\n", + " plt.ylabel(\"$v$ [m/s]\")\n", + "\n", + " plt.subplot(3, 2, 6, label='delta')\n", + " plt.plot(t, u[1])\n", + " plt.xlabel(\"Time $t$ [sec]\")\n", + " plt.ylabel(\"$\\\\delta$ [rad]\")\n", + "\n", + " plt.subplot(3, 1, 1)\n", + " plt.title(\"Lane change manuever\")\n", + " if label:\n", + " plt.legend()\n", + " plt.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "id": "BAsKLMWWK3W2", + "metadata": { + "id": "BAsKLMWWK3W2" + }, + "source": [ + "## State feedback controller\n", + "\n", + "We start by designing a state feedback controller that can be used to stabilize the system. We design the controller around a nominal forward speed of 10 m/s and then apply this to the vehicle at different speeds." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "g7DztIjmK2K_", + "metadata": {}, + "outputs": [], + "source": [ + "# Compute the linearization of the dynamics at a nominal point\n", + "x_nom = np.array([0, 0, 0])\n", + "u_nom = np.array([5, 0])\n", + "P = ct.linearize(kincar, x_nom, u_nom) # Linearized systems\n", + "print(P)\n", + "\n", + "Qx = np.diag([1, 10, 0.1])\n", + "Qu = np.diag([1, 1])\n", + "K, _, _ = ct.lqr(P.A, P.B, Qx, Qu)\n", + "print(K)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "szvKKh6rLgkt", + "metadata": {}, + "outputs": [], + "source": [ + "# Create the closed loop system using create_statefbk_iosystem\n", + "?ct.create_statefbk_iosystem\n", + "ctrl, clsys = ct.create_statefbk_iosystem(\n", + " kincar, K, xd_labels=['xd', 'yd', 'thetad'], ud_labels=['vd', 'deltad'])\n", + "print(clsys)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "gow-ZEerMCw7", + "metadata": {}, + "outputs": [], + "source": [ + "# Create a trajectory corresponding to a slow lane change\n", + "x0 = np.array([0, -2, 0]); u0 = [10, 0]\n", + "xf = np.array([100, 2, 0])\n", + "Tf = 10\n", + "timepts = np.linspace(0, Tf, 20)\n", + "\n", + "straight_line = ( # straight line from start to end with nominal input\n", + " np.array([x0 + (xf - x0) * t/Tf for t in timepts]).transpose(),\n", + " u0\n", + ")\n", + "\n", + "desired = opt.solve_ocp(\n", + " kincar, timepts, x0,\n", + " cost=opt.quadratic_cost(kincar, None, Qu, u0=u0),\n", + " terminal_constraints=opt.state_range_constraint(kincar, xf, xf),\n", + " initial_guess=straight_line)\n", + "\n", + "plot_lanechange(desired.time, desired.states, desired.inputs, yf=xf)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "NLa4dbI8PWhY", + "metadata": {}, + "outputs": [], + "source": [ + "# Simulate the system with an initial condition error\n", + "# Use t_eval to evaluate at points between inputs\n", + "actual = ct.input_output_response(\n", + " clsys, timepts, [desired.states, desired.inputs],\n", + " X0=[-3, -5, 0], t_eval=np.linspace(0, Tf, 500))\n", + "\n", + "plot_lanechange(actual.time, actual.states, actual.outputs[3:])\n", + "plot_lanechange(desired.time, desired.states, desired.inputs, yf=xf)" + ] + }, + { + "cell_type": "markdown", + "id": "TKyc2jOiWJBe", + "metadata": { + "id": "TKyc2jOiWJBe" + }, + "source": [ + "Note that the value of $\\delta$ is very large at the start. This is truncated in the model so that it does not exceed $\\pm 0.5$ rad." + ] + }, + { + "cell_type": "markdown", + "id": "6c6c4b9b", + "metadata": { + "id": "6c6c4b9b" + }, + "source": [ + "## Reference trajectory subsystem\n", + "\n", + "In addition to generating a trajectory for the system, we can also create $x_\\text{d}$ and $u_\\text{d}$ corresponding to reference inputs $r_y$ and $r_v$.\n", + "\n", + "The reference trajectory block below generates a simple trajectory for the system given the desired speed (vref) and lateral position (yref). The trajectory consists of a straight line of the form (vref * t, yref, 0) with nominal\n", + "input (vref, 0)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "significant-november", + "metadata": {}, + "outputs": [], + "source": [ + "# System state: none\n", + "# System input: vref, yref\n", + "# System output: xd, yd, thetad, vd, deltad\n", + "# System parameters: none\n", + "#\n", + "def trajgen_output(t, x, u, params):\n", + " vref, yref = u\n", + " return np.array([vref * t, yref, 0, vref, 0])\n", + "\n", + "# Define the trajectory generator as an input/output system\n", + "trajgen = ct.nlsys(\n", + " None, trajgen_output, name='trajgen',\n", + " inputs=('vref', 'yref'),\n", + " outputs=('xd', 'yd', 'thetad', 'vd', 'deltad'))\n", + "\n", + "print(trajgen)" + ] + }, + { + "cell_type": "markdown", + "id": "0w5s56uUWw-v", + "metadata": { + "id": "0w5s56uUWw-v" + }, + "source": [ + "## Step responses\n", + "\n", + "To explore the dynamics of the system, we create a set of lane changes at different forward speeds. Since the linearization depends on the speed, this means that the closed loop performance of the system will vary." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "mtGLwMQkXEzw", + "metadata": {}, + "outputs": [], + "source": [ + "steering_fixed = ct.interconnect(\n", + " [kincar, ctrl, trajgen],\n", + " inputs=['vref', 'yref'],\n", + " outputs=kincar.output_labels + kincar.input_labels\n", + ")\n", + "print(steering_fixed)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "sz7NaJTGXua1", + "metadata": {}, + "outputs": [], + "source": [ + "# Set up the simulation conditions\n", + "yref = 1\n", + "T = np.linspace(0, 5, 100)\n", + "\n", + "# Do an iteration through different speeds\n", + "for vref in [2, 5, 20]:\n", + " # Simulate the closed loop controller response\n", + " tout, yout = ct.input_output_response(\n", + " steering_fixed, T, [vref * np.ones(len(T)), yref * np.ones(len(T))],\n", + " params={'maxsteer': 1})\n", + "\n", + " # Plot the results\n", + " plot_lanechange(tout, yout, yout[3:])\n", + "\n", + "# Label the different curves\n", + "plt.subplot(3, 1, 1)\n", + "plt.legend([\"$v_d$ = \" + f\"{vref}\" for vref in [2, 10, 20]])\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "id": "3cc26675", + "metadata": { + "id": "3cc26675" + }, + "source": [ + "## Gain scheduled controller\n", + "\n", + "For this system we use a simple schedule on the forward vehicle velocity and\n", + "place the poles of the system at fixed values. The controller takes the\n", + "current and desired vehicle position and orientation plus the velocity\n", + "velocity as inputs, and returns the velocity and steering commands.\n", + "\n", + "Linearizing the system about the desired trajectory, we obtain\n", + "\n", + "$$\n", + " \\begin{aligned}\n", + " A(x_\\text{d}) &= \\left. \\frac{\\partial f}{\\partial x} \\right|_{(x_\\text{d}, u_\\text{d})}\n", + " = \\left.\n", + " \\begin{bmatrix}\n", + " 0 & 0 & -\\sin\\theta_\\text{d}\\, v_\\text{d} \\\\ 0 & 0 & \\cos\\theta_\\text{d}\\, v_\\text{d} \\\\ 0 & 0 & 0\n", + " \\end{bmatrix}\n", + " \\right|_{(x_\\text{d}, u_\\text{d})}\n", + " = \\begin{bmatrix}\n", + " 0 & 0 & 0 \\\\ 0 & 0 & v_\\text{d} \\\\ 0 & 0 & 0\n", + " \\end{bmatrix}, \\\\\n", + " B(x_\\text{d}) &= \\left. \\frac{\\partial f}{\\partial u} \\right|_{(x_\\text{d}, u_\\text{d})}\n", + " = \\begin{bmatrix}\n", + " 1 & 0 \\\\ 0 & 0 \\\\ 0 & v_\\text{d}/l\n", + " \\end{bmatrix}.\n", + " \\end{aligned}\n", + "$$\n", + "\n", + "We see that these matrices depend only on $\\theta_\\text{d}$ and $v_\\text{d}$, so we choose these as the scheduling variables and design a controller of the form\n", + "\n", + "$$\n", + "u = u_\\text{d} - K(\\mu) (x - x_\\text{d})\n", + "$$\n", + "\n", + "where $\\mu = (\\theta_\\text{d}, v_\\text{d})$ and we interpolate the gains based on LQR controllers computed at a fixed set of points $\\mu_i$." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "another-milwaukee", + "metadata": {}, + "outputs": [], + "source": [ + "# Define the points for the scheduling variables\n", + "gs_speeds = [2, 10, 20]\n", + "gs_angles = np.linspace(-pi, pi, 4)\n", + "\n", + "# Create controllers at each scheduling point (\n", + "points = [np.array([speed, angle])\n", + " for speed in gs_speeds for angle in gs_angles]\n", + "gains = [np.array(ct.lqr(kincar.linearize(\n", + " [0, 0, angle], [speed, 0]), Qx, Qu)[0])\n", + " for speed in gs_speeds for angle in gs_angles]\n", + "print(f\"{points=}\")\n", + "print(f\"{gains=}\")\n", + "\n", + "# Create the gain scheduled system\n", + "ctrl_gs, _ = ct.create_statefbk_iosystem(\n", + " kincar, (gains, points), name='controller',\n", + " xd_labels=['xd', 'yd', 'thetad'], ud_labels=['vd', 'deltad'],\n", + " gainsched_indices=['vd', 'theta'], gainsched_method='linear')\n", + "print(ctrl_gs)" + ] + }, + { + "cell_type": "markdown", + "id": "4ca5ab53", + "metadata": { + "id": "4ca5ab53" + }, + "source": [ + "## System construction\n", + "\n", + "The input to the full closed loop system is the desired lateral position and the desired forward velocity. The output for the system is taken as the full vehicle state plus the velocity of the vehicle.\n", + "\n", + "We construct the system using the `ct.interconnect` function and use signal labels to keep track of everything. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "editorial-satisfaction", + "metadata": {}, + "outputs": [], + "source": [ + "steering_gainsched = ct.interconnect(\n", + " [trajgen, ctrl_gs, kincar], name='steering',\n", + " inputs=['vref', 'yref'],\n", + " outputs=kincar.output_labels + kincar.input_labels\n", + ")\n", + "print(steering_gainsched)" + ] + }, + { + "cell_type": "markdown", + "id": "47f5d528", + "metadata": { + "id": "47f5d528" + }, + "source": [ + "## System simulation\n", + "\n", + "We now simulate the gain scheduled controller for a step input in the $y$ position, using a range of vehicle speeds $v_\\text{d}$:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "smoking-trail", + "metadata": {}, + "outputs": [], + "source": [ + "# Plot the reference trajectory for the y position\n", + "# plt.plot([0, 5], [yref, yref], 'k-', linewidth=0.6)\n", + "\n", + "# Find the signals we want to plot\n", + "y_index = steering_gainsched.find_output('y')\n", + "v_index = steering_gainsched.find_output('v')\n", + "\n", + "# Do an iteration through different speeds\n", + "for vref in [2, 5, 20]:\n", + " # Simulate the closed loop controller response\n", + " tout, yout = ct.input_output_response(\n", + " steering_gainsched, T, [vref * np.ones(len(T)), yref * np.ones(len(T))],\n", + " X0=[0, 0, 0], params={'maxsteer': 0.5}\n", + " )\n", + "\n", + " # Plot the results\n", + " plot_lanechange(tout, yout, yout[3:])\n", + "\n", + "# Label the different curves\n", + "plt.subplot(3, 1, 1)\n", + "plt.legend([\"$v_d$ = \" + f\"{vref}\" for vref in [2, 10, 20]])\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6f571b2b", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/examples/cds110-L6c_doubleint-rhc.ipynb b/examples/cds110-L6c_doubleint-rhc.ipynb new file mode 100644 index 000000000..2999ff3ef --- /dev/null +++ b/examples/cds110-L6c_doubleint-rhc.ipynb @@ -0,0 +1,651 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "9d41c333", + "metadata": { + "id": "9d41c333" + }, + "source": [ + "
\n", + "

CDS 110, Lecture 6c

\n", + "

Receding Horizon Control of a Double Integrator with Bounded Input

\n", + "

Richard M. Murray, Winter 2024

\n", + "
\n", + "\n", + "[Open in Google Colab](https://colab.research.google.com/drive/1AufRjpbdKcOEoWO5NEiczF3C8Rc4JuTL)\n", + "\n", + "To illustrate the implementation of a receding horizon controller, we consider a linear system corresponding to a double integrator with bounded input:\n", + "\n", + "$$\n", + " \\dot x = \\begin{bmatrix} 0 & 1 \\\\ 0 & 0 \\end{bmatrix} x + \\begin{bmatrix} 0 \\\\ 1 \\end{bmatrix} \\text{clip}(u)\n", + " \\qquad\\text{where}\\qquad\n", + " \\text{clip}(u) = \\begin{cases}\n", + " -1 & u < -1, \\\\\n", + " u & -1 \\leq u \\leq 1, \\\\\n", + " 1 & u > 1.\n", + " \\end{cases}\n", + "$$\n", + "\n", + "We implement a model predictive controller by choosing\n", + "\n", + "$$\n", + " Q_x = \\begin{bmatrix} 1 & 0 \\\\ 0 & 0 \\end{bmatrix}, \\qquad\n", + " Q_u = \\begin{bmatrix} 1 \\end{bmatrix}, \\qquad\n", + " P_1 = \\begin{bmatrix} 0.1 & 0 \\\\ 0 & 0.1 \\end{bmatrix}.\n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4fe0af7f", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import scipy as sp\n", + "import matplotlib.pyplot as plt\n", + "import time\n", + "try:\n", + " import control as ct\n", + " print(\"python-control\", ct.__version__)\n", + "except ImportError:\n", + " !pip install control\n", + " import control as ct\n", + "import control.optimal as opt\n", + "import control.flatsys as fs" + ] + }, + { + "cell_type": "markdown", + "id": "4c695f81", + "metadata": { + "id": "4c695f81" + }, + "source": [ + "## System definition\n", + "\n", + "The system is defined as a double integrator with bounded input." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5c01f571", + "metadata": {}, + "outputs": [], + "source": [ + "def doubleint_update(t, x, u, params):\n", + " # Get the parameters\n", + " lb = params.get('lb', -1)\n", + " ub = params.get('ub', 1)\n", + " assert lb < ub\n", + "\n", + " # bound the input\n", + " u_clip = np.clip(u, lb, ub)\n", + "\n", + " return np.array([x[1], u_clip[0]])\n", + "\n", + "proc = ct.nlsys(\n", + " doubleint_update, None, name=\"double integrator\",\n", + " inputs = ['u'], outputs=['x[0]', 'x[1]'], states=2)" + ] + }, + { + "cell_type": "markdown", + "id": "6c2f0d00", + "metadata": { + "id": "6c2f0d00" + }, + "source": [ + "## Receding horizon controller\n", + "\n", + "To define a receding horizon controller, we create an optimal control problem (using the `OptimalControlProblem` class) and then use the `compute_trajectory` method to solve for the trajectory from the current state.\n", + "\n", + "We start by defining the cost functions, which consists of a trajectory cost and a terminal cost:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a501efef", + "metadata": {}, + "outputs": [], + "source": [ + "Qx = np.diag([1, 0]) # state cost\n", + "Qu = np.diag([1]) # input cost\n", + "traj_cost=opt.quadratic_cost(proc, Qx, Qu)\n", + "\n", + "P1 = np.diag([0.1, 0.1]) # terminal cost\n", + "term_cost = opt.quadratic_cost(proc, P1, None)" + ] + }, + { + "cell_type": "markdown", + "id": "c5470629", + "metadata": { + "id": "c5470629" + }, + "source": [ + "We also set up a set of constraints the correspond to the fact that the input should have magnitude 1. This can be done using either the [`input_range_constraint`](https://python-control.readthedocs.io/en/0.9.3.post2/generated/control.optimal.input_range_constraint.html) function or the [`input_poly_constraint`](https://python-control.readthedocs.io/en/0.9.3.post2/generated/control.optimal.input_poly_constraint.html) function." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cb4c511a", + "metadata": {}, + "outputs": [], + "source": [ + "traj_constraints = opt.input_range_constraint(proc, -1, 1)\n", + "# traj_constraints = opt.input_poly_constraint(\n", + "# proc, np.array([[1], [-1]]), np.array([1, 1]))" + ] + }, + { + "cell_type": "markdown", + "id": "a5568374", + "metadata": { + "id": "a5568374" + }, + "source": [ + "We define the horizon for evaluating finite-time, optimal control by setting up a set of time points across the designed horizon. The input will be computed at each time point." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9edec673", + "metadata": {}, + "outputs": [], + "source": [ + "Th = 5\n", + "timepts = np.linspace(0, Th, 11, endpoint=True)\n", + "print(timepts)" + ] + }, + { + "cell_type": "markdown", + "id": "cb8fcecc", + "metadata": { + "id": "cb8fcecc" + }, + "source": [ + "Finally, we define the optimal control problem that we want to solve (without actually solving it)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e9f31be6", + "metadata": {}, + "outputs": [], + "source": [ + "# Set up the optimal control problem\n", + "ocp = opt.OptimalControlProblem(\n", + " proc, timepts, traj_cost,\n", + " terminal_cost=term_cost,\n", + " trajectory_constraints=traj_constraints,\n", + " # terminal_constraints=term_constraints,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "ee9a39dd", + "metadata": { + "id": "ee9a39dd" + }, + "source": [ + "To make sure that the problem is properly defined, we solve the problem for a specific initial condition. We also compare the amount of time required to solve the problem from a \"cold start\" (no initial guess) versus a \"warm start\" (use the previous solution, shifted forward on point in time)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "887295eb", + "metadata": {}, + "outputs": [], + "source": [ + "X0 = np.array([1, 1])\n", + "\n", + "start_time = time.process_time()\n", + "res = ocp.compute_trajectory(X0, initial_guess=0, return_states=True)\n", + "stop_time = time.process_time()\n", + "print(f'* Cold start: {stop_time-start_time:.3} sec')\n", + "\n", + "# Resolve using previous solution (shifted forward) as initial guess to compare timing\n", + "start_time = time.process_time()\n", + "u = res.inputs\n", + "u_shift = np.hstack([u[:, 1:], u[:, -1:]])\n", + "ocp.compute_trajectory(X0, initial_guess=u_shift, print_summary=False)\n", + "stop_time = time.process_time()\n", + "print(f'* Warm start: {stop_time-start_time:.3} sec')" + ] + }, + { + "cell_type": "markdown", + "id": "115dec26", + "metadata": { + "id": "115dec26" + }, + "source": [ + "(In this case the timing is not that different since the system is very simple.)\n", + "\n", + "Plotting the result, we see that the solution is properly computed." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4b98e773", + "metadata": {}, + "outputs": [], + "source": [ + "plt.plot(res.time, res.states[0], 'k-', label='$x_1$')\n", + "plt.plot(res.time, res.inputs[0], 'b-', label='u')\n", + "plt.xlabel('Time [s]')\n", + "plt.ylabel('$x_1$, $u$')\n", + "plt.legend();" + ] + }, + { + "cell_type": "markdown", + "id": "0e85981a", + "metadata": { + "id": "0e85981a" + }, + "source": [ + "We implement the receding horizon controller using a function that we can use with different versions of the problem." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "eb2e8126", + "metadata": {}, + "outputs": [], + "source": [ + "# Create a figure to use for plotting\n", + "def run_rhc_and_plot(\n", + " proc, ocp, X0, Tf, print_summary=False, verbose=False, ax=None, plot=True):\n", + " # Start at the initial point\n", + " x = X0\n", + "\n", + " # Initialize the axes\n", + " if plot and ax is None:\n", + " ax = plt.axes()\n", + "\n", + " # Initialize arrays to store the final trajectory\n", + " time_, inputs_, outputs_, states_ = [], [], [], []\n", + "\n", + " # Generate the individual traces for the receding horizon control\n", + " for t in ocp.timepts:\n", + " # Compute the optimal trajectory over the horizon\n", + " start_time = time.process_time()\n", + " res = ocp.compute_trajectory(x, print_summary=print_summary)\n", + " if verbose:\n", + " print(f\"{t=}: comp time = {time.process_time() - start_time:0.3}\")\n", + "\n", + " # Simulate the system for the update time, with higher res for plotting\n", + " tvec = np.linspace(0, res.time[1], 20)\n", + " inputs = res.inputs[:, 0] + np.outer(\n", + " (res.inputs[:, 1] - res.inputs[:, 0]) / (tvec[-1] - tvec[0]), tvec)\n", + " soln = ct.input_output_response(proc, tvec, inputs, x)\n", + "\n", + " # Save this segment for later use (final point will appear in next segment)\n", + " time_.append(t + soln.time[:-1])\n", + " inputs_.append(soln.inputs[:, :-1])\n", + " outputs_.append(soln.outputs[:, :-1])\n", + " states_.append(soln.states[:, :-1])\n", + "\n", + " if plot:\n", + " # Plot the results over the full horizon\n", + " h3, = ax.plot(t + res.time, res.states[0], 'k--', linewidth=0.5)\n", + " ax.plot(t + res.time, res.inputs[0], 'b--', linewidth=0.5)\n", + "\n", + " # Plot the results for this time segment\n", + " h1, = ax.plot(t + soln.time, soln.states[0], 'k-')\n", + " h2, = ax.plot(t + soln.time, soln.inputs[0], 'b-')\n", + "\n", + " # Update the state to use for the next time point\n", + " x = soln.states[:, -1]\n", + "\n", + " # Append the final point to the response\n", + " time_.append(t + soln.time[-1:])\n", + " inputs_.append(soln.inputs[:, -1:])\n", + " outputs_.append(soln.outputs[:, -1:])\n", + " states_.append(soln.states[:, -1:])\n", + "\n", + " # Label the plot\n", + " if plot:\n", + " # Adjust the limits for consistency\n", + " ax.set_ylim([-4, 3.5])\n", + "\n", + " # Add reference line for input lower bound\n", + " ax.plot([0, 7], [-1, -1], 'k--', linewidth=0.666)\n", + "\n", + " # Label the results\n", + " ax.set_xlabel(\"Time $t$ [sec]\")\n", + " ax.set_ylabel(\"State $x_1$, input $u$\")\n", + " ax.legend(\n", + " [h1, h2, h3], ['$x_1$', '$u$', 'prediction'],\n", + " loc='lower right', labelspacing=0)\n", + " plt.tight_layout()\n", + "\n", + " # Append\n", + " return ct.TimeResponseData(\n", + " np.hstack(time_), np.hstack(outputs_), np.hstack(states_), np.hstack(inputs_))" + ] + }, + { + "cell_type": "markdown", + "id": "be13e00a", + "metadata": { + "id": "be13e00a" + }, + "source": [ + "Finally, we call the controller and plot the response. The solid lines show the portions of the trajectory that we follow. The dashed lines are the trajectory over the full horizon, but which are not followed since we update the computation at each time step. (To get rid of the statistics of each optimization call, use `print_summary=False`.)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "305a1127", + "metadata": {}, + "outputs": [], + "source": [ + "Tf = 10\n", + "rhc_resp = run_rhc_and_plot(proc, ocp, X0, Tf, verbose=True, print_summary=False)\n", + "print(f\"xf = {rhc_resp.states[:, -1]}\")" + ] + }, + { + "cell_type": "markdown", + "id": "6005bfb3", + "metadata": { + "id": "6005bfb3" + }, + "source": [ + "## RHC vs LQR vs LQR terminal cost\n", + "\n", + "In the example above, we used a receding horizon controller with the terminal cost as $P_1 = \\text{diag}(0.1, 0.1)$. An alternative is to set the terminal cost to be the LQR terminal cost that goes along with the trajectory cost, which then provides a \"cost to go\" that matches the LQR \"cost to go\" (but keeping in mind that the LQR controller does not necessarily respect the constraints).\n", + "\n", + "The following code compares the original RHC formulation with a receding horizon controller using an LQR terminal cost versus an LQR controller." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ea2de1f3", + "metadata": {}, + "outputs": [], + "source": [ + "# Get the LQR solution\n", + "K, P_lqr, E = ct.lqr(proc.linearize(0, 0), Qx, Qu)\n", + "print(f\"P_lqr = \\n{P_lqr}\")\n", + "\n", + "# Create an LQR controller (and run it)\n", + "lqr_ctrl, lqr_clsys = ct.create_statefbk_iosystem(proc, K)\n", + "lqr_resp = ct.input_output_response(lqr_clsys, rhc_resp.time, 0, X0)\n", + "\n", + "# Create a new optimal control problem using the LQR terminal cost\n", + "# (need use more refined time grid as well, to approximate LQR rate)\n", + "lqr_timepts = np.linspace(0, Th, 25, endpoint=True)\n", + "lqr_term_cost=opt.quadratic_cost(proc, P_lqr, None)\n", + "ocp_lqr = opt.OptimalControlProblem(\n", + " proc, lqr_timepts, traj_cost, terminal_cost=lqr_term_cost,\n", + " trajectory_constraints=traj_constraints,\n", + ")\n", + "\n", + "# Create the response for the new controller\n", + "rhc_lqr_resp = run_rhc_and_plot(\n", + " proc, ocp_lqr, X0, 10, plot=False, print_summary=False)\n", + "\n", + "# Plot the different responses to compare them\n", + "fig, ax = plt.subplots(2, 1)\n", + "ax[0].plot(rhc_resp.time, rhc_resp.states[0], label='RHC + P_1')\n", + "ax[0].plot(rhc_lqr_resp.time, rhc_lqr_resp.states[0], '--', label='RHC + P_lqr')\n", + "ax[0].plot(lqr_resp.time, lqr_resp.outputs[0], ':', label='LQR')\n", + "ax[0].legend()\n", + "\n", + "ax[1].plot(rhc_resp.time, rhc_resp.inputs[0], label='RHC + P_1')\n", + "ax[1].plot(rhc_lqr_resp.time, rhc_lqr_resp.inputs[0], '--', label='RHC + P_lqr')\n", + "ax[1].plot(lqr_resp.time, lqr_resp.outputs[2], ':', label='LQR')" + ] + }, + { + "cell_type": "markdown", + "id": "9497530b", + "metadata": { + "id": "9497530b" + }, + "source": [ + "## Discrete time RHC\n", + "\n", + "Many receding horizon control problems are solved based on a discrete-time model. We show here how to implement this for a \"double integrator\" system, which in discrete time has the form\n", + "\n", + "$$\n", + " x[k+1] = \\begin{bmatrix} 1 & 1 \\\\ 0 & 1 \\end{bmatrix} x[k] + \\begin{bmatrix} 0 \\\\ 1 \\end{bmatrix} \\text{clip}(u[k])\n", + "$$\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ae7cefa5", + "metadata": {}, + "outputs": [], + "source": [ + "#\n", + "# System definition\n", + "#\n", + "\n", + "def doubleint_update(t, x, u, params):\n", + " # Get the parameters\n", + " lb = params.get('lb', -1)\n", + " ub = params.get('ub', 1)\n", + " assert lb < ub\n", + "\n", + " # Get the sampling time\n", + " dt = params.get('dt', 1)\n", + "\n", + " # bound the input\n", + " u_clip = np.clip(u, lb, ub)\n", + "\n", + " return np.array([x[0] + dt * x[1], x[1] + dt * u_clip[0]])\n", + "\n", + "proc = ct.nlsys(\n", + " doubleint_update, None, name=\"double integrator\",\n", + " inputs = ['u'], outputs=['x[0]', 'x[1]'], states=2,\n", + " params={'dt': 1}, dt=1)\n", + "\n", + "#\n", + "# Linear quadratic regulator\n", + "#\n", + "\n", + "# Define the cost functions to use\n", + "Qx = np.diag([1, 0]) # state cost\n", + "Qu = np.diag([1]) # input cost\n", + "P1 = np.diag([0.1, 0.1]) # terminal cost\n", + "\n", + "# Get the LQR solution\n", + "K, P, E = ct.dlqr(proc.linearize(0, 0), Qx, Qu)\n", + "\n", + "# Test out the LQR controller, with no constraints\n", + "linsys = proc.linearize(0, 0)\n", + "clsys_lin = ct.ss(linsys.A - linsys.B @ K, linsys.B, linsys.C, 0, dt=proc.dt)\n", + "\n", + "X0 = np.array([2, 1]) # initial conditions\n", + "Tf = 10 # simulation time\n", + "res = ct.initial_response(clsys_lin, Tf, X0=X0)\n", + "\n", + "# Plot the results\n", + "plt.figure(1); plt.clf(); ax = plt.axes()\n", + "ax.plot(res.time, res.states[0], 'k-', label='$x_1$')\n", + "ax.plot(res.time, (-K @ res.states)[0], 'b-', label='$u$')\n", + "\n", + "# Test out the LQR controller with constraints\n", + "clsys_lqr = ct.feedback(proc, -K, 1)\n", + "tvec = np.arange(0, Tf, proc.dt)\n", + "res_lqr_const = ct.input_output_response(clsys_lqr, tvec, 0, X0)\n", + "\n", + "# Plot the results\n", + "ax.plot(res_lqr_const.time, res_lqr_const.states[0], 'k--', label='constrained')\n", + "ax.plot(res_lqr_const.time, (-K @ res_lqr_const.states)[0], 'b--')\n", + "ax.plot([0, 7], [-1, -1], 'k--', linewidth=0.75)\n", + "\n", + "# Adjust the limits for consistency\n", + "ax.set_ylim([-4, 3.5])\n", + "\n", + "# Label the results\n", + "ax.set_xlabel(\"Time $t$ [sec]\")\n", + "ax.set_ylabel(\"State $x_1$, input $u$\")\n", + "ax.legend(loc='lower right', labelspacing=0)\n", + "plt.title(\"Linearized LQR response from x0\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "13cfc5d8", + "metadata": {}, + "outputs": [], + "source": [ + "#\n", + "# Receding horizon controller\n", + "#\n", + "\n", + "# Create the constraints\n", + "traj_constraints = opt.input_range_constraint(proc, -1, 1)\n", + "term_constraints = opt.state_range_constraint(proc, [0, 0], [0, 0])\n", + "\n", + "# Define the optimal control problem we want to solve\n", + "T = 5\n", + "timepts = np.arange(0, T * proc.dt, proc.dt)\n", + "\n", + "# Set up the optimal control problems\n", + "ocp_orig = opt.OptimalControlProblem(\n", + " proc, timepts,\n", + " opt.quadratic_cost(proc, Qx, Qu),\n", + " trajectory_constraints=traj_constraints,\n", + " terminal_cost=opt.quadratic_cost(proc, P1, None),\n", + ")\n", + "\n", + "ocp_lqr = opt.OptimalControlProblem(\n", + " proc, timepts,\n", + " opt.quadratic_cost(proc, Qx, Qu),\n", + " trajectory_constraints=traj_constraints,\n", + " terminal_cost=opt.quadratic_cost(proc, P, None),\n", + ")\n", + "\n", + "ocp_low = opt.OptimalControlProblem(\n", + " proc, timepts,\n", + " opt.quadratic_cost(proc, Qx, Qu),\n", + " trajectory_constraints=traj_constraints,\n", + " terminal_cost=opt.quadratic_cost(proc, P/10, None),\n", + ")\n", + "\n", + "ocp_high = opt.OptimalControlProblem(\n", + " proc, timepts,\n", + " opt.quadratic_cost(proc, Qx, Qu),\n", + " trajectory_constraints=traj_constraints,\n", + " terminal_cost=opt.quadratic_cost(proc, P*10, None),\n", + ")\n", + "weight_list = [P1, P, P/10, P*10]\n", + "ocp_list = [ocp_orig, ocp_lqr, ocp_low, ocp_high]\n", + "\n", + "# Do a test run to figure out how long computation takes\n", + "start_time = time.process_time()\n", + "ocp_lqr.compute_trajectory(X0)\n", + "stop_time = time.process_time()\n", + "print(\"* Process time: %0.2g s\\n\" % (stop_time - start_time))\n", + "\n", + "# Create a figure to use for plotting\n", + "fig, [[ax_orig, ax_lqr], [ax_low, ax_high]] = plt.subplots(2, 2)\n", + "ax_list = [ax_orig, ax_lqr, ax_low, ax_high]\n", + "ax_name = ['orig', 'lqr', 'low', 'high']\n", + "\n", + "# Generate the individual traces for the receding horizon control\n", + "for ocp, ax, name, Pf in zip(ocp_list, ax_list, ax_name, weight_list):\n", + " x, t = X0, 0\n", + " for i in np.arange(0, Tf, proc.dt):\n", + " # Calculate the optimal trajectory\n", + " res = ocp.compute_trajectory(x, print_summary=False)\n", + " soln = ct.input_output_response(proc, res.time, res.inputs, x)\n", + "\n", + " # Plot the results for this time instant\n", + " ax.plot(res.time[:2] + t, res.inputs[0, :2], 'b-', linewidth=1)\n", + " ax.plot(res.time[:2] + t, soln.outputs[0, :2], 'k-', linewidth=1)\n", + "\n", + " # Plot the results projected forward\n", + " ax.plot(res.time[1:] + t, res.inputs[0, 1:], 'b--', linewidth=0.75)\n", + " ax.plot(res.time[1:] + t, soln.outputs[0, 1:], 'k--', linewidth=0.75)\n", + "\n", + " # Update the state to use for the next time point\n", + " x = soln.states[:, 1]\n", + " t += proc.dt\n", + "\n", + " # Adjust the limits for consistency\n", + " ax.set_ylim([-1.5, 3.5])\n", + "\n", + " # Label the results\n", + " ax.set_xlabel(\"Time $t$ [sec]\")\n", + " ax.set_ylabel(\"State $x_1$, input $u$\")\n", + " ax.set_title(f\"MPC response for {name}\")\n", + " plt.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "id": "015dc953", + "metadata": { + "id": "015dc953" + }, + "source": [ + "We can also implement a receding horizon controller for a discrete-time system using `opt.create_mpc_iosystem`. This creates a controller that accepts the current state as the input and generates the control to apply from that state." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4f8bb594", + "metadata": {}, + "outputs": [], + "source": [ + "# Construct using create_mpc_iosystem\n", + "clsys = opt.create_mpc_iosystem(\n", + " proc, timepts, opt.quadratic_cost(proc, Qx, Qu), traj_constraints,\n", + " terminal_cost=opt.quadratic_cost(proc, P1, None),\n", + ")\n", + "print(clsys)" + ] + }, + { + "cell_type": "markdown", + "id": "f1b08fb4", + "metadata": { + "id": "f1b08fb4" + }, + "source": [ + "(This function needs some work to be more user-friendly, e.g. renaming of the inputs and outputs.)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d2afd287", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/examples/cds110-L7_bode-nyquist.ipynb b/examples/cds110-L7_bode-nyquist.ipynb new file mode 100644 index 000000000..6e9f63337 --- /dev/null +++ b/examples/cds110-L7_bode-nyquist.ipynb @@ -0,0 +1,856 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "8c577d78-3e4a-4f08-93ed-5c60867b9a3b", + "metadata": { + "id": "hairy-humidity" + }, + "source": [ + "
\n", + "

CDS 110, Lecture 7

\n", + "

Frequency Domain Analysis using Bode/Nyquist plots

\n", + "

Richard M. Murray, Winter 2024

\n", + "
\n", + "\n", + "[Open in Google Colab](https://colab.research.google.com/drive/1-BIaln1nF41fGqavzliuWT74nBkAnM3x)\n", + "\n", + "The purpose of this lecture is to introduce tools that can be used for frequency domain modeling and analysis of linear systems. It illustrates the use of a variety of frequency domain analysis and plotting tools." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "invalid-carnival", + "metadata": {}, + "outputs": [], + "source": [ + "# Import standard packages needed for this exercise\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import math\n", + "try:\n", + " import control as ct\n", + " print(\"python-control\", ct.__version__)\n", + "except ImportError:\n", + " !pip install control\n", + " import control as ct\n", + "\n", + "# Use ctrlplot defaults for matplotlib\n", + "plt.rcParams.update(ct.rcParams)" + ] + }, + { + "cell_type": "markdown", + "id": "P7t3Nm4Tre2Z", + "metadata": { + "id": "P7t3Nm4Tre2Z" + }, + "source": [ + "## Stable system: servomechanism\n", + "\n", + "We start with a simple example a stable system for which we wish to design a simple controller and analyze its performance, demonstrating along the way the basic frequency domain analysis functions in the Python control toolbox (python-control).\n", + "\n", + "Consider a simple mechanism for positioning a mechanical arm whose equations of motion are given by\n", + "\n", + "$$\n", + "J \\ddot \\theta = -b \\dot\\theta - k r\\sin\\theta + \\tau_\\text{m},\n", + "$$\n", + "\n", + "which can be written in state space form as\n", + "\n", + "$$\n", + "\\frac{d}{dt} \\begin{bmatrix} \\theta \\\\ \\theta \\end{bmatrix} =\n", + " \\begin{bmatrix} \\dot\\theta \\\\ -k r \\sin\\theta / J - b\\dot\\theta / J \\end{bmatrix}\n", + " + \\begin{bmatrix} 0 \\\\ 1/J \\end{bmatrix} \\tau_\\text{m}.\n", + "$$\n", + "\n", + "The system consists of a spring loaded arm that is driven by a motor, as shown below.\n", + "\n", + "
\"servomech-diagram\"
\n", + "\n", + "The motor applies a torque that twists the arm against a linear spring and moves the end of the arm across a rotating platter. The input to the system is the motor torque $\\tau_\\text{m}$. The force exerted by the spring is a nonlinear function of the head position due to the way it is attached.\n", + "\n", + "The system parameters are given by\n", + "\n", + "$$\n", + "k = 1,\\quad J = 100,\\quad b = 10,\n", + "\\quad r = 1,\\quad l = 2,\\quad \\epsilon = 0.01,\n", + "$$\n", + "\n", + "and we assume that time is measured in msec and distance in cm. (The constants here are made up and don't necessarily reflect a real disk drive, though the units and time constants are motivated by computer disk drives.)" + ] + }, + { + "cell_type": "markdown", + "id": "3e476db9", + "metadata": { + "id": "3e476db9" + }, + "source": [ + "The system dynamics can be modeled in python-control using a `NonlinearIOSystem` object, which we create with the `nlsys` function:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "27bb3c38", + "metadata": {}, + "outputs": [], + "source": [ + "# Parameter values\n", + "servomech_params = {\n", + " 'J': 100, # Moment of inertia of the motor\n", + " 'b': 10, # Angular damping of the arm\n", + " 'k': 1, # Spring constant\n", + " 'r': 1, # Location of spring contact on arm\n", + " 'l': 2, # Distance to the read head\n", + " 'eps': 0.01, # Magnitude of velocity-dependent perturbation\n", + "}\n", + "\n", + "# State derivative\n", + "def servomech_update(t, x, u, params):\n", + " # Extract the configuration and velocity variables from the state vector\n", + " theta = x[0] # Angular position of the disk drive arm\n", + " thetadot = x[1] # Angular velocity of the disk drive arm\n", + " tau = u[0] # Torque applied at the base of the arm\n", + "\n", + " # Get the parameter values\n", + " J, b, k, r = map(params.get, ['J', 'b', 'k', 'r'])\n", + "\n", + " # Compute the angular acceleration\n", + " dthetadot = 1/J * (\n", + " -b * thetadot - k * r * np.sin(theta) + tau)\n", + "\n", + " # Return the state update law\n", + " return np.array([thetadot, dthetadot])\n", + "\n", + "# System output (end of arm)\n", + "def servomech_output(t, x, u, params):\n", + " l = params['l']\n", + " return np.array([l * x[0]])\n", + "\n", + "# System dynamics\n", + "servomech = ct.nlsys(\n", + " servomech_update, servomech_output, name='servomech',\n", + " params=servomech_params,\n", + " states=['theta_', 'thdot_'],\n", + " outputs=['y'], inputs=['tau'])\n", + "\n", + "print(servomech)\n", + "print(\"\\nParams:\", servomech.params)" + ] + }, + { + "cell_type": "markdown", + "id": "competitive-terrain", + "metadata": { + "id": "competitive-terrain" + }, + "source": [ + "### Linearization\n", + "\n", + "To study the open loop dynamics of the system, we compute the linearization of the dynamics about the equilibrium point corresponding to $\\theta_\\text{e} = 15^\\circ$." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "senior-carpet", + "metadata": {}, + "outputs": [], + "source": [ + "# Convert the equilibrium angle to radians\n", + "theta_e = (15 / 180) * np.pi\n", + "\n", + "# Compute the input required to hold this position\n", + "u_e = servomech.params['k'] * servomech.params['r'] * np.sin(theta_e)\n", + "print(\"Equilibrium torque = %g\" % u_e)\n", + "\n", + "# Linearize the system about the equilibrium point\n", + "P = servomech.linearize([theta_e, 0], u_e, name='P_ss')\n", + "P.name = 'P_ss' # TODO: fix in nlsys_improvements\n", + "print(\"Linearized dynamics:\", P)\n", + "print(\"Zeros: \", P.zeros())\n", + "print(\"Poles: \", P.poles())\n", + "print(\"\")\n", + "\n", + "# Transfer function representation\n", + "P_tf = ct.tf(P, name='P_tf')\n", + "print(P_tf)" + ] + }, + { + "cell_type": "markdown", + "id": "instant-lancaster", + "metadata": { + "id": "instant-lancaster" + }, + "source": [ + "### Open loop frequency response\n", + "\n", + "A standard method for understanding the dynamics is to plot the output of the system in response to sinusoids with unit magnitude at different frequencies.\n", + "\n", + "We use the `frequency_response` function to plot the step response of the linearized, open-loop system." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "RxXFTpwO5bGI", + "metadata": {}, + "outputs": [], + "source": [ + "# Reset the frequency response label to correspond to a time unit of ms\n", + "ct.set_defaults('freqplot', freq_label=\"Frequency [rad/ms]\")\n", + "\n", + "# Frequency response\n", + "freqresp = ct.frequency_response(P, np.logspace(-2, 0))\n", + "freqresp.plot()\n", + "\n", + "# Equivalent command\n", + "ct.bode_plot(P_tf, np.logspace(-2, 0), '--')" + ] + }, + { + "cell_type": "markdown", + "id": "stuffed-premiere", + "metadata": { + "id": "stuffed-premiere" + }, + "source": [ + "### Feedback control design\n", + "\n", + "We next design a feedback controller for the system using a proportional integral controller, which has transfer function\n", + "\n", + "$$\n", + "C(s) = \\frac{k_\\text{p} s + k_\\text{i}}{s}\n", + "$$\n", + "\n", + "We will learn how to choose $k_\\text{p}$ and $k_\\text{i}$ more formally in W9. For now we just pick different values to see how the dynamics are impacted." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8NK8O6XT7B_a", + "metadata": {}, + "outputs": [], + "source": [ + "kp = 1\n", + "ki = 1\n", + "\n", + "# Create tf from numerator/denominator coefficients\n", + "C = ct.tf([kp, ki], [1, 0], name='C')\n", + "print(C)\n", + "\n", + "# Alternative method: define \"s\" and use algebra\n", + "s = ct.tf('s')\n", + "C = ct.tf(kp + ki/s, name='C')\n", + "print(C)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "074427a3", + "metadata": {}, + "outputs": [], + "source": [ + "# Loop transfer function\n", + "L = P * C\n", + "cplt = ct.bode_plot([P, C, L], label=['P', 'C', 'L'])\n", + "cplt.set_plot_title(\"PI controller for servomechanism\")" + ] + }, + { + "cell_type": "markdown", + "id": "Bg5ga11VuRtI", + "metadata": { + "id": "Bg5ga11VuRtI" + }, + "source": [ + "Note that L = P * C corresponds to addition in both the magnitude and the phase." + ] + }, + { + "cell_type": "markdown", + "id": "UmYmSzx2rTfg", + "metadata": { + "id": "UmYmSzx2rTfg" + }, + "source": [ + "### Nyquist analysis\n", + "\n", + "To check stability (and eventually robustness), we use the Nyquist criterion." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "Qmp59pmS9GLj", + "metadata": {}, + "outputs": [], + "source": [ + "fig = plt.figure(figsize=[7, 4])\n", + "ax1 = plt.subplot(2, 2, 1)\n", + "ax2 = plt.subplot(2, 2, 3)\n", + "ct.bode_plot(L, ax=[ax1, ax2])\n", + "\n", + "# Tidy up the figure a bit\n", + "fig.align_labels()\n", + "ax1.set_title(\"Bode plot for L\")\n", + "\n", + "ax2 = plt.subplot(1, 2, 2)\n", + "ct.nyquist_plot(L, ax=ax2, title=\"\")\n", + "plt.title(\"Nyquist plot for L\")\n", + "\n", + "plt.suptitle(\"Loop analysis for (unstable) servomechanism\")\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "id": "s4dDf4PrZqU3", + "metadata": { + "id": "s4dDf4PrZqU3" + }, + "source": [ + "We see from this plot that the loop transfer function encircles the -1 point => closed loop system should be unstable. We can check this by making use of additional features of Nyquist analysis." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "K7ifUBL0Z3xN", + "metadata": {}, + "outputs": [], + "source": [ + "# Get the Nyquist *response*, so that we can get back encirclements\n", + "nyqresp = ct.nyquist_response(L)\n", + "print(\"N = encirclements: \", nyqresp.count)\n", + "print(\"P = RHP poles of L: \", np.sum(np.real(L.poles()) > 0))\n", + "print(\"Z = N + P = RHP zeros of 1 + L:\", np.sum(np.real((1 + L).zeros()) > 0))\n", + "print(\"Zeros of (1 + L) = \", (1 + L).zeros())\n", + "print(\"\")\n", + "\n", + "T = ct.feedback(L)\n", + "ct.step_response(T).plot(\n", + " title=\"Step response for (unstable) servomechanism\",\n", + " time_label=\"Time [ms]\");" + ] + }, + { + "cell_type": "markdown", + "id": "p3JxLilMxdOE", + "metadata": { + "id": "p3JxLilMxdOE" + }, + "source": [ + "### Poles on the $j\\omega$ axis\n", + "\n", + "Note that we have a pole at 0 (due to the integrator in the controller). How is this handled?\n", + "\n", + "A: use a small loop to the right around poles on the $j\\omega$ axis => not inside the contour.\n", + "\n", + "To see this, we use the `nyquist_response` function, which returns the contour used to compute the Nyquist curve. If we zoom in on the contour near the origin, we see how the outer edge of the Nyquist curve is computed." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "R5IBk3Ai9Slk", + "metadata": {}, + "outputs": [], + "source": [ + "fig = plt.figure(figsize=[7, 5.8])\n", + "\n", + "# Plot the D contour\n", + "ax1 = plt.subplot(2, 2, 1)\n", + "plt.plot(np.real(nyqresp.contour), np.imag(nyqresp.contour))\n", + "plt.axis([-1e-4, 4e-4, 0, 4e-4])\n", + "plt.xlabel('Real axis')\n", + "plt.ylabel('Imaginary axis')\n", + "plt.title(\"Zoom on D-contour\")\n", + "\n", + "# Clean up the display of the units\n", + "from matplotlib import ticker\n", + "ax1.xaxis.set_major_formatter(ticker.StrMethodFormatter(\"{x:.0e}\"))\n", + "ax1.yaxis.set_major_formatter(ticker.StrMethodFormatter(\"{x:.0e}\"))\n", + "\n", + "ax2 = plt.subplot(2, 2, 2)\n", + "ct.nyquist_plot(L, ax=ax2)\n", + "plt.title(\"Nyquist curve\")\n", + "\n", + "plt.suptitle(\"Nyquist contour for pole at the origin\")\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "id": "h20JRZ_r4fGy", + "metadata": { + "id": "h20JRZ_r4fGy" + }, + "source": [ + "### Second iteration feedback control design\n", + "\n", + "We now redesign the control system to give something that is stable. We can do this by moving the zero for the controller to a lower frequency, so that the phase lag from the integrator does not overlap with the phase lag from the system dynamics." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "YsM8SnXz_Kaj", + "metadata": {}, + "outputs": [], + "source": [ + "# Change the frequency response to avoid crossing over -180 with large gain\n", + "Cnew = ct.tf(kp + (ki/200)/s, name='C_new')\n", + "Lnew = ct.tf(P * Cnew, name='L_new')\n", + "\n", + "plt.figure(figsize=[7, 4])\n", + "ax1 = plt.subplot(2, 2, 1)\n", + "ax2 = plt.subplot(2, 2, 3)\n", + "ct.bode_plot([Lnew, L], ax=[ax1, ax2], label=['L_new', 'L_old'])\n", + "\n", + "# Clean up the figure a bit\n", + "ax1.loglog([1e-3, 1e1], [1, 1], 'k', linewidth=0.5)\n", + "ax1.set_title(\"Bode plot for L_new, L_old\", size='medium')\n", + "\n", + "ax3=plt.subplot(1, 2, 2)\n", + "ct.nyquist_plot(Lnew, max_curve_magnitude=5, ax=ax3)\n", + "ax3.set_title(\"Nyquist plot for Lnew\", size='medium')\n", + "\n", + "plt.suptitle(\"Loop analysis for (stable) servomechanism\")\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "id": "kFjeGXzDvucx", + "metadata": { + "id": "kFjeGXzDvucx" + }, + "source": [ + "We see now that we have no encirclements, and so the system should be stable.\n", + "\n", + "Note however that the Nyquist curve is close to the -1 point => not *that* stable." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "GGfJwG716jU2", + "metadata": {}, + "outputs": [], + "source": [ + "# Compute the transfer function from r to y\n", + "Tnew = ct.feedback(Lnew)\n", + "cplt = ct.step_response(Tnew).plot(time_label=\"Time [ms]\")\n", + "cplt.set_plot_title(\"Step response for (stable) spring-mass system\")" + ] + }, + { + "cell_type": "markdown", + "id": "b5114fa7-6924-47d7-8dd2-f12060152edd", + "metadata": {}, + "source": [ + "### Third iteration feedback control design (via loop shaping)\n", + "\n", + "To get a better design, we use a PID controller to shape the frequency response so that we get high gain at low frequency and low phase at crossover." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e6da93a4-5202-45d7-9e5a-697848f4ba71", + "metadata": {}, + "outputs": [], + "source": [ + "# Design parameters\n", + "Td = 1 # Set to gain crossover frequency\n", + "Ti = Td * 10 # Set to low frequency region\n", + "kp = 500 # Tune to get desired bandwith\n", + "\n", + "# Updated gains\n", + "kp = 150\n", + "Ti = Td * 5; kp = 150\n", + "\n", + "# Compute controller parmeters\n", + "ki = kp/Ti\n", + "kd = kp * Td\n", + "\n", + "# Controller transfer function\n", + "ctrl_shape = kp + ki / s + kd * s\n", + "\n", + "# Frequency response (open loop) - use this to help tune your design\n", + "ltf_shape = ct.tf(P_tf * ctrl_shape, name='L_shape')\n", + "\n", + "cplt = ct.frequency_response([P, ctrl_shape]).plot(label=['P', 'C_shape'])\n", + "cplt = ct.frequency_response(ltf_shape).plot(margins=True)\n", + "\n", + "cplt.set_plot_title(\"Loop shaping design for servomechanism controller\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d731f372-4992-464c-9ca5-49cc1d554799", + "metadata": {}, + "outputs": [], + "source": [ + "# Compute the transfer function from r to y\n", + "T_shape = ct.feedback(ltf_shape)\n", + "cplt = ct.step_response(T_shape).plot(\n", + " time_label=\"Time [ms]\",\n", + " title = \"Step response for servomechanism with PID controller\")" + ] + }, + { + "cell_type": "markdown", + "id": "JL99vo4trep5", + "metadata": { + "id": "JL99vo4trep5" + }, + "source": [ + "### Closed loop frequency response\n", + "\n", + "We can also look at the closed loop frequency response to understand how different inputs affect different outputs. The `gangof4` function computes the standard transfer functions:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ceqcg3oM619g", + "metadata": {}, + "outputs": [], + "source": [ + "cplt = ct.gangof4(P_tf, ctrl_shape)" + ] + }, + { + "cell_type": "markdown", + "id": "gel18-iqwYYs", + "metadata": { + "id": "gel18-iqwYYs" + }, + "source": [ + "### Stability margins\n", + "\n", + "Another standard set of analysis tools is to identify the gain, phase, and stability margins for the system:\n", + "\n", + "* **Gain margin:** the maximimum amount of additional gain that we can put into the loop and still maintain stability.\n", + "* **Phase margin:** the maximum amount of additional phase (lag) that we can put into the loop and still maintain stability.\n", + "* **Stability margin:** the maximum amount of combined gain and phase at the critical frequency that can be put into the loop and still maintain stability.\n", + "\n", + "The first two of the items can be computed either by looking at the frequency response or by using the `margin` command.\n", + "\n", + "The stabilty margin is the minimum distance between -1 and $L(jw)$, which is just the minimum value of $|1 - L(j\\omega)|$.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "m-8ItbHwxLrv", + "metadata": {}, + "outputs": [], + "source": [ + "plt.figure(figsize=[7, 4])\n", + "\n", + "# Gain and phase margin on Bode plot\n", + "ax1 = plt.subplot(2, 2, 1)\n", + "plt.title(\"Bode plot for Lnew, with margins\")\n", + "ax2 = plt.subplot(2, 2, 3)\n", + "ct.bode_plot(Lnew, ax=[ax1, ax2], margins=True)\n", + "\n", + "# Compute gain and phase margin\n", + "gm, pm, wpc, wgc = ct.margin(Lnew)\n", + "print(f\"Gm = {gm:2.2g} (at {wpc:.2g} rad/ms)\")\n", + "print(f\"Pm = {pm:3.2g} deg (at {wgc:.2g} rad/ms)\")\n", + "\n", + "# Compute the stability margin\n", + "resp = ct.frequency_response(1 + Lnew)\n", + "sm = np.min(resp.magnitude)\n", + "wsm = resp.omega[np.argmin(resp.magnitude)]\n", + "print(f\"Sm = {sm:2.2g} (at {wsm:.2g} rad/ms)\")\n", + "\n", + "# Plot the Nyquist curve\n", + "ax3 = plt.subplot(1, 2, 2)\n", + "ct.nyquist_plot(Lnew, ax=ax3)\n", + "plt.title(\"Nyquist plot for Lnew [zoomed]\")\n", + "plt.axis([-2, 3, -2.6, 2.6])\n", + "\n", + "#\n", + "# Annotate it to see the margins\n", + "#\n", + "\n", + "# Gain margin (special case here, since infinite)\n", + "Lgm = 0\n", + "plt.plot([-1, Lgm], [0, 0], 'k-', linewidth=0.5)\n", + "plt.text(-0.9, 0.1, \"1/gm\")\n", + "\n", + "# Phase margin\n", + "theta = np.linspace(0, 2 * math.pi)\n", + "plt.plot(np.cos(theta), np.sin(theta), 'k--', linewidth=0.5)\n", + "plt.text(-1.3, -0.8, \"pm\")\n", + "\n", + "# Stability margin\n", + "Lsm = Lnew(wsm * 1j)\n", + "plt.plot([-1, Lsm.real], [0, Lsm.imag], 'k-', linewidth=0.5)\n", + "plt.text(-0.4, -0.5, \"sm\")\n", + "\n", + "plt.suptitle(\"\")\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "id": "WsOzQST9rFC-", + "metadata": { + "id": "WsOzQST9rFC-" + }, + "source": [ + "## Unstable system: inverted pendulum\n", + "\n", + "When we have a system that is open loop unstable, the Nyquist curve will need to have encirclements to be stable. In this case, the interpretation of the various characteristics can be more complicated.\n", + "\n", + "To explore this, we consider a simple model for an inverted pendulum, which has (normalized) dynamics:\n", + "\n", + "$$\n", + "\\dot x = \\begin{bmatrix} 0 & 1 & \\\\ -1 & 0.1 \\end{bmatrix} x + \\begin{bmatrix} 0 \\\\ 1 \\end{bmatrix} u, \\qquad\n", + "y = \\begin{bmatrix} 1 & 0 \\end{bmatrix} x\n", + "$$\n", + "\n", + "Transfer function for the system can be shown to be\n", + "\n", + "$$\n", + "P(s) = \\frac{1}{s^2 + 0.1 s - 1}.\n", + "$$\n", + "\n", + "This system is unstable, with poles $\\sim\\pm 1$." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ZbPzrlPIrHnp", + "metadata": {}, + "outputs": [], + "source": [ + "P = ct.tf([1], [1, 0.1, -1])\n", + "P.poles()" + ] + }, + { + "cell_type": "markdown", + "id": "W-sBWxKi6SPx", + "metadata": { + "id": "W-sBWxKi6SPx" + }, + "source": [ + "### PD controller\n", + "\n", + "We construct a proportional-derivative (PD) controller for the system,\n", + "\n", + "$$\n", + "u = k_\\text{p} e + k_\\text{d} \\dot{e}\n", + "$$\n", + "\n", + "which is roughly the equivalent of using state feedback (since the system states are $\\theta$ and $\\dot\\theta$)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "hjQS_dED7yJE", + "metadata": {}, + "outputs": [], + "source": [ + "# Transfer function for a PD controller\n", + "kp = 10\n", + "kd = 2\n", + "C = ct.tf([kd, kp], [1])\n", + "\n", + "# Loop transfer function\n", + "L = P * C\n", + "L.name = 'L'\n", + "print(L)\n", + "print(\"Zeros: \", L.zeros())\n", + "print(\"Poles: \", L.poles())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "YI_KJo0E9pFd", + "metadata": {}, + "outputs": [], + "source": [ + "# Bode and Nyquist plots\n", + "plt.figure(figsize=[7, 4])\n", + "ax1 = plt.subplot(2, 2, 1)\n", + "plt.title(\"Bode plot for L\", size='medium')\n", + "ax2 = plt.subplot(2, 2, 3)\n", + "ct.bode_plot(L, ax=[ax1, ax2])\n", + "\n", + "ax3 = plt.subplot(1, 2, 2)\n", + "ct.nyquist_plot(L, ax=ax3)\n", + "plt.title(\"Nyquist plot for L\", size='medium')\n", + "\n", + "plt.suptitle(\"Loop analysis for inverted pendulum\")\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8dH03kv9-Da8", + "metadata": {}, + "outputs": [], + "source": [ + "# Check the Nyquist criterion\n", + "nyqresp = ct.nyquist_response(L)\n", + "print(\"N = encirclements: \", nyqresp.count)\n", + "print(\"P = RHP poles of L: \", np.sum(np.real(L.poles()) > 0))\n", + "print(\"Z = N + P = RHP zeros of 1 + L:\", np.sum(np.real((1 + L).zeros()) >= 0))\n", + "print(\"Poles of L = \", L.poles())\n", + "print(\"Zeros of 1 + L = \", (1 + L).zeros())\n", + "print(\"\")\n", + "\n", + "T = ct.feedback(L)\n", + "ct.initial_response(T, X0=[0.1, 0]).plot();" + ] + }, + { + "cell_type": "markdown", + "id": "7bb03f68-0c99-40e9-86cd-a9f2816b4096", + "metadata": {}, + "source": [ + "Note that we get a warning when we set the initial condition. This is because `T` is a transfer function and so it doesn't have a unique state space realization. If the initial state is zero this doesn't matter, but if the initial state is nonzero then the assignment of states is not well defined." + ] + }, + { + "cell_type": "markdown", + "id": "VXlYhs8X7DuN", + "metadata": { + "id": "VXlYhs8X7DuN" + }, + "source": [ + "### Gang of 4\n", + "\n", + "Another useful thing to look at is the transfer functions from noise and disturbances to the system outputs and inputs:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "oTmOun41_opt", + "metadata": {}, + "outputs": [], + "source": [ + "ct.gangof4(P, C);" + ] + }, + { + "cell_type": "markdown", + "id": "U41ve1zh7XPh", + "metadata": { + "id": "U41ve1zh7XPh" + }, + "source": [ + "We see that the response from the input $r$ (or equivalently noise $n$) to the process input is very large for large frequencies. This means that we are amplifying high frequency noise (and comes from the fact that we used derivative feedback)." + ] + }, + { + "cell_type": "markdown", + "id": "YROqmZTd8WYs", + "metadata": { + "id": "YROqmZTd8WYs" + }, + "source": [ + "### High frequency rolloff\n", + "\n", + "We can attempt to resolve this by \"rolling off\" the derivative action at high frequencies:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "vhKi_L-F_6Ws", + "metadata": {}, + "outputs": [], + "source": [ + "Cnew = (kp + kd * s) / (s/20 + 1)**2\n", + "Cnew.name = 'Cnew'\n", + "print(Cnew)\n", + "\n", + "Lnew = P * Cnew\n", + "Lnew.name = 'Lnew'\n", + "\n", + "plt.figure(figsize=[7, 4])\n", + "ax1 = plt.subplot(2, 2, 1)\n", + "ax2 = plt.subplot(2, 2, 3)\n", + "ct.bode_plot([Lnew, L], ax=[ax1, ax2])\n", + "ax1.loglog([1e-1, 1e2], [1, 1], 'k', linewidth=0.5)\n", + "ax1.set_title(\"Bode plot for L, Lnew\", size='medium')\n", + "\n", + "ax3 = plt.subplot(1, 2, 2)\n", + "ct.nyquist_plot(Lnew, ax=ax3)\n", + "ax3.set_title(\"Nyquist plot for Lnew\", size='medium')\n", + "\n", + "plt.suptitle(\"Stability analysis for inverted pendulum\")\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "id": "WgrAE9XE7_nJ", + "metadata": { + "id": "WgrAE9XE7_nJ" + }, + "source": [ + "While not (yet) a very high performing controller, this change does get rid of the issues with the high frequency noise:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "FknwW6GkBLLU", + "metadata": {}, + "outputs": [], + "source": [ + "# Check the gang of 4\n", + "ct.gangof4(P, Cnew);" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "wJHJLjXwCNz-", + "metadata": {}, + "outputs": [], + "source": [ + "# See what the step response looks like\n", + "Tnew = ct.feedback(Lnew)\n", + "ct.step_response(Tnew, 10).plot()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "WUhz529a-w3q", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/examples/cds110-L8a_maglev-limits.ipynb b/examples/cds110-L8a_maglev-limits.ipynb new file mode 100644 index 000000000..5a7473ade --- /dev/null +++ b/examples/cds110-L8a_maglev-limits.ipynb @@ -0,0 +1,278 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "gToHma1nvZxz", + "metadata": { + "id": "gToHma1nvZxz" + }, + "source": [ + "
\n", + "

CDS 110, Lecture 8a

\n", + "

Fundamental Limits for Control of a Magnetic Levitation System

\n", + "

Richard M. Murray, Winter 2024

\n", + "
\n", + "\n", + "[Open in Google Colab](https://colab.research.google.com/drive/1MuDZfw72UkI4_Ji_AsEDTPi7IaSURsYP)\n", + "\n", + "This notebook contains the code used to create the magnetic levitation example in Lecture 8-1 of CDS 110, Winter 2024." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "dc288b3e-60cc-4a75-8af5-81f9d1eede41", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import scipy as sp\n", + "import matplotlib.pyplot as plt\n", + "from math import pi\n", + "try:\n", + " import control as ct\n", + " print(\"python-control\", ct.__version__)\n", + "except ImportError:\n", + " !pip install control\n", + " import control as ct\n", + "import control.optimal as opt\n", + "import control.flatsys as fs" + ] + }, + { + "cell_type": "markdown", + "id": "RFi9litmZKT2", + "metadata": { + "id": "RFi9litmZKT2" + }, + "source": [ + "The magnetic leviation system consists of a metal ball, an electromagnet, and an IR sensor:\n", + "\n", + "
\"maglev-diagram\"
\n", + "\n", + "It is governed by following equation:\n", + "\n", + "$$ \\ddot{z} = g - \\frac{k_mk_A^2}{m}\\frac{u^2}{z^2} - \\frac{c}{m}\\dot{z},$$\n", + "\n", + "where $z$ is the vertical height of the ball and $u$ is the input current applied to the electromagnet. The output is given by $v_{ir}$, which is the voltage measured at the IR sensor:\n", + "\n", + "$$v_{ir} = k_T z + v_0 $$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "80da9750-1a34-4a54-ab3a-ff37ea7be0f6", + "metadata": {}, + "outputs": [], + "source": [ + "# System dynamics\n", + "maglev_params = {\n", + " 'kT': 613.65, # gain between position and voltage\n", + " 'v0': -16.18,\t # voltage offset at zero position\n", + " 'm': 0.2,\t # mass of ball, kg\n", + " 'g': 9.81, # gravitational constant\n", + " 'kA': 1,\t # electromagnet conductance\n", + " 'c': 1 # damping (added to improve visualization)\n", + "}\n", + "# gain on magnetic attractive force\n", + "maglev_params['km'] = 3.13e-3 * (maglev_params['m']/2) / maglev_params['kA']**2\n", + "\n", + "def maglev_update(t, x, u, params):\n", + " m, g, kA, km, c = map(params.get, ['m', 'g', 'kA', 'km', 'c'])\n", + " return np.array([\n", + " x[1],\n", + " g - km/m * (kA * u[0])**2 / x[0]**2 - c * x[1]\n", + " ])\n", + "\n", + "def maglev_output(t, x, u, params):\n", + " kT, v0 = map(params.get, ['kT', 'v0'])\n", + " return np.array([kT * x[0] + v0])\n", + "\n", + "maglev = ct.nlsys(\n", + " maglev_update, maglev_output, params=maglev_params, name='maglev',\n", + " inputs='Vu', outputs='Vy', states=['pos', 'vel']\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b5c56e04-03b7-4c18-be3c-3f4308aedb98", + "metadata": {}, + "outputs": [], + "source": [ + "# Compute the equilibrium point that holds the ball at the origin\n", + "xeq, ueq = ct.find_eqpt(maglev, [0.02, 0], 0.2, y0=0)\n", + "print(f\"{xeq=}, {ueq=}\", end='\\n----\\n')\n", + "\n", + "# Compute the linearization at that point\n", + "magP = ct.linearize(maglev, xeq, ueq, name='sys')\n", + "print(magP, end='\\n----\\n')\n", + "\n", + "print(\"Poles:\", magP.poles())\n", + "print(\"Zeros:\", magP.zeros())" + ] + }, + { + "cell_type": "markdown", + "id": "22a2766f-217a-4213-ba19-c11485cc42cc", + "metadata": {}, + "source": [ + "The controller for this system is implemented via an electrical circuit consisting of resistors and capacitors. We don't show the circuit here, but just write down the model for the transfer function:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b4741e88-bedd-4ef0-b8b9-9deb5fa93d5d", + "metadata": {}, + "outputs": [], + "source": [ + "# Controller (analog circuit)\n", + "k1 = 0.5\t\t\t\t# gain set by gain pot\n", + "R1 = 22000\t\t\t\t# Internal resistor\n", + "R2 = 22000\t\t\t\t# Resistor plug-in\n", + "R = 2000; C = 1e-6\t\t# RC plug-in\n", + "\n", + "# Controller based on analog circuit\n", + "magC1 = -ct.tf([(R1 + R) * C, 1], [R * C, 1]) * k1 * R2/R1\n", + "magL1 = magP * magC1" + ] + }, + { + "cell_type": "markdown", + "id": "641c0df2-90f6-4573-af7f-41a305337e77", + "metadata": {}, + "source": [ + "We can now use a Nyquist plot to see if the controller is stabilizing:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "378b14b8-f8e4-4ed6-b09d-cdf577ea47d1", + "metadata": {}, + "outputs": [], + "source": [ + "# Nyquist plot\n", + "cplt = ct.nyquist_plot([magP, magL1], label=[\"sys\", \"sys * ctrl\"])" + ] + }, + { + "cell_type": "markdown", + "id": "HKGSdW5f91mZ", + "metadata": { + "id": "HKGSdW5f91mZ" + }, + "source": [ + "We see that the controller causes the system to have clockwise net encircelement of the origin. Since the open loop system has one unstable pole, this gives $Z = N + P = 0$ and so the closed loop system is stable." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7850f14d-79ab-4250-a0c7-8ddc10ebb977", + "metadata": {}, + "outputs": [], + "source": [ + "# Bode plots\n", + "magC1.name = \"ctrl\"\n", + "cplt = ct.bode_plot(\n", + " [magP, magC1, magL1], np.logspace(0, 4), initial_phase=0,\n", + " label=['P', 'C', 'L'])\n", + "cplt.axes[0, 0].set_ylim(0.06, 1.5e1)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d83c5d5c-238a-45a1-9a81-a3779e7f7bc3", + "metadata": {}, + "outputs": [], + "source": [ + "# Sensitivity function for closed loop system/.\n", + "magS1 = ct.feedback(1, magL1, name=\"S1\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3bdcb116-02fd-46d9-ab4d-5b25511d0b21", + "metadata": {}, + "outputs": [], + "source": [ + "# Step response\n", + "magT1 = ct.feedback(magL1, name=\"T1\")\n", + "ct.step_response(magT1).plot(title=\"Step response for closed loop system\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e2ddb53c-023b-466b-ac15-221c22befd6d", + "metadata": {}, + "outputs": [], + "source": [ + "# Try to improve performance by increasing DC gain\n", + "# System with gain increased\n", + "magC2 = magC1*5 \t\t\t # increased gain\n", + "magL2 = magP * magC2 \t\t\t # loop transfer function\n", + "magS2 = ct.feedback(1, magP * magC2, name=\"S2\") \t# sensitivity function\n", + "magT2 = ct.feedback(magP * magC2, 1, name=\"T2\") \t# closed loop response\n", + "\n", + "# System with gain increased even more\n", + "magC3 = magC1*20\t\t\t # increased gain\n", + "magL3 = magP*magC3\t\t\t # loop transfer function\n", + "magS3 = ct.feedback(1, magP * magC3, name=\"S3\")\t # sensitivity function\n", + "magT3 = ct.feedback(magP * magC3, 1, name=\"T3\")\t # closed loop response\n", + "\n", + "# Plot step responses for different systems\n", + "colors = ['b', 'g', '#FF7F50']\n", + "for sys in [magT1, magT2, magT3]:\n", + " ct.step_response(sys).plot(color=colors.pop())\n", + "\n", + "# Bode plot for sensitivity function\n", + "plt.figure()\n", + "cplt = ct.bode_plot([magS1, magS2, magS3], plot_phase=False)\n", + "\n", + "# Add magnitude of 1\n", + "xdata = cplt.lines[0][0][0].get_xdata()\n", + "ydata = np.ones_like(xdata)\n", + "plt.plot(xdata, ydata, color='k', linestyle='--');" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4df561a2-16aa-41b0-9971-f8c151467730", + "metadata": {}, + "outputs": [], + "source": [ + "# Bode integral calculation\n", + "omega = np.linspace(0, 1e6, 100000)\n", + "for name, sys in zip(['C1', 'C2', 'C3'], [magS1, magS2, magS3]):\n", + " freqresp = ct.frequency_response(sys, omega)\n", + " bodeint = np.trapz(np.log(freqresp.magnitude), omega)\n", + " print(\"Bode integral for\", name, \"=\", bodeint)\n", + "\n", + "print(\"pi * sum[ Re(pk) ]\", pi * np.sum(magP.poles()[magP.poles().real > 0]))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "M2EvTYHq8yRb", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/examples/cds110-L8b_pvtol-complete-limits.ipynb b/examples/cds110-L8b_pvtol-complete-limits.ipynb new file mode 100644 index 000000000..0b482c865 --- /dev/null +++ b/examples/cds110-L8b_pvtol-complete-limits.ipynb @@ -0,0 +1,1032 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "659a189e-33c9-426f-b318-7cb2f433ae4a", + "metadata": { + "id": "659a189e-33c9-426f-b318-7cb2f433ae4a" + }, + "source": [ + "
\n", + "

CDS 110, Lecture 8b

\n", + "

Full Controller Stack for a Planar Vertical Take-Off and Landing (PVTOL) System

\n", + "

Richard M. Murray, Winter 2024

\n", + "
\n", + "\n", + "[Open in Google Colab](https://colab.research.google.com/drive/1XulsQqbthMkr3g58OTctIYKYpqirOgns)\n", + "\n", + "The purpose of this lecture is to introduce tools that can be used for frequency domain modeling and analysis of linear systems." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1be7545a", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import scipy as sp\n", + "import matplotlib.pyplot as plt\n", + "from math import sin, cos, pi\n", + "from scipy.optimize import NonlinearConstraint\n", + "import time\n", + "try:\n", + " import control as ct\n", + " print(\"python-control\", ct.__version__)\n", + "except ImportError:\n", + " !pip install control\n", + " import control as ct\n", + "import control.optimal as opt\n", + "import control.flatsys as fs\n", + "\n", + "# Use control parameters for plotting\n", + "plt.rcParams.update(ct.rcParams)" + ] + }, + { + "cell_type": "markdown", + "id": "c5a1858a", + "metadata": { + "id": "c5a1858a" + }, + "source": [ + "## System definition\n", + "\n", + "Consider the PVTOL system `pvtol_noisy`, defined in `pvtol.py`:\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} \\qquad\n", + " \\vec Y =\n", + " \\begin{bmatrix} x \\\\ y \\\\ \\theta \\end{bmatrix} +\n", + " \\begin{bmatrix} N_x \\\\ N_y \\\\ N_z \\end{bmatrix}.\n", + "$$\n", + "\n", + "Assume that the input disturbances are modeled by independent, first\n", + "order Markov (Ornstein-Uhlenbeck) processes with\n", + "$Q_D = \\text{diag}(0.01, 0.01)$ and $\\omega_0 = 1$ and that the noise\n", + "is modeled as white noise with covariance matrix\n", + "\n", + "$$\n", + " Q_N = \\begin{bmatrix}\n", + " 2 \\times 10^{-4} & 0 & 1 \\times 10^{-5} \\\\\n", + " 0 & 2 \\times 10^{-4} & 1 \\times 10^{-5} \\\\\n", + " 1 \\times 10^{-5} & 1 \\times 10^{-5} & 1 \\times 10^{-4}\n", + " \\end{bmatrix}.\n", + "$$\n", + "\n", + "We will design a controller consisting of a trajectory generation module, a\n", + "gain-scheduled, trajectory tracking module, and a state estimation\n", + "module the moves the system from the origin to the equilibrum point\n", + "point $x_\\text{f}$, $y_\\text{f}$ = 10, 0 while satisfying the\n", + "constraint $0.5 \\sin(\\pi x / 10) - 0.1 \\leq y \\leq 1$." + ] + }, + { + "cell_type": "markdown", + "id": "D1aFeNuglL4a", + "metadata": { + "id": "D1aFeNuglL4a" + }, + "source": [ + "We start by creating the PVTOL system without noise or disturbances." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c32ec3f8", + "metadata": {}, + "outputs": [], + "source": [ + "# STANDARD PVTOL DYNAMICS\n", + "def _pvtol_update(t, x, u, params):\n", + "\n", + " # Get the parameter values\n", + " m = params.get('m', 4.) # mass of aircraft\n", + " J = params.get('J', 0.0475) # inertia around pitch axis\n", + " r = params.get('r', 0.25) # distance to center of force\n", + " g = params.get('g', 9.8) # gravitational constant\n", + " c = params.get('c', 0.05) # damping factor (estimated)\n", + "\n", + " # Get the inputs and states\n", + " x, y, theta, xdot, ydot, thetadot = x\n", + " F1, F2 = u\n", + "\n", + " # Constrain the inputs\n", + " F2 = np.clip(F2, 0, 1.5 * m * g)\n", + " F1 = np.clip(F1, -0.1 * F2, 0.1 * F2)\n", + "\n", + " # Dynamics\n", + " xddot = (F1 * cos(theta) - F2 * sin(theta) - c * xdot) / m\n", + " yddot = (F1 * sin(theta) + F2 * cos(theta) - m * g - c * ydot) / m\n", + " thddot = (r * F1) / J\n", + "\n", + " return np.array([xdot, ydot, thetadot, xddot, yddot, thddot])\n", + "\n", + "# Define pvtol output function to only be x, y, and theta\n", + "def _pvtol_output(t, x, u, params):\n", + " return x[0:3]\n", + "\n", + "# Create nonlinear input-output system of nominal pvtol system\n", + "pvtol_nominal = ct.nlsys(\n", + " _pvtol_update, _pvtol_output, name=\"pvtol_nominal\",\n", + " states = [f'x{i}' for i in range(6)],\n", + " inputs = ['F1', 'F2'],\n", + " outputs = [f'x{i}' for i in range(3)]\n", + ")\n", + "\n", + "print(pvtol_nominal)" + ] + }, + { + "cell_type": "markdown", + "id": "TTMQAAhFldW7", + "metadata": { + "id": "TTMQAAhFldW7" + }, + "source": [ + "Next, we create a PVTOL system with noise and disturbances. This system will use the nominal PVTOL system and add disturbances as inputs to the state dynamics and noise to the system output." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "tqSvuzvOkps1", + "metadata": {}, + "outputs": [], + "source": [ + "# Add wind and noise to system dynamics\n", + "def _noisy_update(t, x, u, params):\n", + " # Get the inputs\n", + " F1, F2, Dx, Dy = u[:4]\n", + " if u.shape[0] > 4:\n", + " Nx, Ny, Nth = u[4:]\n", + " else:\n", + " Nx, Ny, Nth = 0, 0, 0\n", + "\n", + " # Get the system response from the original dynamics\n", + " xdot, ydot, thetadot, xddot, yddot, thddot = \\\n", + " _pvtol_update(t, x, [F1, F2], params)\n", + "\n", + " # Get the parameter values we need\n", + " m = params.get('m', 4.) # mass of aircraft\n", + " J = params.get('J', 0.0475) # inertia around pitch axis\n", + "\n", + " # Now add the disturbances\n", + " xddot += Dx / m\n", + " yddot += Dy / m\n", + "\n", + " return np.array([xdot, ydot, thetadot, xddot, yddot, thddot])\n", + "\n", + "# Define pvtol_noisy output function to only be x, y, and theta\n", + "def _noisy_output(t, x, u, params):\n", + " F1, F2, Dx, Dy, Nx, Ny, Nth = u\n", + " return x[0:3] + np.array([Nx, Ny, Nth])\n", + "\n", + "# CREATE NONLINEAR INPUT-OUTPUT SYSTEM\n", + "pvtol_noisy = ct.nlsys(\n", + " _noisy_update, _noisy_output, name=\"pvtol_noisy\",\n", + " states = [f'x{i}' for i in range(6)],\n", + " inputs = ['F1', 'F2'] + ['Dx', 'Dy'] + ['Nx', 'Ny', 'Nth'],\n", + " outputs = ['x', 'y', 'theta'],\n", + " params = {\n", + " 'm': 4., # mass of aircraft\n", + " 'J': 0.0475, # inertia around pitch axis\n", + " 'r': 0.25, # distance to center of force\n", + " 'g': 9.8, # gravitational constant\n", + " 'c': 0.05, # damping factor (estimated)\n", + " }\n", + ")\n", + "\n", + "print(pvtol_noisy)" + ] + }, + { + "cell_type": "markdown", + "id": "057cba8f-79bd-4a45-a184-2424c569785d", + "metadata": { + "id": "057cba8f-79bd-4a45-a184-2424c569785d" + }, + "source": [ + "Note that the outputs of `pvtol_noisy` are not the full set of states, but rather the states we can measure: $x$, $y$, and $\\theta$." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7ce469b3-faa0-4bac-b9d4-02e4dae7a2da", + "metadata": {}, + "outputs": [], + "source": [ + "# Utility function tlot the trajectory in xy coordinates\n", + "def plot_results(t, x, u, fig=None):\n", + " # Set the size of the figure\n", + " if fig is None:\n", + " fig = plt.figure(figsize=(10, 6))\n", + "\n", + " # Top plot: xy trajectory\n", + " plt.subplot(2, 1, 1)\n", + " plt.plot(x[0], x[1])\n", + " plt.xlabel('x [m]')\n", + " plt.ylabel('y [m]')\n", + " plt.axis('equal')\n", + "\n", + " # Time traces of the state and input\n", + " plt.subplot(2, 4, 5)\n", + " plt.plot(t, x[1])\n", + " plt.xlabel('Time t [sec]')\n", + " plt.ylabel('y [m]')\n", + "\n", + " plt.subplot(2, 4, 6)\n", + " plt.plot(t, x[2])\n", + " plt.xlabel('Time t [sec]')\n", + " plt.ylabel('theta [rad]')\n", + "\n", + " plt.subplot(2, 4, 7)\n", + " plt.plot(t, u[0])\n", + " plt.xlabel('Time t [sec]')\n", + " plt.ylabel('$F_1$ [N]')\n", + "\n", + " plt.subplot(2, 4, 8)\n", + " plt.plot(t, u[1])\n", + " plt.xlabel('Time t [sec]')\n", + " plt.ylabel('$F_2$ [N]')\n", + " plt.tight_layout()\n", + "\n", + " return fig\n" + ] + }, + { + "cell_type": "markdown", + "id": "081764e0", + "metadata": { + "id": "081764e0" + }, + "source": [ + "## Estimator\n", + "\n", + "We start by designing an optimal estimator for the system. We choose the noise intensities\n", + "based on knowledge of the modeling errors, disturbances, and sensor characteristics:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "778fb908", + "metadata": {}, + "outputs": [], + "source": [ + "# Disturbance and noise intensities\n", + "Qv = np.diag([1e-2, 1e-2])\n", + "Qw = np.array([[2e-4, 0, 1e-5], [0, 2e-4, 1e-5], [1e-5, 1e-5, 1e-4]])\n", + "Qwinv = np.linalg.inv(Qw)\n", + "\n", + "# Initial state covariance\n", + "P0 = np.eye(pvtol_noisy.nstates)" + ] + }, + { + "cell_type": "markdown", + "id": "1Q55PHN1omJs", + "metadata": { + "id": "1Q55PHN1omJs" + }, + "source": [ + "We will use a linear quadratic estimator (Kalman filter) to design an optimal estimator for the system. Recall that the `ct.lqe` function takes in a linear system as input, so we first linear our `pvtol_noisy` system around its equilibrium point." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "WADb1-VcuR5t", + "metadata": {}, + "outputs": [], + "source": [ + "# Find the equilibrium point corresponding to the origin\n", + "xe, ue = ct.find_eqpt(\n", + " sys = pvtol_noisy,\n", + " x0 = np.zeros(pvtol_noisy.nstates),\n", + " u0 = np.zeros(pvtol_noisy.ninputs),\n", + " y0 = [0, 0, 0],\n", + " iu=range(2, pvtol_noisy.ninputs),\n", + " iy=[0, 1]\n", + ")\n", + "print(f\"{xe=}\")\n", + "print(f\"{ue=}\")\n", + "\n", + "# Linearize system for Kalman filter\n", + "pvtol_noisy_lin = pvtol_noisy.linearize(xe, ue)\n", + "\n", + "# Extract the linearization for use in LQR design\n", + "A, B, C = pvtol_noisy_lin.A, pvtol_noisy_lin.B, pvtol_noisy_lin.C" + ] + }, + { + "cell_type": "markdown", + "id": "6E9s147Cpppr", + "metadata": { + "id": "6E9s147Cpppr" + }, + "source": [ + "We want to define an estimator that takes in the measured states $x$, $y$, and $\\theta$, as well as applied inputs $F_1$ and $F_2$. As the estimator doesn't have any measurement of the noise/disturbances applied to the system, we will design our controller with only these inputs." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "nvZHm0Ooqkj_", + "metadata": {}, + "outputs": [], + "source": [ + "# use ct.lqe to create an L matrix, using only measured inputs F1 and F2\n", + "L, Pf, _ = ct.lqe(A, B[:,:2], C, Qv, Qw)" + ] + }, + { + "cell_type": "markdown", + "id": "KXVetnCUrHvs", + "metadata": { + "id": "KXVetnCUrHvs" + }, + "source": [ + "We now create our estimator." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "M77vo5PgrIEv", + "metadata": {}, + "outputs": [], + "source": [ + "# Create standard (optimal) estimator update function\n", + "def estimator_update(t, xhat, u, params):\n", + "\n", + " # Extract the inputs to the estimator\n", + " y = u[0:3] # just grab the first three outputs\n", + " u_cmd = u[3:5] # get the inputs that were applied as well\n", + "\n", + " # Update the state estimate using PVTOL (non-noisy) dynamics\n", + " return _pvtol_update(t, xhat, u_cmd, params) - L @ (C @ xhat - y)\n", + "\n", + "# Create estimator\n", + "estimator = ct.nlsys(\n", + " estimator_update, None,\n", + " name = 'Estimator',\n", + " states=pvtol_noisy.nstates,\n", + " inputs= pvtol_noisy.output_labels \\\n", + " + pvtol_noisy.input_labels[0:2],\n", + " outputs=[f'xh{i}' for i in range(pvtol_noisy.nstates)],\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1JOPx1TXrnr-", + "metadata": {}, + "outputs": [], + "source": [ + "print(estimator)" + ] + }, + { + "cell_type": "markdown", + "id": "46d8463d", + "metadata": { + "id": "46d8463d" + }, + "source": [ + "## Gain scheduled controller\n", + "\n", + "We next design our (gain scheduled) controller for the system. Here, as in the case of the estimator, we will create the controller using the nominal PVTOL system, so that the applied inputs to the system are only $F_1$ and $F_2$. If we were to make a controller using the noisy PVTOL system, then the inputs applied via control action would include noise and disturbances, which is incorrect." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2e5fbef3", + "metadata": {}, + "outputs": [], + "source": [ + "# Define the weights for the LQR problem\n", + "Qx = np.diag([100, 10, (180/np.pi) / 5, 0, 0, 0])\n", + "# Qx = np.diag([10, 100, (180/np.pi) / 5, 0, 0, 0]) # Try this out to see what changes\n", + "Qu = np.diag([10, 1])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e5cc3cc0", + "metadata": {}, + "outputs": [], + "source": [ + "# Construct the array of gains and the gain scheduled controller\n", + "import itertools\n", + "import math\n", + "\n", + "# Set up points around which to linearize (control-0.9.3: must be 2D or greater)\n", + "angles = np.linspace(-math.pi/3, math.pi/3, 10)\n", + "speeds = np.linspace(-10, 10, 3)\n", + "points = list(itertools.product(angles, speeds))\n", + "\n", + "# Compute the gains at each design point of angles and speeds\n", + "gains = []\n", + "\n", + "# Iterate through points\n", + "for point in points:\n", + "\n", + " # Compute the state that we want to linearize about\n", + " xgs = xe.copy()\n", + " xgs[2], xgs[4] = point[0], point[1]\n", + "\n", + " # Linearize the system and compute the LQR gains\n", + " linsys = pvtol_noisy.linearize(xgs, ue)\n", + " A = linsys.A\n", + " B = linsys.B[:,:2]\n", + " K, X, E = ct.lqr(A, B, Qx, Qu)\n", + " gains.append(K)\n", + "\n", + "# Construct the controller\n", + "gs_ctrl, gs_clsys = ct.create_statefbk_iosystem(\n", + " sys = pvtol_nominal,\n", + " gain = (gains, points),\n", + " gainsched_indices=['xh2', 'xh4'],\n", + " estimator=estimator\n", + ")\n", + "\n", + "print(gs_ctrl)" + ] + }, + { + "cell_type": "markdown", + "id": "ecd28a73", + "metadata": { + "id": "ecd28a73" + }, + "source": [ + "## Trajectory generation\n", + "\n", + "Finally, we need to design the trajectory that we want to follow. We consider a situation with state constraints that represent the specific experimental conditions for this system (at Caltech):\n", + "* `ceiling`: The system has limited vertical travel, so we constrain the vertical position to lie between $-0.5$ and $2$ meters.\n", + "* `nicolas`: When testing, we placed a person in between the initial and final position, and we need to avoid hitting him as we move from start to finish.\n", + "\n", + "The code below defines the initial conditions, final conditions, and constraints." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5eb12bfa", + "metadata": {}, + "outputs": [], + "source": [ + "# Define the initial and final conditions\n", + "x_delta = np.array([10, 0, 0, 0, 0, 0])\n", + "x0, u0 = ct.find_eqpt(\n", + " sys = pvtol_nominal,\n", + " x0 = np.zeros(6),\n", + " u0 = np.zeros(2),\n", + " y0 = np.zeros(3),\n", + " iy=[0, 1]\n", + ")\n", + "xf, uf = ct.find_eqpt(\n", + " sys = pvtol_nominal,\n", + " x0 = x0 + x_delta,\n", + " u0 = u0,\n", + " y0 = (x0 + x_delta)[:3],\n", + " iy=[0, 1]\n", + ")\n", + "\n", + "# Define the time horizon for the manuever\n", + "Tf = 5\n", + "timepts = np.linspace(0, Tf, 100, endpoint=False)\n", + "\n", + "# Create a constraint corresponding to the obstacle\n", + "ceiling = (NonlinearConstraint, lambda x, u: x[1], [-0.5], [2])\n", + "nicolas = (NonlinearConstraint,\n", + " lambda x, u: x[1] - (0.5 * sin(pi * x[0] / 10) - 0.1), [0], [1])\n", + "\n", + "# # Reset the nonlinear constraint to give some extra room\n", + "# nicolas = (NonlinearConstraint,\n", + "# lambda x, u: x[1] - (0.8 * sin(pi * x[0] / 10) - 0.1), [0], [1])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "610aa247", + "metadata": {}, + "outputs": [], + "source": [ + "# Re-define the time horizon for the manuever\n", + "Tf = 5\n", + "timepts = np.linspace(0, Tf, 20, endpoint=False)\n", + "\n", + "# We provide a tent shape as an intial guess\n", + "xm = (x0 + xf) / 2 + np.array([0, 0.5, 0, 0, 0, 0])\n", + "tm = int(len(timepts)/2)\n", + "# straight line from start to midpoint to end with nominal input\n", + "tent = (\n", + " np.hstack([\n", + " np.array([x0 + (xm - x0) * t/(Tf/2) for t in timepts[0:tm]]).transpose(),\n", + " np.array([xm + (xf - xm) * t/(Tf/2) for t in timepts[0:tm]]).transpose()\n", + " ]),\n", + " u0\n", + ")\n", + "\n", + "# terminal constraint\n", + "term_constraints = opt.state_range_constraint(pvtol_nominal, xf, xf)\n", + "\n", + "# trajectory cost\n", + "traj_cost = opt.quadratic_cost(pvtol_nominal, None, Qu, x0=xf, u0=uf)\n", + "\n", + "# find optimal trajectory\n", + "start_time = time.process_time()\n", + "traj = opt.solve_ocp(\n", + " sys = pvtol_nominal,\n", + " timepts = timepts,\n", + " initial_guess=tent,\n", + " X0=x0,\n", + " cost = traj_cost,\n", + " trajectory_constraints=[ceiling, nicolas],\n", + " terminal_constraints=term_constraints,\n", + ")\n", + "print(\"* Total time = %5g seconds\\n\" % (time.process_time() - start_time))\n", + "\n", + "# Create the desired trajectory\n", + "xd, ud = traj.states, traj.inputs" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e59ddc29", + "metadata": {}, + "outputs": [], + "source": [ + "# Extend the trajectory to hold the final position for Tf seconds\n", + "holdpts = np.arange(Tf, Tf + Tf, timepts[1]-timepts[0])\n", + "xd = np.hstack([xd, np.outer(xf, np.ones_like(holdpts))])\n", + "ud = np.hstack([ud, np.outer(uf, np.ones_like(holdpts))])\n", + "timepts = np.hstack([timepts, holdpts])\n", + "\n", + "# Plot the desired trajectory\n", + "plot_results(timepts, xd, ud)\n", + "plt.suptitle('Desired Trajectory')\n", + "\n", + "# Add the constraints to the plot\n", + "plt.subplot(2, 1, 1)\n", + "\n", + "plt.plot([0, 10], [2, 2], 'r--')\n", + "plt.text(5, 1.8, 'Ceiling', ha='center')\n", + "\n", + "x_nic = np.linspace(0, 10, 50)\n", + "y_nic = 0.5 * np.sin(pi * x_nic / 10) - 0.1\n", + "plt.plot(x_nic, y_nic, 'r--')\n", + "plt.text(5, 0, 'Nicolas Petit', ha='center')\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "id": "affe55fa", + "metadata": { + "id": "affe55fa" + }, + "source": [ + "## Final Control System Implementation\n", + "\n", + "We now put together the final control system and simulate it. If you have named your inputs and outputs to each of the subsystems properly, the code below should connect everything up correctly. If you get errors about inputs or outputs that are not connected to anything, check the names of your inputs and outputs in the various\n", + "systems above and make sure everything lines up as it should." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "50dff557", + "metadata": {}, + "outputs": [], + "source": [ + "# Create the interconnected system\n", + "clsys = ct.interconnect(\n", + " [pvtol_noisy, gs_ctrl, estimator],\n", + " inputs=gs_clsys.input_labels[:8] + pvtol_noisy.input_labels[2:],\n", + " outputs=pvtol_noisy.output_labels + pvtol_noisy.input_labels[:2]\n", + ")\n", + "print(clsys)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0f24e6f5", + "metadata": {}, + "outputs": [], + "source": [ + "# Generate disturbance and noise vectors\n", + "V = ct.white_noise(timepts, Qv)\n", + "W = ct.white_noise(timepts, Qw)\n", + "for i in range(V.shape[0]):\n", + " plt.subplot(2, 3, i+1)\n", + " plt.plot(timepts, V[i])\n", + " plt.ylabel(f'V[{i}]')\n", + "\n", + "for i in range(W.shape[0]):\n", + " plt.subplot(2, 3, i+4)\n", + " plt.plot(timepts, W[i])\n", + " plt.ylabel(f'W[{i}]')\n", + " plt.xlabel('Time $t$ [s]')\n", + "\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f63091cf", + "metadata": {}, + "outputs": [], + "source": [ + "# Simulate the open loop system and plot the results (+ state trajectory)\n", + "resp = ct.input_output_response(\n", + " sys = clsys,\n", + " T = timepts,\n", + " U = [xd, ud, V, W],\n", + " X0 = np.zeros(12))\n", + "\n", + "plot_results(resp.time, resp.outputs[0:3], resp.outputs[3:5])\n", + "\n", + "# Add the constraints to the plot\n", + "plt.subplot(2, 1, 1)\n", + "plt.plot([0, 10], [1, 1], 'r--')\n", + "x_nic = np.linspace(0, 10, 50)\n", + "y_nic = 0.5 * np.sin(pi * x_nic / 10) - 0.1\n", + "plt.plot(x_nic, y_nic, 'r--')\n", + "plt.text(5, 0, 'Nicolas Petit', ha='center')\n", + "plt.suptitle(\"Measured Trajectory\")\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "id": "89221230", + "metadata": { + "id": "89221230" + }, + "source": [ + "We see that with the addition of disturbances and noise, we sometimes violate the constraint 'nicolas' (if your plot doesn't show an intersection with the bottom dashed curve, try regenerating the noise and running the simulation again). This can be fixed by establishing a more conservative constraint (see commented out constraint in code block above)." + ] + }, + { + "cell_type": "markdown", + "id": "3f2e9776-0ba9-4295-9473-a17cb4854836", + "metadata": { + "id": "3f2e9776-0ba9-4295-9473-a17cb4854836" + }, + "source": [ + "## Small signal analysis\n", + "\n", + "We next look at the properties of the system using the small signal (linearized) dynamics. This analysis is useful to check the robustness and performance of the controller around trajectories and equilibrium points.\n", + "\n", + "We will carry out the analysis around the initial condition." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "JgZyPyMkcoOl", + "metadata": {}, + "outputs": [], + "source": [ + "## Small signal analysis\n", + "X0 = np.hstack([x0, x0]) # system state, estim state\n", + "U0 = np.hstack([x0, u0, np.zeros(5)]) # xd, ud, dist, noise\n", + "G = clsys.linearize(X0, U0)\n", + "print(clsys)\n", + "\n", + "# Get input/output dictionaries: inp['sig'] = index for 'sig'\n", + "inp = clsys.input_index\n", + "out = clsys.output_index\n", + "\n", + "fig, axs = plt.subplots(2, 3, figsize=[9, 6])\n", + "omega = np.logspace(-2, 2)\n", + "\n", + "# Complementary sensitivity\n", + "G_x_xd = ct.tf(G[out['x'], inp['xd[0]']])\n", + "G_y_yd = ct.tf(G[out['y'], inp['xd[1]']])\n", + "ct.bode_plot(\n", + " [G_x_xd, G_y_yd], omega,\n", + " plot_phase=False, ax=np.array([[axs[0, 0]]]))\n", + "axs[0, 0].legend(['F T_x', 'F T_y'])\n", + "axs[0, 0].loglog([omega[0], omega[-1]], [1, 1], 'k', linewidth=0.5)\n", + "axs[0, 0].set_title(\"From xd, yd\", fontsize=9)\n", + "axs[0, 0].set_ylabel(\"To x, y\")\n", + "axs[0, 0].set_xlabel(\"\")\n", + "\n", + "# Load (or input) sensitivity\n", + "G_x_dx = ct.tf(G[out['x'], inp['Dx']])\n", + "G_y_dy = ct.tf(G[out['y'], inp['Dy']])\n", + "ct.bode_plot(\n", + " [G_x_dx, G_y_dy], omega,\n", + " plot_phase=False, ax=np.array([[axs[0, 1]]]))\n", + "axs[0, 1].legend(['PS_x', 'PS_y'])\n", + "axs[0, 1].loglog([omega[0], omega[-1]], [1, 1], 'k', linewidth=0.5)\n", + "axs[0, 1].set_title(\"From Dx, Dy\", fontsize=9)\n", + "axs[0, 1].set_xlabel(\"\")\n", + "axs[0, 1].set_ylabel(\"\")\n", + "\n", + "# Sensitivity\n", + "G_x_Nx = ct.tf(G[out['x'], inp['Nx']])\n", + "G_y_Ny = ct.tf(G[out['y'], inp['Ny']])\n", + "ct.bode_plot(\n", + " [G_x_Nx, G_y_Ny], omega,\n", + " plot_phase=False, ax=np.array([[axs[0, 2]]]))\n", + "axs[0, 2].legend(['S_x', 'S_y'])\n", + "axs[0, 2].set_title(\"From Nx, Ny\", fontsize=9)\n", + "axs[0, 2].loglog([omega[0], omega[-1]], [1, 1], 'k', linewidth=0.5)\n", + "axs[0, 2].set_xlabel(\"\")\n", + "axs[0, 2].set_ylabel(\"\")\n", + "\n", + "# Noise (or output) sensitivity\n", + "G_F1_xd = ct.tf(G[out['F1'], inp['xd[0]']])\n", + "G_F2_yd = ct.tf(G[out['F2'], inp['xd[1]']])\n", + "ct.bode_plot(\n", + " [G_F1_xd, G_F2_yd], omega,\n", + " plot_phase=False, ax=np.array([[axs[1, 0]]]))\n", + "axs[1, 0].legend(['FCS_x', 'FCS_y'])\n", + "axs[1, 0].loglog([omega[0], omega[-1]], [1, 1], 'k', linewidth=0.5)\n", + "axs[1, 0].set_ylabel(\"To F1, F2\")\n", + "\n", + "G_F1_dx = ct.tf(G[out['F1'], inp['Dx']])\n", + "G_F2_dy = ct.tf(G[out['F2'], inp['Dy']])\n", + "ct.bode_plot(\n", + " [G_F1_dx, G_F2_dy], omega,\n", + " plot_phase=False, ax=np.array([[axs[1, 1]]]))\n", + "axs[1, 1].legend(['~T_x', '~T_y'])\n", + "axs[1, 1].loglog([omega[0], omega[-1]], [1, 1], 'k', linewidth=0.5)\n", + "axs[1, 1].set_ylabel(\"\")\n", + "\n", + "# Sensitivity\n", + "G_F1_Nx = ct.tf(G[out['F1'], inp['Nx']])\n", + "G_F1_Ny = ct.tf(G[out['F1'], inp['Ny']])\n", + "ct.bode_plot(\n", + " [G_F1_Nx, G_F1_Ny], omega,\n", + " plot_phase=False, ax=np.array([[axs[1, 2]]]))\n", + "axs[1, 2].legend(['C S_x', 'C S_y'])\n", + "axs[1, 2].loglog([omega[0], omega[-1]], [1, 1], 'k', linewidth=0.5)\n", + "axs[1, 2].set_ylabel(\"\")\n", + "\n", + "plt.suptitle(\"Gang of Six for PVTOL\")\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "xfi1mXJTe3Gm", + "metadata": {}, + "outputs": [], + "source": [ + "# Solve for the loop transfer function horizontal direction\n", + "# S = 1 / (1 + L) => S + SL = 1 => L = (1 - S)/S\n", + "Lx = (1 - G_x_Nx) / G_x_Nx; Lx.name = 'Lx'\n", + "Ly = (1 - G_y_Ny) / G_y_Ny; Ly.name = 'Ly'\n", + "\n", + "# Create Nyquist plot\n", + "ct.nyquist_plot([Lx, Ly], max_curve_magnitude=5, max_curve_offset=0.2);" + ] + }, + { + "cell_type": "markdown", + "id": "L7L6UZTn_Qtn", + "metadata": { + "id": "L7L6UZTn_Qtn" + }, + "source": [ + "### Gain Margins of $L_x$, $L_y$\n", + "\n", + "We can zoom in on the plot to see the gain, phase, and stability margins:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3FX7YXrR2cuQ", + "metadata": {}, + "outputs": [], + "source": [ + "cplt = ct.nyquist_plot([Lx, Ly])\n", + "lower_upper_bound = 1.1\n", + "cplt.axes[0, 0].set_xlim([-lower_upper_bound, lower_upper_bound])\n", + "cplt.axes[0, 0].set_ylim([-lower_upper_bound, lower_upper_bound])\n", + "cplt.axes[0, 0].set_aspect('equal')\n", + "\n", + "# Gain margin for Lx\n", + "neg1overgm_x = -0.67 # vary this manually to find intersection with curve\n", + "color = cplt.lines[0][0].get_color()\n", + "plt.plot(neg1overgm_x, 0, color=color, marker='o', fillstyle='none')\n", + "gm_x = -1/neg1overgm_x\n", + "\n", + "# Gain margin for Ly\n", + "neg1overgm_y = -0.32 # vary this manually to find intersection with curve\n", + "color = cplt.lines[1][0].get_color()\n", + "plt.plot(neg1overgm_y, 0, color=color, marker='o', fillstyle='none')\n", + "gm_y = -1/neg1overgm_y\n", + "\n", + "print('Margins obtained visually:')\n", + "print('Gain margin of Lx: '+str(gm_x))\n", + "print('Gain margin of Ly: '+str(gm_y))\n", + "print('\\n')\n", + "\n", + "# get gain margin computationally\n", + "gm_xc, pm_xc, wpc_xc, wgc_xc = ct.margin(Lx)\n", + "gm_yc, pm_yc, wpc_yc, wgc_yc = ct.margin(Ly)\n", + "\n", + "print('Margins obtained computationally:')\n", + "print('Gain margin of Lx: '+str(gm_xc))\n", + "print('Gain margin of Ly: '+str(gm_yc))\n", + "\n", + "print('\\n')" + ] + }, + { + "cell_type": "markdown", + "id": "VnrVNvhz_Zi2", + "metadata": { + "id": "VnrVNvhz_Zi2" + }, + "source": [ + "### Phase Margins of $L_x$, $L_y$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "zKb_o9ZN_ffF", + "metadata": {}, + "outputs": [], + "source": [ + "# add customizations to Nyquist plot\n", + "cplt = ct.nyquist_plot(\n", + " [Lx, Ly], max_curve_magnitude=5, max_curve_offset=0.2,\n", + " unit_circle=True)\n", + "lower_upper_bound = 2\n", + "cplt.axes[0, 0].set_xlim([-lower_upper_bound, lower_upper_bound])\n", + "cplt.axes[0, 0].set_ylim([-lower_upper_bound, lower_upper_bound])\n", + "cplt.axes[0, 0].set_aspect('equal')\n", + "\n", + "# Phase margin of Lx:\n", + "th_pm_x = 0.14*np.pi\n", + "th_plt_x = np.pi + th_pm_x\n", + "color = cplt.lines[0][0].get_color()\n", + "plt.plot(np.cos(th_plt_x), np.sin(th_plt_x), color=color, marker='o')\n", + "\n", + "# Phase margin of Ly\n", + "th_pm_y = 0.19*np.pi\n", + "th_plt_y = np.pi + th_pm_y\n", + "color = cplt.lines[1][0].get_color()\n", + "plt.plot(np.cos(th_plt_y), np.sin(th_plt_y), color=color, marker='o')\n", + "\n", + "print('Margins obtained visually:')\n", + "print('Phase margin: '+str(float(th_pm_x)))\n", + "print('Phase margin: '+str(float(th_pm_y)))\n", + "print('\\n')\n", + "\n", + "# get margin computationally\n", + "gm_xc, pm_xc, wpc_xc, wgc_xc = ct.margin(Lx)\n", + "gm_yc, pm_yc, wpc_yc, wgc_yc = ct.margin(Ly)\n", + "\n", + "print('Margins obtained computationally:')\n", + "print('Phase margin of Lx: '+str(np.deg2rad(pm_xc)))\n", + "print('Phase margin of Ly: '+str(np.deg2rad(pm_yc)))\n", + "\n", + "print('\\n')" + ] + }, + { + "cell_type": "markdown", + "id": "dF0BIq5BDXII", + "metadata": { + "id": "dF0BIq5BDXII" + }, + "source": [ + "### Stability Margins of $L_x$, $L_y$\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "XQPB_h6Y1cAW", + "metadata": {}, + "outputs": [], + "source": [ + "# add customizations to Nyquist plot\n", + "cplt = ct.nyquist_plot([Lx, Ly], max_curve_magnitude=5, max_curve_offset=0.2)\n", + "lower_upper_bound = 2\n", + "cplt.axes[0, 0].set_xlim([-lower_upper_bound, lower_upper_bound])\n", + "cplt.axes[0, 0].set_ylim([-lower_upper_bound, lower_upper_bound])\n", + "cplt.axes[0, 0].set_aspect('equal')\n", + "\n", + "# Stability margin:\n", + "sm_x = 0.3 # vary this manually to find min which intersects\n", + "color = cplt.lines[0][0].get_color()\n", + "sm_circle = plt.Circle((-1, 0), sm_x, color=color, fill=False, ls=':')\n", + "cplt.axes[0, 0].add_patch(sm_circle)\n", + "\n", + "sm_y = 0.5 # vary this manually to find min which intersects\n", + "color = cplt.lines[1][0].get_color()\n", + "sm_circle = plt.Circle((-1, 0), sm_y, color=color, fill=False, ls=':')\n", + "cplt.axes[0, 0].add_patch(sm_circle)\n", + "\n", + "print('Margins obtained visually:')\n", + "print('* Stability margin of Lx: '+str(sm_x))\n", + "print('* Stability margin of Ly: '+str(sm_y))\n", + "\n", + "# Compute the stability margin computationally\n", + "print('') # blank line\n", + "print('Margins obtained computationally:')\n", + "resp = ct.frequency_response(1 + Lx)\n", + "sm = np.min(resp.magnitude)\n", + "wsm = resp.omega[np.argmin(resp.magnitude)]\n", + "\n", + "print(f\"* Stability margin of Lx = {sm:2.2g} (at {wsm:.2g} rad/s)\")\n", + "resp = ct.frequency_response(1 + Ly)\n", + "sm = np.min(resp.magnitude)\n", + "wsm = resp.omega[np.argmin(resp.magnitude)]\n", + "print(f\"* Stability margin of Ly = {sm:2.2g} (at {wsm:.2g} rad/s)\")\n", + "print('')" + ] + }, + { + "cell_type": "markdown", + "id": "boAjWk56GXYZ", + "metadata": { + "id": "boAjWk56GXYZ" + }, + "source": [ + "We see that the frequencies at which the stability margins are found corresponds to the peak of the magnitude of the sensitivity functions for $L_x$ and $L_y$." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "JkbMn8pif7Ub", + "metadata": {}, + "outputs": [], + "source": [ + "# Confirm stability using Nyquist criterion\n", + "nyqresp_x = ct.nyquist_response(Lx)\n", + "nyqresp_y = ct.nyquist_response(Ly)\n", + "\n", + "print(\"Nx =\", nyqresp_x.count, \"; Px =\", np.sum(np.real(Lx.poles()) > 0))\n", + "print(\"Ny =\", nyqresp_y.count, \"; Py =\", np.sum(np.real(Ly.poles()) > 0))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4d038db9-f671-4f0f-82db-51096e8272b7", + "metadata": {}, + "outputs": [], + "source": [ + "# Take a look at the locations of the poles\n", + "np.real(Ly.poles())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9dd57510-4b03-4c0a-90ae-35011f90c41b", + "metadata": {}, + "outputs": [], + "source": [ + "# See what happened in the contour\n", + "plt.plot(np.real(nyqresp_y.contour), np.imag(nyqresp_y.contour))\n", + "plt.axis([-1e-4, 4e-4, 0, 4e-4])\n", + "plt.title(\"Zoom on D-contour\");" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e7b9a2f9-f40f-4090-ae69-6bf53fea54a9", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/examples/cds110-L9_servomech-pid.ipynb b/examples/cds110-L9_servomech-pid.ipynb new file mode 100644 index 000000000..3c8f5df5a --- /dev/null +++ b/examples/cds110-L9_servomech-pid.ipynb @@ -0,0 +1,635 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "FAZsjB3IN9JN" + }, + "source": [ + "
\n", + "

CDS 110, Lecture 9

\n", + "

PID Control of a Servomechanism

\n", + "

Richard M. Murray, Winter 2024

\n", + "
\n", + "\n", + "[Open in Google Colab](https://colab.research.google.com/drive/1BP0DFHh94tSxAyQetvOEbBEHKrSoVGQW)\n", + "\n", + "In this lecture we will use a variety of methods to design proportional (P), proportional-integral (PI), and proportional-integral-derivative (PID) controllers for a cart pendulum system." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from math import pi\n", + "try:\n", + " import control as ct\n", + " print(\"python-control\", ct.__version__)\n", + "except ImportError:\n", + " !pip install control\n", + " import control as ct" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "T0rjwp1mONm1" + }, + "source": [ + "## System dynamics\n", + "\n", + "Consider a simple mechanism consisting of a spring loaded arm that is driven by a motor, as shown below:\n", + "\n", + "
\"servomech-diagram\"
\n", + "\n", + "The motor applies a torque that twists the arm against a linear spring and moves the end of the arm across a rotating platter. The input to the system is the motor torque $\\tau_\\text{m}$. The force exerted by the spring is a nonlinear function of the head position due to the way it is attached.\n", + "\n", + "The equations of motion for the system are given by\n", + "\n", + "$$\n", + "J \\ddot \\theta = -b \\dot\\theta - k r\\sin\\theta + \\tau_\\text{m},\n", + "$$\n", + "\n", + "which can be written in state space form as\n", + "\n", + "$$\n", + "\\frac{d}{dt} \\begin{bmatrix} \\theta \\\\ \\theta \\end{bmatrix} =\n", + " \\begin{bmatrix} \\dot\\theta \\\\ -k r \\sin\\theta / J - b\\dot\\theta / J \\end{bmatrix}\n", + " + \\begin{bmatrix} 0 \\\\ 1/J \\end{bmatrix} \\tau_\\text{m}.\n", + "$$\n", + "\n", + "The system parameters are given by\n", + "\n", + "$$\n", + "k = 1,\\quad J = 100,\\quad b = 10,\n", + "\\quad r = 1,\\quad l = 2,\\quad \\epsilon = 0.01.\n", + "$$\n", + "\n", + "and we assume that time is measured in milliseconds (ms) and distance in centimeters (cm). (The constants here are made up and don't necessarily reflect a real disk drive, though the units and time constants are motivated by computer disk drives.)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Parameter values\n", + "servomech_params = {\n", + " 'J': 100, # Moment of inertia of the motor\n", + " 'b': 10, # Angular damping of the arm\n", + " 'k': 1, # Spring constant\n", + " 'r': 1, # Location of spring contact on arm\n", + " 'l': 2, # Distance to the read head\n", + " 'eps': 0.01, # Magnitude of velocity-dependent perturbation\n", + "}\n", + "\n", + "# State derivative\n", + "def servomech_update(t, x, u, params):\n", + " # Extract the configuration and velocity variables from the state vector\n", + " theta = x[0] # Angular position of the disk drive arm\n", + " thetadot = x[1] # Angular velocity of the disk drive arm\n", + " tau = u[0] # Torque applied at the base of the arm\n", + "\n", + " # Get the parameter values\n", + " J, b, k, r = map(params.get, ['J', 'b', 'k', 'r'])\n", + "\n", + " # Compute the angular acceleration\n", + " dthetadot = 1/J * (\n", + " -b * thetadot - k * r * np.sin(theta) + tau)\n", + "\n", + " # Return the state update law\n", + " return np.array([thetadot, dthetadot])\n", + "\n", + "# System output (full state)\n", + "def servomech_output(t, x, u, params):\n", + " l = params['l']\n", + " return l * x[0]\n", + "\n", + "# System dynamics\n", + "servomech = ct.nlsys(\n", + " servomech_update, servomech_output, name='servomech',\n", + " params=servomech_params,\n", + " states=['theta_', 'thdot_'],\n", + " outputs=['y'], inputs=['tau'])" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "n4bQu0e2_aBT" + }, + "source": [ + "In addition to the system dynamics, we assume there are actuator dynamics that limit the performance of the system. We take these as first order dynamics with saturation:\n", + "\n", + "$$\n", + "\\tau = \\text{sat} \\left(\\frac{\\alpha}{s + \\alpha} u\\right)\n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "actuator_params = {\n", + " 'umax': 5, # Saturation limits\n", + " 'alpha': 10, # Actuator time constant\n", + "}\n", + "\n", + "def actuator_update(t, x, u, params):\n", + " # Get parameter values\n", + " alpha = params['alpha']\n", + " umax = params['umax']\n", + "\n", + " # Clip the input\n", + " u_clip = np.clip(u, -umax, umax)\n", + "\n", + " # Actuator dynamics\n", + " return -alpha * x + alpha * u_clip\n", + "\n", + "actuator = ct.nlsys(\n", + " actuator_update, None, params=actuator_params,\n", + " inputs='u', outputs='tau', states=1, name='actuator')\n", + "\n", + "system = ct.series(actuator, servomech)\n", + "system.name = 'system' # missing feature\n", + "print(system)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "8HYyndF_saE0" + }, + "source": [ + "### Linearization\n", + "\n", + "To study the open loop dynamics of the system, we compute the linearization of the dynamics about the equilibrium point corresponding to $\\theta_\\text{e} = 15^\\circ$." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Convert the equilibrium angle to radians\n", + "theta_e = (15 / 180) * np.pi\n", + "\n", + "# Compute the input required to hold this position\n", + "u_e = servomech.params['k'] * servomech.params['r'] * np.sin(theta_e)\n", + "print(\"Equilibrium torque = %g\" % u_e)\n", + "\n", + "# Linearize the system dynamics about the equilibrium point\n", + "P = ct.tf(\n", + " system.linearize([0, theta_e, 0], u_e, copy_names=True)[0, 0])\n", + "P.name = 'P' # bug\n", + "print(P, end=\"\\n\\n\")\n", + "\n", + "ct.bode_plot(P)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "J1dwXObJSKp-" + }, + "source": [ + "## Ziegler-Nichols tuning\n", + "\n", + "Ziegler-Nichols tuning provides a method for choosing the gains of a PID controller that give reasonable closed loop response. More information can be found in [Feedback Systems](https://fbswiki.org/wiki/index.php/Feedback_Systems:_An_Introduction_for_Scientists_and_Engineers) (FBS2e), Section 11.3.\n", + "\n", + "We show here the figures and tables that we will use (from FBS2e):\n", + "\n", + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "To use the Ziegler-Nichols turning rules, we plot the step response, compute the parameters (shown in the figure), and then apply the formulas in the table:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Plot the step response\n", + "resp = ct.step_response(P)\n", + "resp.plot()\n", + "\n", + "# Find the point of the steepest slope\n", + "slope = np.diff(resp.outputs) / np.diff(resp.time)\n", + "mxi = np.argmax(slope)\n", + "mx_time = resp.time[mxi]\n", + "mx_out= resp.outputs[mxi]\n", + "plt.plot(resp.time[mxi], resp.outputs[mxi], 'ro')\n", + "\n", + "# Draw a line going through the point of max slope\n", + "mx_slope = slope[mxi]\n", + "timepts = np.linspace(0, mx_time*2)\n", + "plt.plot(timepts, mx_out + mx_slope * (timepts - mx_time), 'r-')\n", + "\n", + "# Solve for the Ziegler-Nichols parameters\n", + "a = -(mx_out - mx_slope * mx_time) # Find the value of the line at t = 0\n", + "tau = a / mx_slope # Solve a + mx_slope * tau = 0\n", + "print(f\"{a=}, {tau=}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can then construct a controller using the parameters:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "s = ct.tf('s')\n", + "\n", + "# Proportional controller\n", + "kp = 1/a\n", + "ctrl_zn_P = kp\n", + "\n", + "# PI controller\n", + "kp = 0.9/a\n", + "Ti = tau/0.3; ki = kp/Ti\n", + "ctrl_zn_PI = kp + ki / s\n", + "\n", + "# PID controller\n", + "kp = 1.2/a\n", + "Ti = tau/0.5; ki = kp/Ti\n", + "Td = 0.5 * tau; kd = kp * Td\n", + "ctrl_zn_PID = kp + ki / s + kd * s\n", + "\n", + "print(ctrl_zn_PID)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Compute the closed loop systems and plots the step and\n", + "# frequency responses.\n", + "\n", + "clsys_zn_P = ct.feedback(P * ctrl_zn_P)\n", + "clsys_zn_P.name = 'P'\n", + "\n", + "clsys_zn_PI = ct.feedback(P * ctrl_zn_PI)\n", + "clsys_zn_PI.name = 'PI'\n", + "\n", + "clsys_zn_PID = ct.feedback(P * ctrl_zn_PID)\n", + "clsys_zn_PID.name = 'PID'\n", + "\n", + "# Plot the step responses\n", + "resp.sysname = 'open_loop'\n", + "resp.plot(color='k')\n", + "\n", + "stepresp_zn_P = ct.step_response(clsys_zn_P)\n", + "stepresp_zn_P.plot(color='b')\n", + "\n", + "stepresp_zn_PI = ct.step_response(clsys_zn_PI)\n", + "stepresp_zn_PI.plot(color='r')\n", + "\n", + "stepresp_zn_PID = ct.step_response(clsys_zn_PID)\n", + "stepresp_zn_PID.plot(color='g')\n", + "plt.legend()\n", + "\n", + "plt.figure()\n", + "ct.bode_plot([clsys_zn_P, clsys_zn_PI, clsys_zn_PID]);" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "6iZwB2WEeg8S" + }, + "source": [ + "## Loop shaping\n", + "\n", + "A better design can be obtained by looking at the loop transfer function and adjusting the controller parameters to give a loop shape that will give closed loop properties. We show the steps for such a design here:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Design parameters\n", + "Td = 1 # Set to gain crossover frequency\n", + "Ti = Td * 10 # Set to low frequency region\n", + "kp = 500 # Tune to get desired bandwith\n", + "\n", + "# Updated gains\n", + "kp = 150\n", + "Ti = Td * 5; kp = 150\n", + "\n", + "# Compute controller parmeters\n", + "ki = kp/Ti\n", + "kd = kp * Td\n", + "\n", + "# Controller transfer function\n", + "ctrl_shape = kp + ki / s + kd * s\n", + "ctrl_shape.name = 'C'\n", + "\n", + "# Frequency response (open loop) - use this to help tune your design\n", + "ltf_shape = P * ctrl_shape\n", + "ltf_shape.name = 'L'\n", + "\n", + "ct.frequency_response([P, ctrl_shape]).plot()\n", + "ct.frequency_response(ltf_shape).plot(margins=True);" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Compute the closed loop systemsand plot the step response\n", + "# and Nyquist plot (to make sure margins look OK)\n", + "\n", + "# Create the closed loop systems\n", + "clsys_shape = ct.feedback(P * ctrl_shape)\n", + "clsys_shape.name = 'loopshape'\n", + "\n", + "# Step response\n", + "plt.subplot(2, 1, 1)\n", + "stepresp_shape = ct.step_response(clsys_shape)\n", + "stepresp_shape.plot(color='b')\n", + "plt.plot([0, stepresp_shape.time[-1]], [1, 1], 'k--')\n", + "\n", + "# Compare to the ZN controller\n", + "ax = plt.subplot(2, 1, 2)\n", + "ct.step_response(clsys_shape, stepresp_zn_PID.time).plot(\n", + " color='b', ax=np.array([[ax]]))\n", + "stepresp_zn_PID.plot(color='g', ax=np.array([[ax]]))\n", + "ax.plot([0, stepresp_shape.time[-1]], [1, 1], 'k--')\n", + "\n", + "# Nyquist plot\n", + "plt.figure()\n", + "ct.nyquist([ltf_shape])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see that the loop shaping controller has better step response (faster rise and settling time, less overshoot)." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "GyXQXykafzWs" + }, + "source": [ + "### Gang of Four\n", + "\n", + "When designing a controller, it is important to look at all of the input/output responses, not just the response from reference to output (which is what the step response above focuses on). \n", + "\n", + "In the frequency domain, the Gang of 4 plots provide useful information on all (important) input/output pairs:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ct.gangof4(P, ctrl_shape)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "These all look pretty resonable, except that the transfer function from the reference $r$ to the system input $u$ is getting large at high frequency. This occurs because we did not filter the derivative on the PID controller, so high frequency components of the reference signal (or the measurement noise!) get amplified. We will fix this in the more advanced controller below." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "uFO3wiWXhBAK" + }, + "source": [ + "## Anti-windup + derivative filtering\n", + "\n", + "In addition to the amplification of high frequency signals due to the derivative term, another practical consideration in the use of PID controllers is integrator windup. Integrator windup occurs when there are limits on the control inputs so that the error signal may not descrease quickly. This causes the integral term in the PID controller to see an error for a long period of time, and the resulting integration of the error must be offset by making the error have opposite sign for some period of time. This is often undesireable.\n", + "\n", + "To see how to address both amplification of noise due to the derivative term and integrator windup effects in the presence of input constraints, we now implement PID controller with anti-windup and derivative filtering, as shown in the following figure (see also Figure 11.11 in [FBS2e](https://fbswiki.org/wiki/index.php/Feedback_Systems:_An_Introduction_for_Scientists_and_Engineers)):\n", + "\n", + "
\n", + "\n", + "
\n", + "\n", + "### Low pass filter\n", + "\n", + "The low pass filtered derivative has transfer function\n", + "\n", + "$$\n", + "G(s) = \\frac{a\\, s}{s + a}.\n", + "$$\n", + "\n", + "This can be implemented using the differential equation\n", + "\n", + "$$\n", + "\\dot \\xi = -a \\xi + a y, \\qquad\n", + "\\eta = -a \\xi + a y.\n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ctrl_params = {'kaw': 5 * ki, 'a': 10/Td}\n", + "\n", + "def ctrl_update(t, x, u, params):\n", + " # Get the parameter values\n", + " kaw = params['kaw']\n", + " a = params['a']\n", + " umax_ctrl = params.get('umax_ctrl', actuator.params['umax'])\n", + "\n", + " # Extract the signals into more familiar variable names\n", + " r, y = u[0], u[1]\n", + " z = x[0] # integral error\n", + " xi = x[1] # filtered derivative\n", + "\n", + " # Compute the controller components\n", + " u_prop = kp * (r - y)\n", + " u_int = z\n", + " ydt_f = -a * xi + a * (-y)\n", + " u_der = kd * ydt_f\n", + "\n", + " # Compute the commanded and saturated outputs\n", + " u_cmd = u_prop + u_int + u_der\n", + " u_sat = np.clip(u_cmd, -umax_ctrl, umax_ctrl)\n", + "\n", + " dz = ki * (r - y) + kaw * (u_sat - u_cmd)\n", + " dxi = -a * xi + a * (-y)\n", + " return np.array([dz, dxi])\n", + "\n", + "def ctrl_output(t, x, u, params):\n", + " # Get the parameter values\n", + " kaw = params['kaw']\n", + " a = params['a']\n", + " umax_ctrl = params.get('umax_ctrl', params['umax'])\n", + "\n", + " # Extract the signals into more familiar variable names\n", + " r, y = u[0], u[1]\n", + " z = x[0] # integral error\n", + " xi = x[1] # filtered derivative\n", + "\n", + " # Compute the controller components\n", + " u_prop = kp * (r - y)\n", + " u_int = z\n", + " ydt_f = -a * xi + a * (-y)\n", + " u_der = kd * ydt_f\n", + "\n", + " # Compute the commanded and saturated outputs\n", + " u_cmd = u_prop + u_int + u_der\n", + " u_sat = np.clip(u_cmd, -umax_ctrl, umax_ctrl)\n", + "\n", + " return u_cmd\n", + "\n", + "ctrl = ct.nlsys(\n", + " ctrl_update, ctrl_output, name='ctrl', params=ctrl_params,\n", + " inputs=['r', 'y'], outputs=['u'], states=2)\n", + "\n", + "clsys = ct.interconnect(\n", + " [servomech, actuator, ctrl], name='clsys',\n", + " inputs=['r'], outputs=['y', 'tau'])\n", + "print(clsys)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Plot the step responses for the following cases:\n", + "#\n", + "# 'linear': the original linear step response (no actuation limits)\n", + "# 'clipped': PID controller with input limits, but not anti-windup\n", + "# 'anti-windup': PID controller with anti-windup compensation\n", + "\n", + "# Use more time points to get smoother response curves\n", + "timepts = np.linspace(0, 2*stepresp_shape.time[-1], 500)\n", + "\n", + "# Compute the response for the individual cases\n", + "stepsize = theta_e / 2\n", + "resp_ln = ct.input_output_response(\n", + " clsys, timepts, stepsize, params={'umax': np.inf, 'kaw': 0, 'a': 1e3})\n", + "resp_cl = ct.input_output_response(\n", + " clsys, timepts, stepsize, params={'umax': 5, 'kaw': 0, 'a': 100})\n", + "resp_aw = ct.input_output_response(\n", + " clsys, timepts, stepsize, params={'umax': 5, 'kaw': 2*ki, 'a': 100})\n", + "\n", + "# Plot the time responses in a single plot\n", + "ct.time_response_plot(resp_ln, color='b', plot_inputs=False, label=\"linear\")\n", + "ct.time_response_plot(resp_cl, color='r', plot_inputs=False, label=\"clipped\")\n", + "ct.time_response_plot(resp_aw, color='g', plot_inputs=False, label=\"anti-windup\");" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "DZS7v0EmdK3H" + }, + "source": [ + "The response of the anti-windup compensator is very sluggish, indicating that we may be setting $k_\\text{aw}$ too high." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "resp_aw = ct.input_output_response(\n", + " clsys, timepts, stepsize, params={'umax': 5, 'kaw': 0.05 * ki, 'a': 100})\n", + "\n", + "# Plot the time responses in a single plot\n", + "ct.time_response_plot(resp_ln, color='b', plot_inputs=False, label=\"linear\")\n", + "ct.time_response_plot(resp_cl, color='r', plot_inputs=False, label=\"clipped\")\n", + "ct.time_response_plot(resp_aw, color='g', plot_inputs=False, label=\"anti-windup\");" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "pCp_pu0Kh62b" + }, + "source": [ + "This gives a much better response, though the value of $k_\\text{aw}$ falls well outside the range of [2, 10]. One reason for this is that $k_\\text{aw}$ acts on the inputs, $\\tau$, which are roughly 100 larger than the size of the outputs, $y$, as seen in the above plots." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "1FVGh3k0Y7vB" + }, + "source": [ + "We can now see if this affects the Gang of Four in the expected way:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "C = ctrl.linearize([0, 0], 0, params=resp_aw.params)[0, 1]\n", + "ct.gangof4(P, C);" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "vT1WfhRHb2ZU" + }, + "source": [ + "Note that in the transfer function from $r$ to $u$ (which is the same as the transfer function from $e$ to $u$, the high frequency gain is now bounded. (We could make it go back down by using a second order filter.)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/examples/cds112-L1_python-control.ipynb b/examples/cds112-L1_python-control.ipynb new file mode 100644 index 000000000..140f32074 --- /dev/null +++ b/examples/cds112-L1_python-control.ipynb @@ -0,0 +1,444 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "numerous-rochester", + "metadata": {}, + "source": [ + "# Introduction to the Python Control Systems Library (python-control)\n", + "\n", + "## Input/Output Systems" + ] + }, + { + "cell_type": "markdown", + "id": "69bdd3af", + "metadata": {}, + "source": [ + "Richard M. Murray, 13 Nov 2021 (updated 7 Jul 2024)\n", + "\n", + "This notebook contains an introduction to the basic operations in the Python Control Systems Library (python-control), a Python package for control system design. This notebook is focused on state space control design for a kinematic car, including trajectory generation and gain-scheduled feedback control. This illustrates the use of the input/output (I/O) system class, which can be used to construct models for nonlinear control systems." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "macro-vietnamese", + "metadata": {}, + "outputs": [], + "source": [ + "# Import the packages needed for the examples included in this notebook\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import control as ct\n", + "print(\"python-control version:\", ct.__version__)" + ] + }, + { + "cell_type": "markdown", + "id": "distinct-communist", + "metadata": {}, + "source": [ + "### Installation hints\n", + "\n", + "If you get an error importing the `control` package, it may be that it is not in your current Python path. You can fix this by setting the PYTHONPATH environment variable to include the directory where the python-control package is located. If you are invoking Jupyter from the command line, try using a command of the form\n", + "\n", + " PYTHONPATH=/path/to/control jupyter notebook\n", + " \n", + "If you are using [Google Colab](https://colab.research.google.com), use the following command at the top of the notebook to install the `control` package:\n", + "\n", + " !pip install control\n", + " \n", + "For the examples below, you will need version 0.10.0 or higher of the python-control toolbox. You can find the version number using the command\n", + "\n", + " print(ct.__version__)" + ] + }, + { + "cell_type": "markdown", + "id": "5dad04d8", + "metadata": {}, + "source": [ + "### More information on Python, NumPy, python-control\n", + "\n", + "* [Python tutorial](https://docs.python.org/3/tutorial/)\n", + "* [NumPy tutorial](https://numpy.org/doc/stable/user/quickstart.html)\n", + "* [NumPy for MATLAB users](https://numpy.org/doc/stable/user/numpy-for-matlab-users.html), \n", + "* [Python Control Systems Library (python-control) documentation](https://python-control.readthedocs.io/en/latest/)" + ] + }, + { + "cell_type": "markdown", + "id": "novel-geology", + "metadata": {}, + "source": [ + "## System Definiton\n", + "\n", + "We now define the dynamics of the system that we are going to use for the control design. The dynamics of the system will be of the form\n", + "\n", + "$$\n", + "\\dot x = f(x, u), \\qquad y = h(x, u)\n", + "$$\n", + "\n", + "where $x$ is the state vector for the system, $u$ represents the vector of inputs, and $y$ represents the vector of outputs.\n", + "\n", + "The python-control package allows definition of input/output systems using the `InputOutputSystem` class and its various subclasess, including the `NonlinearIOSystem` class that we use here. A `NonlinearIOSystem` object is created by defining the update law ($f(x, u)$) and the output map ($h(x, u)$), and then calling the factory function `ct.nlsys`.\n", + "\n", + "For the example in this notebook, we will be controlling the steering of a vehicle, using a \"bicycle\" model for the dynamics of the vehicle. A more complete description of the dynamics of this system are available in [Example 3.11](https://fbswiki.org/wiki/index.php/System_Modeling) of [_Feedback Systems_](https://fbswiki.org/wiki/index.php/FBS) by Astrom and Murray (2020)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "sufficient-douglas", + "metadata": {}, + "outputs": [], + "source": [ + "# Define the update rule for the system, f(x, u)\n", + "# States: x, y, theta (postion and angle of the center of mass)\n", + "# Inputs: v (forward velocity), delta (steering angle)\n", + "def vehicle_update(t, x, u, params):\n", + " # Get the parameters for the model\n", + " a = params.get('refoffset', 1.5) # offset to vehicle reference point\n", + " b = params.get('wheelbase', 3.) # vehicle wheelbase\n", + " maxsteer = params.get('maxsteer', 0.5) # max steering angle (rad)\n", + "\n", + " # Saturate the steering input\n", + " delta = np.clip(u[1], -maxsteer, maxsteer)\n", + " alpha = np.arctan2(a * np.tan(delta), b)\n", + "\n", + " # Return the derivative of the state\n", + " return np.array([\n", + " u[0] * np.cos(x[2] + alpha), # xdot = cos(theta + alpha) v\n", + " u[0] * np.sin(x[2] + alpha), # ydot = sin(theta + alpha) v\n", + " (u[0] / a) * np.sin(alpha) # thdot = v sin(alpha) / a\n", + " ])\n", + "\n", + "# Define the readout map for the system, h(x, u)\n", + "# Outputs: x, y (planar position of the center of mass)\n", + "def vehicle_output(t, x, u, params):\n", + " return x\n", + "\n", + "# Default vehicle parameters (including nominal velocity)\n", + "vehicle_params={'refoffset': 1.5, 'wheelbase': 3, 'velocity': 15, \n", + " 'maxsteer': 0.5}\n", + "\n", + "# Define the vehicle steering dynamics as an input/output system\n", + "vehicle = ct.nlsys(\n", + " vehicle_update, vehicle_output, states=3, name='vehicle',\n", + " inputs=['v', 'delta'], outputs=['x', 'y', 'theta'], params=vehicle_params)" + ] + }, + { + "cell_type": "markdown", + "id": "intellectual-democrat", + "metadata": {}, + "source": [ + "## Open loop simulation\n", + "\n", + "After these operations, the `vehicle` object references the nonlinear model for the system. This system can be simulated to compute a trajectory for the system. Here we command a velocity of 10 m/s and turn the wheel back and forth at one Hertz." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "likely-hindu", + "metadata": {}, + "outputs": [], + "source": [ + "# Define the time interval that we want to use for the simualation\n", + "timepts = np.linspace(0, 10, 1000)\n", + "\n", + "# Define the inputs\n", + "U = [\n", + " 10 * np.ones_like(timepts), # velocity\n", + " 0.1 * np.sin(timepts * 2*np.pi) # steering angle\n", + "]\n", + "\n", + "# Simulate the system dynamics, starting from the origin\n", + "response = ct.input_output_response(vehicle, timepts, U, 0)\n", + "time, outputs, inputs = response.time, response.outputs, response.inputs" + ] + }, + { + "cell_type": "markdown", + "id": "dutch-charm", + "metadata": {}, + "source": [ + "We can plot the results using standard `matplotlib` commands:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "piano-algeria", + "metadata": {}, + "outputs": [], + "source": [ + "# Create a figure to plot the results\n", + "fig, ax = plt.subplots(2, 1)\n", + "\n", + "# Plot the results in the xy plane\n", + "ax[0].plot(outputs[0], outputs[1])\n", + "ax[0].set_xlabel(\"$x$ [m]\")\n", + "ax[0].set_ylabel(\"$y$ [m]\")\n", + "\n", + "# Plot the inputs\n", + "ax[1].plot(timepts, U[0])\n", + "ax[1].set_ylim(0, 12)\n", + "ax[1].set_xlabel(\"Time $t$ [s]\")\n", + "ax[1].set_ylabel(\"Velocity $v$ [m/s]\")\n", + "ax[1].yaxis.label.set_color('blue')\n", + "\n", + "rightax = ax[1].twinx() # Create an axis in the right\n", + "rightax.plot(timepts, U[1], color='red')\n", + "rightax.set_ylim(None, 0.5)\n", + "rightax.set_ylabel(r\"Steering angle $\\phi$ [rad]\")\n", + "rightax.yaxis.label.set_color('red')\n", + "\n", + "fig.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "id": "alone-worry", + "metadata": {}, + "source": [ + "Notice that there is a small drift in the $y$ position despite the fact that the steering wheel is moved back and forth symmetrically around zero. Exercise: explain what might be happening." + ] + }, + { + "cell_type": "markdown", + "id": "portable-rubber", + "metadata": {}, + "source": [ + "## Linearize the system around a trajectory\n", + "\n", + "We choose a straight path along the $x$ axis at a speed of 10 m/s as our desired trajectory and then linearize the dynamics around the initial point in that trajectory." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "surprising-algorithm", + "metadata": {}, + "outputs": [], + "source": [ + "# Create the desired trajectory \n", + "Ud = np.array([10 * np.ones_like(timepts), np.zeros_like(timepts)])\n", + "Xd = np.array([10 * timepts, 0 * timepts, np.zeros_like(timepts)])\n", + "\n", + "# Now linizearize the system around this trajectory\n", + "linsys = vehicle.linearize(Xd[:, 0], Ud[:, 0])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "protecting-committee", + "metadata": {}, + "outputs": [], + "source": [ + "# Check on the eigenvalues of the open loop system\n", + "np.linalg.eigvals(linsys.A)" + ] + }, + { + "cell_type": "markdown", + "id": "trying-stereo", + "metadata": {}, + "source": [ + "We see that all eigenvalues are zero, corresponding to a single integrator in the $x$ (longitudinal) direction and a double integrator in the $y$ (lateral) direction." + ] + }, + { + "cell_type": "markdown", + "id": "pressed-delta", + "metadata": {}, + "source": [ + "## Compute a state space (LQR) control law\n", + "\n", + "We can now compute a feedback controller around the trajectory. We choose a simple LQR controller here, but any method can be used." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "auburn-caribbean", + "metadata": {}, + "outputs": [], + "source": [ + "# Compute LQR controller\n", + "K, S, E = ct.lqr(linsys, np.diag([1, 1, 1]), np.diag([1, 1]))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "independent-lafayette", + "metadata": {}, + "outputs": [], + "source": [ + "# Check on the eigenvalues of the closed loop system\n", + "np.linalg.eigvals(linsys.A - linsys.B @ K)" + ] + }, + { + "cell_type": "markdown", + "id": "handmade-moral", + "metadata": {}, + "source": [ + "The closed loop eigenvalues have negative real part, so the closed loop (linear) system will be stable about the operating trajectory." + ] + }, + { + "cell_type": "markdown", + "id": "handy-virgin", + "metadata": {}, + "source": [ + "## Create a controller with feedforward and feedback\n", + "\n", + "We now create an I/O system representing the control law. The controller takes as an input the desired state space trajectory $x_\\text{d}$ and the nominal input $u_\\text{d}$. It outputs the control law\n", + "\n", + "$$\n", + "u = u_\\text{d} - K(x - x_\\text{d}).\n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "negative-scope", + "metadata": {}, + "outputs": [], + "source": [ + "# Define the output rule for the controller\n", + "# States: none (=> no update rule required)\n", + "# Inputs: z = [xd, ud, x]\n", + "# Outputs: v (forward velocity), delta (steering angle)\n", + "def control_output(t, x, z, params):\n", + " # Get the parameters for the model\n", + " K = params.get('K', np.zeros((2, 3))) # nominal gain\n", + " \n", + " # Split up the input to the controller into the desired state and nominal input\n", + " xd_vec = z[0:3] # desired state ('xd', 'yd', 'thetad')\n", + " ud_vec = z[3:5] # nominal input ('vd', 'deltad')\n", + " x_vec = z[5:8] # current state ('x', 'y', 'theta')\n", + " \n", + " # Compute the control law\n", + " return ud_vec - K @ (x_vec - xd_vec)\n", + "\n", + "# Define the controller system\n", + "control = ct.nlsys(\n", + " None, control_output, name='control',\n", + " inputs=['xd', 'yd', 'thetad', 'vd', 'deltad', 'x', 'y', 'theta'], \n", + " outputs=['v', 'delta'], params={'K': K})" + ] + }, + { + "cell_type": "markdown", + "id": "affected-motor", + "metadata": {}, + "source": [ + "Because we have named the signals in both the vehicle model and the controller in a compatible way, we can use the autoconnect feature of the `interconnect()` function to create the closed loop system." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "stock-regression", + "metadata": {}, + "outputs": [], + "source": [ + "# Build the closed loop system\n", + "vehicle_closed = ct.interconnect(\n", + " (vehicle, control),\n", + " inputs=['xd', 'yd', 'thetad', 'vd', 'deltad'],\n", + " outputs=['x', 'y', 'theta']\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "hispanic-monroe", + "metadata": {}, + "source": [ + "## Closed loop simulation\n", + "\n", + "We now command the system to follow in trajectory and use the linear controller to correct for any errors. \n", + "\n", + "The desired trajectory is a given by a longitudinal position that tracks a velocity of 10 m/s for the first 5 seconds and then increases to 12 m/s and a lateral position that varies sinusoidally by $\\pm 0.5$ m around the centerline. The nominal inputs are not modified, so that feedback is required to obtained proper trajectory tracking." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "american-return", + "metadata": {}, + "outputs": [], + "source": [ + "Xd = np.array([\n", + " 10 * timepts + 2 * (timepts-5) * (timepts > 5), \n", + " 0.5 * np.sin(timepts * 2*np.pi), \n", + " np.zeros_like(timepts)\n", + "])\n", + "\n", + "Ud = np.array([10 * np.ones_like(timepts), np.zeros_like(timepts)])\n", + "\n", + "# Simulate the system dynamics, starting from the origin\n", + "resp = ct.input_output_response(\n", + " vehicle_closed, timepts, np.vstack((Xd, Ud)), 0)\n", + "time, outputs = resp.time, resp.outputs" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "indirect-longitude", + "metadata": {}, + "outputs": [], + "source": [ + "# Plot the results in the xy plane\n", + "plt.plot(Xd[0], Xd[1], 'b--') # desired trajectory\n", + "plt.plot(outputs[0], outputs[1]) # actual trajectory\n", + "plt.xlabel(\"$x$ [m]\")\n", + "plt.ylabel(\"$y$ [m]\")\n", + "plt.ylim(-1, 2)\n", + "\n", + "# Add a legend\n", + "plt.legend(['desired', 'actual'], loc='upper left')\n", + "\n", + "# Compute and plot the velocity\n", + "rightax = plt.twinx() # Create an axis in the right\n", + "rightax.plot(Xd[0, :-1], np.diff(Xd[0]) / np.diff(timepts), 'r--')\n", + "rightax.plot(outputs[0, :-1], np.diff(outputs[0]) / np.diff(timepts), 'r-')\n", + "rightax.set_ylim(0, 13)\n", + "rightax.set_ylabel(\"$x$ velocity [m/s]\")\n", + "rightax.yaxis.label.set_color('red')" + ] + }, + { + "cell_type": "markdown", + "id": "weighted-directory", + "metadata": {}, + "source": [ + "We see that there is a small error in each axis. By adjusting the weights in the LQR controller we can adjust the steady state error (try it!)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f31dd981-161a-49f0-a637-84128f7ec5ff", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/examples/cds112-L2a_flatness.ipynb b/examples/cds112-L2a_flatness.ipynb new file mode 100644 index 000000000..2b7cfb3a4 --- /dev/null +++ b/examples/cds112-L2a_flatness.ipynb @@ -0,0 +1,490 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "meaning-hypothetical", + "metadata": {}, + "source": [ + "## Differential Flatness\n", + "\n", + "##### Richard M. Murray, 13 Nov 2021 (updated 7 Jul 2024)\n", + "\n", + "This notebook contains an example of using differential flatness as a mechanism for trajectory generation for a nonlinear control system. A differentially flat system is defined by creating an object using the `FlatSystem` class, which has member functions for mapping the system state and input into and out of flat coordinates. The `point_to_point()` function can be used to create a trajectory between two endpoints, written in terms of a set of basis functions defined using the `BasisFamily` class. The resulting trajectory is return as a `SystemTrajectory` object and can be evaluated using the `eval()` member function. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "historic-barbados", + "metadata": {}, + "outputs": [], + "source": [ + "# Import the packages needed for the examples included in this notebook\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import control as ct\n", + "import control.flatsys as fs\n", + "import control.optimal as opt\n", + "import time" + ] + }, + { + "cell_type": "markdown", + "id": "309d3272", + "metadata": {}, + "source": [ + "## Example: bicycle model\n", + "\n", + "To illustrate the methods of generating trajectories using differential flatness, we make use of a simple model for a vehicle navigating in the plane, known as the \"bicycle model\". The kinematics of this vehicle can be written in terms of the contact point $(x, y)$ and the angle $\\theta$ of the vehicle with respect to the horizontal axis:\n", + "\n", + "
\n", + "\n", + "\n", + "\n", + "
\n", + "\n", + " \n", + " \n", + "\n", + "
\n", + "$$\n", + "\\begin{aligned}\n", + " \\dot x &= \\cos\\theta\\, v \\\\\n", + " \\dot y &= \\sin\\theta\\, v \\\\\n", + " \\dot\\theta &= \\frac{v}{l} \\tan \\delta\n", + "\\end{aligned}\n", + "$$\n", + "
\n", + "\n", + "The input $v$ represents the velocity of the vehicle and the input $\\delta$ represents the turning rate. The parameter $l$ is the wheelbase." + ] + }, + { + "cell_type": "markdown", + "id": "35efac80", + "metadata": {}, + "source": [ + "We will generate trajectories for this system that correspond to a \"lane change\", in which we travel longitudinally at a fixed speed for approximately 40 meters, while moving from the right to the left by a distance of 4 meters.\n", + "\n", + "It will be convenient to define a function that we will use to plot the results in a uniform way. In addition to the subplot, we also change the size of the figure to make the figure wider." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "involved-riding", + "metadata": {}, + "outputs": [], + "source": [ + "# Plot the trajectory in xy coordinates\n", + "def plot_motion(t, x, ud):\n", + " # Set the size of the figure\n", + " # plt.figure(figsize=(10, 6))\n", + "\n", + " # Top plot: xy trajectory\n", + " plt.subplot(2, 1, 1)\n", + " plt.plot(x[0], x[1])\n", + " plt.xlabel('x [m]')\n", + " plt.ylabel('y [m]')\n", + " plt.axis([x0[0], xf[0], x0[1]-1, xf[1]+1])\n", + "\n", + " # Time traces of the state and input\n", + " plt.subplot(2, 4, 5)\n", + " plt.plot(t, x[1])\n", + " plt.ylabel('y [m]')\n", + "\n", + " plt.subplot(2, 4, 6)\n", + " plt.plot(t, x[2])\n", + " plt.ylabel('theta [rad]')\n", + "\n", + " plt.subplot(2, 4, 7)\n", + " plt.plot(t, ud[0])\n", + " plt.xlabel(\"Time t [sec]\")\n", + " plt.ylabel(\"v [m/s]\")\n", + " plt.axis([0, Tf, u0[0] - 1, uf[0] + 1])\n", + "\n", + " plt.subplot(2, 4, 8)\n", + " plt.plot(t, ud[1])\n", + " plt.xlabel(\"Time t [sec]\")\n", + " plt.ylabel(r\"$\\delta$ [rad]\")\n", + " plt.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "id": "3dc0d2bf", + "metadata": {}, + "source": [ + "## Flat system mappings\n", + "\n", + "To define a flat system, we have to define the functions that take the state and compute the flat \"flag\" (flat outputs and their derivatives) and that take the flat flag and return the state and input.\n", + "\n", + "The `forward()` method computes the flat flag given a state and input:\n", + "```\n", + " zflag = sys.forward(x, u)\n", + "```\n", + "The `reverse()` method computes the state and input given the flat flag:\n", + "```\n", + " x, u = sys.reverse(zflag)\n", + "```\n", + "The flag $\\bar z$ is implemented as a list of flat outputs $z_i$ and\n", + "their derivatives up to order $q_i$:\n", + "\n", + "         `zflag[i][j]` = $z_i^{(j)}$\n", + "\n", + "The number of flat outputs must match the number of system inputs.\n", + "\n", + "In addition, a flat system is an input/output system and so we define and update function ($f(x, u)$) and output (use `None` to get the full state)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "above-venezuela", + "metadata": {}, + "outputs": [], + "source": [ + "# Function to take states, inputs and return the flat flag\n", + "def bicycle_flat_forward(x, u, params={}):\n", + " # Get the parameter values\n", + " b = params.get('wheelbase', 3.)\n", + "\n", + " # Create a list of arrays to store the flat output and its derivatives\n", + " zflag = [np.zeros(3), np.zeros(3)]\n", + "\n", + " # Flat output is the x, y position of the rear wheels\n", + " zflag[0][0] = x[0]\n", + " zflag[1][0] = x[1]\n", + "\n", + " # First derivatives of the flat output\n", + " zflag[0][1] = u[0] * np.cos(x[2]) # dx/dt\n", + " zflag[1][1] = u[0] * np.sin(x[2]) # dy/dt\n", + "\n", + " # First derivative of the angle\n", + " thdot = (u[0]/b) * np.tan(u[1])\n", + "\n", + " # Second derivatives of the flat output (setting vdot = 0)\n", + " zflag[0][2] = -u[0] * thdot * np.sin(x[2])\n", + " zflag[1][2] = u[0] * thdot * np.cos(x[2])\n", + "\n", + " return zflag\n", + "\n", + "# Function to take the flat flag and return states, inputs\n", + "def bicycle_flat_reverse(zflag, params={}):\n", + " # Get the parameter values\n", + " b = params.get('wheelbase', 3.)\n", + "\n", + " # Create a vector to store the state and inputs\n", + " x = np.zeros(3)\n", + " u = np.zeros(2)\n", + "\n", + " # Given the flat variables, solve for the state\n", + " x[0] = zflag[0][0] # x position\n", + " x[1] = zflag[1][0] # y position\n", + " x[2] = np.arctan2(zflag[1][1], zflag[0][1]) # tan(theta) = ydot/xdot\n", + "\n", + " # And next solve for the inputs\n", + " u[0] = zflag[0][1] * np.cos(x[2]) + zflag[1][1] * np.sin(x[2])\n", + " thdot_v = zflag[1][2] * np.cos(x[2]) - zflag[0][2] * np.sin(x[2])\n", + " u[1] = np.arctan2(thdot_v, u[0]**2 / b)\n", + "\n", + " return x, u\n", + "\n", + "# Function to compute the RHS of the system dynamics\n", + "def bicycle_update(t, x, u, params):\n", + " b = params.get('wheelbase', 3.) # get parameter values\n", + " dx = np.array([\n", + " np.cos(x[2]) * u[0],\n", + " np.sin(x[2]) * u[0],\n", + " (u[0]/b) * np.tan(u[1])\n", + " ])\n", + " return dx\n", + "\n", + "# Return the entire state as output (instead of default flat outputs)\n", + "def bicycle_output(t, x, u, params):\n", + " return x\n", + "\n", + "# Create differentially flat input/output system\n", + "bicycle_flat = fs.FlatSystem(\n", + " bicycle_flat_forward, bicycle_flat_reverse, \n", + " bicycle_update, bicycle_output,\n", + " inputs=('v', 'delta'), outputs=('x', 'y', 'theta'),\n", + " states=('x', 'y', 'theta'), name='bicycle_model')\n", + "\n", + "print(bicycle_flat)" + ] + }, + { + "cell_type": "markdown", + "id": "75cb8cf6", + "metadata": {}, + "source": [ + "## Point to point trajectory generation\n", + "\n", + "In addition to the flat system description, a set of basis functions\n", + "$\\phi_i(t)$ must be chosen. The `BasisFamily` class is used to\n", + "represent the basis functions. A polynomial basis function of the form\n", + "$1$, $t$, $t^2$, $\\ldots$ can be computed using the `PolyFamily` class,\n", + "which is initialized by passing the desired order of the polynomial\n", + "basis set:\n", + "```\n", + "polybasis = control.flatsys.PolyFamily(N)\n", + "```\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "feef608a", + "metadata": {}, + "outputs": [], + "source": [ + "print(fs.BasisFamily.__doc__)\n", + "print(fs.PolyFamily.__doc__)\n", + "\n", + "# Define a set of basis functions to use for the trajectories\n", + "poly = fs.PolyFamily(6)\n", + "\n", + "# Plot out the basis functions\n", + "t = np.linspace(0, 1.5)\n", + "for k in range(poly.N):\n", + " plt.plot(t, poly(k, t), label=f'k = {k}')\n", + " \n", + "plt.legend()\n", + "plt.title(\"Polynomial basis functions\")\n", + "plt.xlabel(\"Time $t$\")\n", + "plt.ylabel(r\"$\\psi_i(t)$\");" + ] + }, + { + "cell_type": "markdown", + "id": "7aacca93", + "metadata": {}, + "source": [ + "### Approach 1: point to point solution, no cost or constraints\n", + "\n", + "Once the system and basis function have been defined, the\n", + "`point_to_point()` function can be used to compute a trajectory\n", + "between initial and final states and inputs:\n", + "```\n", + "traj = control.flatsys.point_to_point(sys, Tf, x0, u0, xf, uf, basis=polybasis)\n", + "```\n", + "The returned object has class `SystemTrajectory` and can be used\n", + "to compute the state and input trajectory between the initial and final\n", + "condition:\n", + "```\n", + "xd, ud = traj.eval(timepts)\n", + "```\n", + "where `timepts` is a list of times on which the trajectory should be\n", + "evaluated (e.g., `timepts = numpy.linspace(0, Tf, M)`)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "surface-piano", + "metadata": {}, + "outputs": [], + "source": [ + "# Define the endpoints of the trajectory\n", + "x0 = np.array([0., -2., 0.]); u0 = np.array([10., 0.])\n", + "xf = np.array([40., 2., 0.]); uf = np.array([10., 0.])\n", + "Tf = 4\n", + "\n", + "# Generate a normalized set of basis functions\n", + "poly = fs.PolyFamily(6, Tf)\n", + "\n", + "# Find a trajectory between the initial condition and the final condition\n", + "traj = fs.point_to_point(bicycle_flat, Tf, x0, u0, xf, uf, basis=poly)\n", + "\n", + "# Create the desired trajectory between the initial and final condition\n", + "timepts = np.linspace(0, Tf, 500)\n", + "xd, ud = traj.eval(timepts)\n", + "\n", + "# Simulation the open system dynamics with the full input\n", + "t, y, x = ct.input_output_response(\n", + " bicycle_flat, timepts, ud, x0, return_x=True)\n", + "\n", + "# Plot the open loop system dynamics\n", + "plt.figure(1)\n", + "plt.suptitle(\"Open loop trajectory for unicycle lane change\")\n", + "plot_motion(t, x, ud)\n", + "\n", + "# Make sure the initial and final points are correct\n", + "print(\"x[0] = \", xd[:, 0])\n", + "print(\"x[T] = \", xd[:, -1])" + ] + }, + { + "cell_type": "markdown", + "id": "82a3318a", + "metadata": {}, + "source": [ + "### A look inside the code\n", + "\n", + "The code to solve this problem is inside the file [flatsys.py](https://github.com/python-control/python-control/blob/main/control/flatsys/flatsys.py) in the python-control package. Here is what operative code inside the `point_to_point()` looks like:\n", + "\n", + " #\n", + " # Map the initial and final conditions to flat output conditions\n", + " #\n", + " # We need to compute the output \"flag\": [z(t), z'(t), z''(t), ...]\n", + " # and then evaluate this at the initial and final condition.\n", + " #\n", + "\n", + " zflag_T0 = sys.forward(x0, u0)\n", + " zflag_Tf = sys.forward(xf, uf)\n", + "\n", + " #\n", + " # Compute the matrix constraints for initial and final conditions\n", + " #\n", + " # This computation depends on the basis function we are using. It\n", + " # essentially amounts to evaluating the basis functions and their\n", + " # derivatives at the initial and final conditions.\n", + "\n", + " # Compute the flags for the initial and final states\n", + " M_T0 = _basis_flag_matrix(sys, basis, zflag_T0, T0)\n", + " M_Tf = _basis_flag_matrix(sys, basis, zflag_Tf, Tf)\n", + "\n", + " # Stack the initial and final matrix/flag for the point to point problem\n", + " M = np.vstack([M_T0, M_Tf])\n", + " Z = np.hstack([np.hstack(zflag_T0), np.hstack(zflag_Tf)])\n", + "\n", + " #\n", + " # Solve for the coefficients of the flat outputs\n", + " #\n", + " # At this point, we need to solve the equation M alpha = zflag, where M\n", + " # is the matrix constrains for initial and final conditions and zflag =\n", + " # [zflag_T0; zflag_tf].\n", + " #\n", + " # If there are no constraints, then we just need to solve a linear\n", + " # system of equations => use least squares. Otherwise, we have a\n", + " # nonlinear optimal control problem with equality constraints => use\n", + " # scipy.optimize.minimize().\n", + " #\n", + "\n", + " # Start by solving the least squares problem\n", + " alpha, residuals, rank, s = np.linalg.lstsq(M, Z, rcond=None)" + ] + }, + { + "cell_type": "markdown", + "id": "f0397b3e", + "metadata": {}, + "source": [ + "### Approach #2: add cost function to make lane change quicker" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "appreciated-baghdad", + "metadata": {}, + "outputs": [], + "source": [ + "# Define timepoints for evaluation plus basis function to use\n", + "timepts = np.linspace(0, Tf, 20)\n", + "basis = fs.PolyFamily(12, Tf)\n", + "\n", + "# Define the cost function (penalize lateral error and steering)\n", + "traj_cost = opt.quadratic_cost(\n", + " bicycle_flat, np.diag([0, 0.1, 0]), np.diag([0.1, 1]), x0=xf, u0=uf)\n", + "\n", + "# Solve for an optimal solution\n", + "start_time = time.process_time()\n", + "traj = fs.point_to_point(\n", + " bicycle_flat, timepts, x0, u0, xf, uf, cost=traj_cost, basis=basis,\n", + ")\n", + "print(\"* Total time = %5g seconds\\n\" % (time.process_time() - start_time))\n", + "\n", + "xd, ud = traj.eval(timepts)\n", + "\n", + "plt.figure(2)\n", + "plt.suptitle(\"Lane change with lateral error + steering penalties\")\n", + "plot_motion(timepts, xd, ud);" + ] + }, + { + "cell_type": "markdown", + "id": "ff7363ca", + "metadata": {}, + "source": [ + "Note that the solution has a very large steering angle (0.2 rad = ~12 degrees)." + ] + }, + { + "cell_type": "markdown", + "id": "3c533abe", + "metadata": {}, + "source": [ + "### Approach #3: optimal cost with trajectory constraints\n", + "\n", + "To get a smaller steering angle, we add constraints on the inputs." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "stable-network", + "metadata": {}, + "outputs": [], + "source": [ + "constraints = [\n", + " opt.input_range_constraint(bicycle_flat, [8, -0.1], [12, 0.1]) ]\n", + "\n", + "# Solve for an optimal solution\n", + "traj = fs.point_to_point(\n", + " bicycle_flat, timepts, x0, u0, xf, uf, cost=traj_cost,\n", + " trajectory_constraints=constraints, basis=basis,\n", + ")\n", + "xd, ud = traj.eval(timepts)\n", + "\n", + "plt.figure(3)\n", + "plt.suptitle(\"Lane change with penalty + steering constraints\")\n", + "plot_motion(timepts, xd, ud)" + ] + }, + { + "cell_type": "markdown", + "id": "677750b0", + "metadata": {}, + "source": [ + "## Ideas to explore\n", + "* Change the number of basis functions\n", + "* Change the number of time points\n", + "* Change the type of basis functions: BezierFamily" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1622bccd", + "metadata": {}, + "outputs": [], + "source": [ + "# Define a set of basis functions to use for the trajectories\n", + "poly = fs.BezierFamily(6, 2)\n", + "\n", + "# Plot out the basis functions\n", + "t = np.linspace(0, 2)\n", + "for k in range(poly.N):\n", + " plt.plot(t, poly(k, t), label=f'k = {k}')\n", + " \n", + "plt.legend()\n", + "plt.title(\"Bezier basis functions\")\n", + "plt.xlabel(\"Time $t$\")\n", + "plt.ylabel(r\"$\\psi_i(t)$\");" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fc566fb2", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/examples/cds112-L2b_gainsched.ipynb b/examples/cds112-L2b_gainsched.ipynb new file mode 100644 index 000000000..d915f9e3d --- /dev/null +++ b/examples/cds112-L2b_gainsched.ipynb @@ -0,0 +1,408 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "exempt-legislation", + "metadata": {}, + "source": [ + "# Gain Scheduling\n", + "\n", + "##### Richard M. Murray, 19 Nov 2021 (updated 7 Jul 2024)\n", + "\n", + "This notebook contains an example of using gain scheduling for feedback control of a nonlinear system. A gain scheduled controller has feedback gains that depend on a set of measured parameters in the system. For exampe:\n", + "\n", + "$$\n", + " u = u_\\text{d} − K(x_\\text{d}, u_\\text{d}) (x − x_\\text{d}),\n", + "$$\n", + "\n", + "where $K(x_\\text{d}, u_\\text{d})$ depends on the desired system state and input.\n", + "\n", + "In this notebook, we work through the gain scheduled controller in Example 2.1 of OBC." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "corresponding-convenience", + "metadata": {}, + "outputs": [], + "source": [ + "# Import the packages needed for the examples included in this notebook\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from cmath import sqrt\n", + "import control as ct" + ] + }, + { + "cell_type": "markdown", + "id": "corporate-sense", + "metadata": {}, + "source": [ + "## Vehicle Steering Dynamics\n", + "\n", + "The vehicle dynamics are given by a simple bicycle model:\n", + "\n", + "\n", + "\n", + " \n", + " \n", + "\n", + "
\n", + "$$\n", + "\\begin{aligned}\n", + " \\dot x &= \\cos\\theta\\, v \\\\\n", + " \\dot y &= \\sin\\theta\\, v \\\\\n", + " \\dot\\theta &= \\frac{v}{l} \\tan \\delta\n", + "\\end{aligned}\n", + "$$\n", + "
\n", + "\n", + "We take the state of the system as $(x, y, \\theta)$ where $(x, y)$ is the position of the vehicle in the plane and $\\theta$ is the angle of the vehicle with respect to horizontal. The vehicle input is given by $(v, \\delta)$ where $v$ is the forward velocity of the vehicle and $\\delta$ is the angle of the steering wheel. The model includes saturation of the vehicle steering angle." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "naval-pizza", + "metadata": {}, + "outputs": [], + "source": [ + "# Bicycle model dynamics\n", + "#\n", + "# System state: x, y, theta\n", + "# System input: v, delta\n", + "# System output: x, y\n", + "# System parameters: wheelbase, maxsteer\n", + "#\n", + "def bicycle_update(t, x, u, params):\n", + " # Get the parameters for the model\n", + " l = params.get('wheelbase', 3.) # vehicle wheelbase\n", + " deltamax = params.get('maxsteer', 0.5) # max steering angle (rad)\n", + "\n", + " # Saturate the steering input\n", + " delta = np.clip(u[1], -deltamax, deltamax)\n", + "\n", + " # Return the derivative of the state\n", + " return np.array([\n", + " np.cos(x[2]) * u[0], # xdot = cos(theta) v\n", + " np.sin(x[2]) * u[0], # ydot = sin(theta) v\n", + " (u[0] / l) * np.tan(delta) # thdot = v/l tan(delta)\n", + " ])\n", + "\n", + "def bicycle_output(t, x, u, params):\n", + " return x # return x, y, theta (full state)\n", + "\n", + "# Define the vehicle steering dynamics as an input/output system\n", + "bicycle = ct.nlsys(\n", + " bicycle_update, bicycle_output, states=3, name='bicycle',\n", + " inputs=('v', 'delta'),\n", + " outputs=('x', 'y', 'theta'))" + ] + }, + { + "cell_type": "markdown", + "id": "3cc26675", + "metadata": {}, + "source": [ + "## Gain scheduled controller\n", + "\n", + "For this system we use a simple schedule on the forward vehicle velocity and\n", + "place the poles of the system at fixed values. The controller takes the\n", + "current and desired vehicle position and orientation plus the velocity\n", + "velocity as inputs, and returns the velocity and steering commands.\n", + "\n", + "Linearizing the system about the desired trajectory, we obtain\n", + "\n", + "$$\n", + " \\begin{aligned}\n", + " A(x_\\text{d}) &= \\left. \\frac{\\partial f}{\\partial x} \\right|_{(x_\\text{d}, u_\\text{d})}\n", + " = \\left.\n", + " \\begin{bmatrix}\n", + " 0 & 0 & -\\sin\\theta_\\text{d}\\, v_\\text{d} \\\\ 0 & 0 & \\cos\\theta_\\text{d}\\, v_\\text{d} \\\\ 0 & 0 & 0\n", + " \\end{bmatrix}\n", + " \\right|_{(x_\\text{d}, u_\\text{d})}\n", + " = \\begin{bmatrix}\n", + " 0 & 0 & 0 \\\\ 0 & 0 & v_\\text{d} \\\\ 0 & 0 & 0\n", + " \\end{bmatrix}, \\\\\n", + " B(x_\\text{d}) &= \\left. \\frac{\\partial f}{\\partial u} \\right|_{(x_\\text{d}, u_\\text{d})}\n", + " = \\begin{bmatrix}\n", + " 1 & 0 \\\\ 0 & 0 \\\\ 0 & v_\\text{d}/l\n", + " \\end{bmatrix}.\n", + " \\end{aligned}\n", + "$$\n", + "\n", + "We form the error dynamics by setting $e = x - x_\\text{d}$ and $w = u -\n", + "u_\\text{d}$:\n", + "$$\n", + " \\dot e_x = w_1, \\qquad \\dot e_y = e_\\theta, \\qquad \\dot e_\\theta =\n", + " \\frac{v_\\text{d}}{l} w_2.\n", + "$$\n", + "We see that the first state is decoupled from the second two states\n", + "and hence we can design a controller by treating these two subsystems\n", + "separately. \n", + "\n", + "Suppose that we wish to place the closed loop eigenvalues\n", + "of the longitudinal dynamics ($e_x$) at $-\\lambda_1$ and place the\n", + "closed loop eigenvalues of the lateral dynamics ($e_y$, $e_\\theta$) at\n", + "the roots of the polynomial equation $s^2 + a_1 s + a_2 = 0$.\n", + "\n", + "This can accomplished by setting\n", + "\n", + "$$\n", + " \\begin{aligned}\n", + " w_1 &= -\\lambda_1 e_x \\\\\n", + " w_2 &= -\\frac{l}{v_\\text{r}}(\\frac{a_2}{v_\\text{r}} e_y + a_1 e_\\theta).\n", + " \\end{aligned}\n", + "$$\n", + "\n", + "Note that the gains depend on the velocity $v_\\text{r}$ (or equivalently on\n", + "the nominal input $u_\\text{d}$), giving us a gain scheduled controller." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "another-milwaukee", + "metadata": {}, + "outputs": [], + "source": [ + "# System state: none\n", + "# System input: x, y, theta, xd, yd, thetad, vd, delta\n", + "# System output: v, delta\n", + "# System parameters: longpole, latomega_c, latzeta_c\n", + "def gainsched_output(t, x, u, params):\n", + " # Get the controller parameters\n", + " longpole = params.get('longpole', -2.)\n", + " latomega_c = params.get('latomega_c', 2)\n", + " latzeta_c = params.get('latzeta_c', 0.5)\n", + " l = params.get('wheelbase', 3)\n", + " vref = params.get('vref', None)\n", + " \n", + " # Extract the system inputs and compute the errors\n", + " x, y, theta, xd, yd, thetad, vd, deltad = u\n", + " ex, ey, etheta = x - xd, y - yd, theta - thetad\n", + "\n", + " # Determine the controller gains\n", + " lambda1 = -longpole\n", + " a1 = 2 * latzeta_c * latomega_c\n", + " a2 = latomega_c**2\n", + " \n", + " # Determine the speed to use for computing the gains\n", + " if vref is None:\n", + " vref = vd\n", + "\n", + " # Compute and return the control law\n", + " v = -lambda1 * ex # leave off feedforward to generate transient\n", + " if vd != 0:\n", + " delta = deltad - ((a2 * l) / vref**2) * ey - ((a1 * l) / vref) * etheta\n", + " else:\n", + " # We aren't moving, so don't turn the steering wheel\n", + " delta = deltad\n", + " \n", + " return np.array([v, delta])\n", + "\n", + "# Define the controller as an input/output system\n", + "gainsched = ct.nlsys(\n", + " None, gainsched_output, name='controller', # static system\n", + " inputs=('x', 'y', 'theta', 'xd', 'yd', 'thetad', # system inputs\n", + " 'vd', 'deltad'),\n", + " outputs=('v', 'delta') # system outputs\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "6c6c4b9b", + "metadata": {}, + "source": [ + "## Reference trajectory subsystem\n", + "\n", + "The reference trajectory block generates a simple trajectory for the system\n", + "given the desired speed (vref) and lateral position (yref). The trajectory\n", + "consists of a straight line of the form (vref * t, yref, 0) with nominal\n", + "input (vref, 0)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "significant-november", + "metadata": {}, + "outputs": [], + "source": [ + "# System state: none\n", + "# System input: vref, yref\n", + "# System output: xd, yd, thetad, vd, deltad\n", + "# System parameters: none\n", + "#\n", + "def trajgen_output(t, x, u, params):\n", + " vref, yref = u\n", + " return np.array([vref * t, yref, 0, vref, 0])\n", + "\n", + "# Define the trajectory generator as an input/output system\n", + "trajgen = ct.nlsys(\n", + " None, trajgen_output, name='trajgen',\n", + " inputs=('vref', 'yref'),\n", + " outputs=('xd', 'yd', 'thetad', 'vd', 'deltad'))\n" + ] + }, + { + "cell_type": "markdown", + "id": "4ca5ab53", + "metadata": {}, + "source": [ + "## System construction\n", + "\n", + "The input to the full closed loop system is the desired lateral position and\n", + "the desired forward velocity. The output for the system is taken as the\n", + "full vehicle state plus the velocity of the vehicle.\n", + "\n", + "We construct the system using the InterconnectedSystem constructor and using\n", + "signal labels to keep track of everything. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "editorial-satisfaction", + "metadata": {}, + "outputs": [], + "source": [ + "steering_gainsched = ct.interconnect(\n", + " # List of subsystems\n", + " (trajgen, gainsched, bicycle), name='steering',\n", + "\n", + " # System inputs\n", + " inplist=['trajgen.vref', 'trajgen.yref'],\n", + " inputs=['yref', 'vref'],\n", + "\n", + " # System outputs\n", + " outlist=['bicycle.x', 'bicycle.y', 'bicycle.theta', 'controller.v',\n", + " 'controller.delta'],\n", + " outputs=['x', 'y', 'theta', 'v', 'delta']\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "61fe3404", + "metadata": {}, + "source": [ + "Note the use of signals of the form `sys.sig` to get the signals from a specific subsystem." + ] + }, + { + "cell_type": "markdown", + "id": "47f5d528", + "metadata": {}, + "source": [ + "## System simulation" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "smoking-trail", + "metadata": {}, + "outputs": [], + "source": [ + "# Set up the simulation conditions\n", + "yref = 1\n", + "T = np.linspace(0, 5, 100)\n", + "\n", + "# Plot the reference trajectory for the y position\n", + "plt.plot([0, 5], [yref, yref], 'k-', linewidth=0.6)\n", + "\n", + "# Find the signals we want to plot\n", + "y_index = steering_gainsched.find_output('y')\n", + "v_index = steering_gainsched.find_output('v')\n", + "\n", + "# Do an iteration through different speeds\n", + "for vref in [5, 10, 15]:\n", + " # Simulate the closed loop controller response\n", + " tout, yout = ct.input_output_response(\n", + " steering_gainsched, T, [vref * np.ones(len(T)), yref * np.ones(len(T))])\n", + "\n", + " # Plot the reference speed\n", + " plt.plot([0, 5], [vref, vref], 'k-', linewidth=0.6)\n", + "\n", + " # Plot the system output\n", + " y_line, = plt.plot(tout, yout[y_index, :], 'r-') # lateral position\n", + " v_line, = plt.plot(tout, yout[v_index, :], 'b--') # vehicle velocity\n", + "\n", + "# Add axis labels\n", + "plt.xlabel(\"Time [s]\")\n", + "plt.ylabel(r\"$\\dot{x}$ [m/s], $y$ [m]\")\n", + "plt.legend((v_line, y_line), (r\"$\\dot{x}$\", \"$y$\"),\n", + " loc='center right', frameon=False);" + ] + }, + { + "cell_type": "markdown", + "id": "8f31bc48", + "metadata": {}, + "source": [ + "## Comparison to fixed controller" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "homeless-gibson", + "metadata": {}, + "outputs": [], + "source": [ + "# Rerun with no gain-scheduling\n", + "\n", + "# Plot the reference trajectory for the y position\n", + "plt.plot([0, 5], [yref, yref], 'k-', linewidth=0.6)\n", + "\n", + "# Do an iteration through different speeds\n", + "for vref in [5, 10, 15]:\n", + " # Simulate the closed loop controller response\n", + " tout, yout = ct.input_output_response(\n", + " steering_gainsched, T, [vref * np.ones(len(T)), yref * np.ones(len(T))], \n", + " params={'vref': 15})\n", + "\n", + " # Plot the reference speed\n", + " plt.plot([0, 5], [vref, vref], 'k-', linewidth=0.6)\n", + "\n", + " # Plot the system output\n", + " y_line, = plt.plot(tout, yout[y_index, :], 'r-') # lateral position\n", + " v_line, = plt.plot(tout, yout[v_index, :], 'b--') # vehicle velocity\n", + "\n", + "# Add axis labels\n", + "plt.xlabel(\"Time [s]\")\n", + "plt.ylabel(r\"$\\dot{x}$ [m/s], $y$ [m]\")\n", + "plt.legend((v_line, y_line), (r\"$\\dot{x}$\", \"$y$\"),\n", + " loc='center right', frameon=False);" + ] + }, + { + "cell_type": "markdown", + "id": "5811a6e4", + "metadata": {}, + "source": [ + "## Things to try\n", + "* Use different reference trajectories (eg, flatness-based trajectory)\n", + "* Try scheduling on the current state rather than the desired state" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6f571b2b", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/examples/cds112-L3a_linquad.ipynb b/examples/cds112-L3a_linquad.ipynb new file mode 100644 index 000000000..11ac54771 --- /dev/null +++ b/examples/cds112-L3a_linquad.ipynb @@ -0,0 +1,399 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "dd522981", + "metadata": {}, + "source": [ + "# Linear quadratic optimal control example\n", + "\n", + "Richard M. Murray, 20 Jan 2022 (updated 7 Jul 2024)\n", + "\n", + "This example works through the linear quadratic finite time optimal control problem. We assume that we have a linear system of the form\n", + "$$\n", + "\\dot x = A x + Bu \n", + "$$\n", + "and that we want to minimize a cost function of the form\n", + "$$\n", + "\\int_0^T (x^T Q_x x + u^T Q_u u) dt + x^T P_1 x.\n", + "$$\n", + "We show how to compute the solution the Riccati ODE and use this to obtain an optimal (time-varying) linear controller." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "866842ea", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import scipy as sp\n", + "import matplotlib.pyplot as plt\n", + "import control as ct\n", + "import control.optimal as opt\n", + "import control.flatsys as fs\n", + "import time" + ] + }, + { + "cell_type": "markdown", + "id": "83a32e85", + "metadata": {}, + "source": [ + "## System dynamics\n", + "\n", + "We use the linearized dynamics of the vehicle steering problem as our linear system. This is mainly for convenient (since we have some intuition about it). " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "48c1bd7f-0db6-4488-af41-41f685280ec9", + "metadata": {}, + "outputs": [], + "source": [ + "# Vehicle dynamics (bicycle model)\n", + "\n", + "# Function to take states, inputs and return the flat flag\n", + "def _kincar_flat_forward(x, u, params={}):\n", + " # Get the parameter values\n", + " b = params.get('wheelbase', 3.)\n", + " #! TODO: add dir processing\n", + "\n", + " # Create a list of arrays to store the flat output and its derivatives\n", + " zflag = [np.zeros(3), np.zeros(3)]\n", + "\n", + " # Flat output is the x, y position of the rear wheels\n", + " zflag[0][0] = x[0]\n", + " zflag[1][0] = x[1]\n", + "\n", + " # First derivatives of the flat output\n", + " zflag[0][1] = u[0] * np.cos(x[2]) # dx/dt\n", + " zflag[1][1] = u[0] * np.sin(x[2]) # dy/dt\n", + "\n", + " # First derivative of the angle\n", + " thdot = (u[0]/b) * np.tan(u[1])\n", + "\n", + " # Second derivatives of the flat output (setting vdot = 0)\n", + " zflag[0][2] = -u[0] * thdot * np.sin(x[2])\n", + " zflag[1][2] = u[0] * thdot * np.cos(x[2])\n", + "\n", + " return zflag\n", + "\n", + "# Function to take the flat flag and return states, inputs\n", + "def _kincar_flat_reverse(zflag, params={}):\n", + " # Get the parameter values\n", + " b = params.get('wheelbase', 3.)\n", + " dir = params.get('dir', 'f')\n", + "\n", + " # Create a vector to store the state and inputs\n", + " x = np.zeros(3)\n", + " u = np.zeros(2)\n", + "\n", + " # Given the flat variables, solve for the state\n", + " x[0] = zflag[0][0] # x position\n", + " x[1] = zflag[1][0] # y position\n", + " if dir == 'f':\n", + " x[2] = np.arctan2(zflag[1][1], zflag[0][1]) # tan(theta) = ydot/xdot\n", + " elif dir == 'r':\n", + " # Angle is flipped by 180 degrees (since v < 0)\n", + " x[2] = np.arctan2(-zflag[1][1], -zflag[0][1])\n", + " else:\n", + " raise ValueError(\"unknown direction:\", dir)\n", + "\n", + " # And next solve for the inputs\n", + " u[0] = zflag[0][1] * np.cos(x[2]) + zflag[1][1] * np.sin(x[2])\n", + " thdot_v = zflag[1][2] * np.cos(x[2]) - zflag[0][2] * np.sin(x[2])\n", + " u[1] = np.arctan2(thdot_v, u[0]**2 / b)\n", + "\n", + " return x, u\n", + "\n", + "# Function to compute the RHS of the system dynamics\n", + "def _kincar_update(t, x, u, params):\n", + " b = params.get('wheelbase', 3.) # get parameter values\n", + " #! TODO: add dir processing\n", + " dx = np.array([\n", + " np.cos(x[2]) * u[0],\n", + " np.sin(x[2]) * u[0],\n", + " (u[0]/b) * np.tan(u[1])\n", + " ])\n", + " return dx\n", + "\n", + "def _kincar_output(t, x, u, params):\n", + " return x # return x, y, theta (full state)\n", + "\n", + "# Create differentially flat input/output system\n", + "kincar = fs.FlatSystem(\n", + " _kincar_flat_forward, _kincar_flat_reverse, name=\"kincar\",\n", + " updfcn=_kincar_update, outfcn=_kincar_output,\n", + " inputs=('v', 'delta'), outputs=('x', 'y', 'theta'),\n", + " states=('x', 'y', 'theta'))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fbdd78c0-30e9-43f7-9e8d-198ae38c2988", + "metadata": {}, + "outputs": [], + "source": [ + "# Utility function to plot lane change manuever\n", + "def plot_lanechange(t, y, u, figure=None, yf=None):\n", + " # Plot the xy trajectory\n", + " plt.subplot(3, 1, 1, label='xy')\n", + " plt.plot(y[0], y[1])\n", + " plt.xlabel(\"x [m]\")\n", + " plt.ylabel(\"y [m]\")\n", + " if yf is not None:\n", + " plt.plot(yf[0], yf[1], 'ro')\n", + "\n", + " # Plot the inputs as a function of time\n", + " plt.subplot(3, 1, 2, label='v')\n", + " plt.plot(t, u[0])\n", + " plt.xlabel(\"Time $t$ [sec]\")\n", + " plt.ylabel(\"$v$ [m/s]\")\n", + "\n", + " plt.subplot(3, 1, 3, label='delta')\n", + " plt.plot(t, u[1])\n", + " plt.xlabel(\"Time $t$ [sec]\")\n", + " plt.ylabel(\"$\\\\delta$ [rad]\")\n", + "\n", + " plt.suptitle(\"Lane change manuever\")\n", + " plt.tight_layout()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "de9d85f3", + "metadata": {}, + "outputs": [], + "source": [ + "# Initial conditions\n", + "x0 = np.array([-40, -2., 0.])\n", + "u0 = np.array([10, 0]) # only used for linearization\n", + "Tf = 4\n", + "\n", + "# Linearized dynamics\n", + "sys = kincar.linearize(x0, u0)\n", + "print(sys)" + ] + }, + { + "cell_type": "markdown", + "id": "c5c0abe9", + "metadata": {}, + "source": [ + "## Optimal trajectory generation\n", + "\n", + "We generate an trajectory for the system that minimizes the cost function above. Namely, starting from some initial function $x(0) = x_0$, we wish to bring the system toward the origin without using too much control effort." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "02e9f87c", + "metadata": {}, + "outputs": [], + "source": [ + "# Define the cost function and the terminal cost\n", + "# (try changing these later to see what happens)\n", + "Qx = np.diag([1, 1, 1]) # state costs\n", + "Qu = np.diag([1, 1]) # input costs\n", + "Pf = np.diag([1, 1, 1]) # terminal costs" + ] + }, + { + "cell_type": "markdown", + "id": "62c76e5e", + "metadata": {}, + "source": [ + "### Finite time, linear quadratic optimization\n", + "\n", + "The optimal solution satisfies the following equations, which follow from the maximum principle:\n", + "\n", + "$$\n", + " \\begin{aligned}\n", + " \\dot x &= \\left(\\frac{\\partial H}{\\partial \\lambda}\\right)^T\n", + " = A x + Bu, \\qquad & x(0) &= x_0, \\\\\n", + " -\\dot \\lambda &= \\left(\\frac{\\partial H}{\\partial x}\\right)^T\n", + " = Q_x x + A^T \\lambda, \\qquad\n", + " & \\lambda(T) &= P_1 x(T), \\\\\n", + " 0 &= \\left(\\frac{\\partial H}{\\partial u}\\right)^T\n", + " = Q_u u + B^T \\lambda. &&\n", + " \\end{aligned}\n", + "$$\n", + "\n", + "The last condition can be solved to obtain the optimal controller\n", + "\n", + "$$\n", + " u = -Q_u^{-1} B^T \\lambda,\n", + "$$\n", + "\n", + "which can be substituted into the equations for the optimal solution.\n", + "\n", + "Given the linear nature of the dynamics, we attempt to find a solution\n", + "by setting $\\lambda(t) = P(t) x(t)$ where $P(t) \\in {\\mathbb R}^{n \\times\n", + "n}$. Substituting this into the necessary condition, we obtain\n", + "\n", + "$$\n", + " \\begin{aligned}\n", + " & \\dot\\lambda =\n", + " \\dot P x + P \\dot x = \\dot P x + P(Ax - BQ_u^{-1} B^T P) x, \\\\\n", + " & \\quad\\implies\\quad\n", + " -\\dot P x - PA x + PBQ_u^{-1}B P x = Q_xx + A^T P x.\n", + " \\end{aligned}\n", + "$$\n", + "\n", + "This equation is satisfied if we can find $P(t)$ such that\n", + "\n", + "$$\n", + " -\\dot P = PA + A^T P - P B Q_u^{-1} B^T P + Q_x,\n", + " \\qquad P(T) = P_1.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "b63aed88", + "metadata": {}, + "source": [ + "To solve a final value problem with $P(T) = P_1$, we set the \"initial\" condition to $P_1$ and then invert time, so that we solve\n", + "\n", + "$$\n", + "\\frac{dP}{d(-t)} = -\\frac{dP}{dt} = -F(P), \\qquad P(0) = P_1\n", + "$$\n", + "\n", + "Solving this equation from time $t = 0$ to time $t = T$ will give us an solution that goes from $P(T)$ to $P(0)$." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "02d74789", + "metadata": {}, + "outputs": [], + "source": [ + "# Set up the Riccatti ODE\n", + "def Pdot_reverse(t, x):\n", + " # Get the P matrix from the state by resizing\n", + " P = np.reshape(x, (sys.nstates, sys.nstates))\n", + " \n", + " # Compute the right hand side of Riccati ODE\n", + " Prhs = P @ sys.A + sys.A.T @ P + Qx - \\\n", + " P @ sys.B @ np.linalg.inv(Qu) @ sys.B.T @ P\n", + " \n", + " # Return P as a vector, *backwards* in time (no minus sign)\n", + " return Prhs.reshape((-1))\n", + "\n", + "# Solve the Riccati ODE (converting from matrix to vector and back)\n", + "P0 = np.reshape(Pf, (-1))\n", + "Psol = sp.integrate.solve_ivp(Pdot_reverse, (0, Tf), P0)\n", + "Pfwd = np.reshape(Psol.y, (sys.nstates, sys.nstates, -1))\n", + "\n", + "# Reorder the solution in time\n", + "Prev = Pfwd[:, :, ::-1] \n", + "trev = Tf - Psol.t[::-1]\n", + "\n", + "print(\"Trange = \", trev[0], \"to\", trev[-1])\n", + "print(\"P[Tf] =\", Prev[:,:,-1])\n", + "print(\"P[0] =\", Prev[:,:,0])\n", + "\n", + "# Internal comparison: show that initial value is close to algebraic solution\n", + "_, P_lqr, _ = ct.lqr(sys.A, sys.B, Qx, Qu)\n", + "print(\"P_lqr =\", P_lqr)" + ] + }, + { + "cell_type": "markdown", + "id": "f4fb1166", + "metadata": {}, + "source": [ + "For solving the $x$ dynamics, we need a function to evaluate $P(t)$ at an arbitrary time (used by the integrator). We can do this with the SciPy `interp1d` function:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "728f675b", + "metadata": {}, + "outputs": [], + "source": [ + "# Define an interpolation function for P\n", + "P = sp.interpolate.interp1d(trev, Prev)\n", + "\n", + "print(\"P(0) =\", P(0))\n", + "print(\"P(3.5) =\", P(3.5))\n", + "print(\"P(4) =\", P(4))" + ] + }, + { + "cell_type": "markdown", + "id": "eb30c3fa", + "metadata": {}, + "source": [ + "We now solve the $\\dot x$ equations *forward* in time, using $P(t)$:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "84092dcd", + "metadata": {}, + "outputs": [], + "source": [ + "# Now solve the state forward in time\n", + "def xdot_forward(t, x):\n", + " u = -np.linalg.inv(Qu) @ sys.B.T @ P(t) @ x\n", + " return sys.A @ x + sys.B @ u\n", + "\n", + "# Now simulate from a shifted initial condition\n", + "xsol = sp.integrate.solve_ivp(xdot_forward, (0, Tf), x0)\n", + "tvec = xsol.t\n", + "x = xsol.y\n", + "print(\"x[0] =\", x[:, 0])\n", + "print(\"x[Tf] =\", x[:, -1])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8488acad", + "metadata": {}, + "outputs": [], + "source": [ + "# Finally compute the \"desired\" state and input values\n", + "xd = x\n", + "ud = np.zeros((sys.ninputs, tvec.size))\n", + "for i, t in enumerate(tvec):\n", + " ud[:, i] = -np.linalg.inv(Qu) @ sys.B.T @ P(t) @ x[:, i]\n", + "\n", + "plot_lanechange(tvec, xd, ud)" + ] + }, + { + "cell_type": "markdown", + "id": "89483f4b", + "metadata": {}, + "source": [ + "Note here that we are stabilizing the system to the origin (compared to some of other examples where we change langes and so the final $y$ position is $y_\\text{f} = 2$." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7ed4c5eb", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/examples/cds112-L3b_optimal.ipynb b/examples/cds112-L3b_optimal.ipynb new file mode 100644 index 000000000..1c7e0e1c2 --- /dev/null +++ b/examples/cds112-L3b_optimal.ipynb @@ -0,0 +1,461 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "edb7e2c6", + "metadata": {}, + "source": [ + "## Optimal Control\n", + "\n", + "Richard M. Murray, 31 Dec 2021 (updated 7 Jul 2024)\n", + "\n", + "This notebook contains an example of using optimal control for a vehicle steering system. It illustrates different methods of setting up optimal control problems and solving them using python-control." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7066eb69", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import control as ct\n", + "import control.optimal as opt\n", + "import control.flatsys as fs\n", + "import time" + ] + }, + { + "cell_type": "markdown", + "id": "4afb09dd", + "metadata": {}, + "source": [ + "## Vehicle steering dynamics\n", + "\n", + "\n", + "\n", + " \n", + " \n", + "\n", + "
\n", + "$$\n", + "\\begin{aligned}\n", + " \\dot x &= \\cos\\theta\\, v \\\\\n", + " \\dot y &= \\sin\\theta\\, v \\\\\n", + " \\dot\\theta &= \\frac{v}{l} \\tan \\delta, \\qquad |\\delta| \\leq \\delta_\\text{max}\n", + "\\end{aligned}\n", + "$$\n", + "
\n", + "\n", + "The vehicle dynamics are given by a simple bicycle model. We take the state of the system as $(x, y, \\theta)$ where $(x, y)$ is the position of the vehicle in the plane and $\\theta$ is the angle of the vehicle with respect to horizontal. The vehicle input is given by $(v, \\delta)$ where $v$ is the forward velocity of the vehicle and $\\delta$ is the angle of the steering wheel. The model includes saturation of the vehicle steering angle." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a6143a8a", + "metadata": {}, + "outputs": [], + "source": [ + "# Vehicle dynamics (bicycle model)\n", + "\n", + "# Function to take states, inputs and return the flat flag\n", + "def _kincar_flat_forward(x, u, params={}):\n", + " # Get the parameter values\n", + " b = params.get('wheelbase', 3.)\n", + " #! TODO: add dir processing\n", + "\n", + " # Create a list of arrays to store the flat output and its derivatives\n", + " zflag = [np.zeros(3), np.zeros(3)]\n", + "\n", + " # Flat output is the x, y position of the rear wheels\n", + " zflag[0][0] = x[0]\n", + " zflag[1][0] = x[1]\n", + "\n", + " # First derivatives of the flat output\n", + " zflag[0][1] = u[0] * np.cos(x[2]) # dx/dt\n", + " zflag[1][1] = u[0] * np.sin(x[2]) # dy/dt\n", + "\n", + " # First derivative of the angle\n", + " thdot = (u[0]/b) * np.tan(u[1])\n", + "\n", + " # Second derivatives of the flat output (setting vdot = 0)\n", + " zflag[0][2] = -u[0] * thdot * np.sin(x[2])\n", + " zflag[1][2] = u[0] * thdot * np.cos(x[2])\n", + "\n", + " return zflag\n", + "\n", + "# Function to take the flat flag and return states, inputs\n", + "def _kincar_flat_reverse(zflag, params={}):\n", + " # Get the parameter values\n", + " b = params.get('wheelbase', 3.)\n", + " dir = params.get('dir', 'f')\n", + "\n", + " # Create a vector to store the state and inputs\n", + " x = np.zeros(3)\n", + " u = np.zeros(2)\n", + "\n", + " # Given the flat variables, solve for the state\n", + " x[0] = zflag[0][0] # x position\n", + " x[1] = zflag[1][0] # y position\n", + " if dir == 'f':\n", + " x[2] = np.arctan2(zflag[1][1], zflag[0][1]) # tan(theta) = ydot/xdot\n", + " elif dir == 'r':\n", + " # Angle is flipped by 180 degrees (since v < 0)\n", + " x[2] = np.arctan2(-zflag[1][1], -zflag[0][1])\n", + " else:\n", + " raise ValueError(\"unknown direction:\", dir)\n", + "\n", + " # And next solve for the inputs\n", + " u[0] = zflag[0][1] * np.cos(x[2]) + zflag[1][1] * np.sin(x[2])\n", + " thdot_v = zflag[1][2] * np.cos(x[2]) - zflag[0][2] * np.sin(x[2])\n", + " u[1] = np.arctan2(thdot_v, u[0]**2 / b)\n", + "\n", + " return x, u\n", + "\n", + "# Function to compute the RHS of the system dynamics\n", + "def _kincar_update(t, x, u, params):\n", + " b = params.get('wheelbase', 3.) # get parameter values\n", + " #! TODO: add dir processing\n", + " dx = np.array([\n", + " np.cos(x[2]) * u[0],\n", + " np.sin(x[2]) * u[0],\n", + " (u[0]/b) * np.tan(u[1])\n", + " ])\n", + " return dx\n", + "\n", + "def _kincar_output(t, x, u, params):\n", + " return x # return x, y, theta (full state)\n", + "\n", + "# Create differentially flat input/output system\n", + "kincar = fs.FlatSystem(\n", + " _kincar_flat_forward, _kincar_flat_reverse, name=\"kincar\",\n", + " updfcn=_kincar_update, outfcn=_kincar_output,\n", + " inputs=('v', 'delta'), outputs=('x', 'y', 'theta'),\n", + " states=('x', 'y', 'theta'))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "43377b51-35db-4e8f-9101-b22af1de1cb2", + "metadata": {}, + "outputs": [], + "source": [ + "# Utility function to plot lane change manuever\n", + "def plot_lanechange(t, y, u, figure=None, yf=None):\n", + " # Plot the xy trajectory\n", + " plt.subplot(3, 1, 1, label='xy')\n", + " plt.plot(y[0], y[1])\n", + " plt.xlabel(\"x [m]\")\n", + " plt.ylabel(\"y [m]\")\n", + " if yf is not None:\n", + " plt.plot(yf[0], yf[1], 'ro')\n", + "\n", + " # Plot the inputs as a function of time\n", + " plt.subplot(3, 1, 2, label='v')\n", + " plt.plot(t, u[0])\n", + " plt.xlabel(\"Time $t$ [sec]\")\n", + " plt.ylabel(\"$v$ [m/s]\")\n", + "\n", + " plt.subplot(3, 1, 3, label='delta')\n", + " plt.plot(t, u[1])\n", + " plt.xlabel(\"Time $t$ [sec]\")\n", + " plt.ylabel(\"$\\\\delta$ [rad]\")\n", + "\n", + " plt.suptitle(\"Lane change manuever\")\n", + " plt.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "id": "64bd3c3b", + "metadata": {}, + "source": [ + "## Optimal trajectory generation\n", + "\n", + "We consider the problem of changing from one lane to another over a perod of 10 seconds while driving at a forward speed of 10 m/s." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "42dcbd79", + "metadata": {}, + "outputs": [], + "source": [ + "# Initial and final conditions\n", + "x0 = np.array([ 0., -2., 0.]); u0 = np.array([10., 0.])\n", + "xf = np.array([100., 2., 0.]); uf = np.array([10., 0.])\n", + "Tf = 10" + ] + }, + { + "cell_type": "markdown", + "id": "5ff2e044", + "metadata": {}, + "source": [ + "An important part of the optimization procedure is to give a good initial guess. Here are some possibilities:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "650d321a", + "metadata": {}, + "outputs": [], + "source": [ + "# Define the time horizon (and spacing) for the optimization\n", + "# timepts = np.linspace(0, Tf, 5, endpoint=True)\n", + "# timepts = np.linspace(0, Tf, 10, endpoint=True)\n", + "timepts = np.linspace(0, Tf, 20, endpoint=True)\n", + "\n", + "# Compute some initial guesses to use\n", + "bend_left = [10, 0.01] # slight left veer (will extend over all timepts)\n", + "straight_line = ( # straight line from start to end with nominal input\n", + " np.array([x0 + (xf - x0) * t/Tf for t in timepts]).transpose(), \n", + " u0\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "4e75a2c4", + "metadata": {}, + "source": [ + "### Approach 1: standard quadratic cost\n", + "\n", + "We can set up the optimal control problem as trying to minimize the distance form the desired final point while at the same time as not exerting too much control effort to achieve our goal.\n", + "\n", + "(The optimization module solves optimal control problems by choosing the values of the input at each point in the time horizon to try to minimize the cost. This means that each input generates a parameter value at each point in the time horizon, so the more refined your time horizon, the more parameters the optimizer has to search over.)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "984c2f0b", + "metadata": {}, + "outputs": [], + "source": [ + "# Set up the cost functions\n", + "Qx = np.diag([.1, 10, .1]) # keep lateral error low\n", + "Qu = np.diag([.1, 1]) # minimize applied inputs\n", + "quad_cost = opt.quadratic_cost(kincar, Qx, Qu, x0=xf, u0=uf)\n", + "\n", + "# Compute the optimal control, setting step size for gradient calculation (eps)\n", + "start_time = time.process_time()\n", + "result1 = opt.solve_ocp(\n", + " kincar, timepts, x0, quad_cost, \n", + " initial_guess=straight_line,\n", + " # initial_guess= bend_left,\n", + " # initial_guess=u0,\n", + " # minimize_method='trust-constr',\n", + " # minimize_options={'finite_diff_rel_step': 0.01},\n", + " # trajectory_method='shooting'\n", + " # solve_ivp_method='LSODA'\n", + ")\n", + "print(\"* Total time = %5g seconds\\n\" % (time.process_time() - start_time))\n", + "\n", + "# Plot the results from the optimization\n", + "plot_lanechange(timepts, result1.states, result1.inputs, xf)\n", + "print(\"Final computed state: \", result1.states[:,-1])\n", + "\n", + "# Simulate the system and see what happens\n", + "t1, u1 = result1.time, result1.inputs\n", + "t1, y1 = ct.input_output_response(kincar, timepts, u1, x0)\n", + "plot_lanechange(t1, y1, u1, yf=xf[0:2])\n", + "print(\"Final simulated state:\", y1[:,-1])" + ] + }, + { + "cell_type": "markdown", + "id": "b7cade52", + "metadata": {}, + "source": [ + "Note the amount of time required to solve the problem and also any warning messages about to being able to solve the optimization (mainly in earlier versions of python-control). You can try to adjust a number of factors to try to get a better solution:\n", + "* Try changing the number of points in the time horizon\n", + "* Try using a different initial guess\n", + "* Try changing the optimization method (see commented out code)" + ] + }, + { + "cell_type": "markdown", + "id": "6a9f9d9b", + "metadata": {}, + "source": [ + "### Approach 2: input cost, input constraints, terminal cost\n", + "\n", + "The previous solution integrates the position error for the entire horizon, and so the car changes lanes very quickly (at the cost of larger inputs). Instead, we can penalize the final state and impose a higher cost on the inputs, resuling in a more gradual lane change.\n", + "\n", + "We can also try using a different solver for this example. You can pass the solver using the `minimize_method` keyword and send options to the solver using the `minimize_options` keyword (which should be set to a dictionary of options)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a201e33c", + "metadata": {}, + "outputs": [], + "source": [ + "# Add input constraint, input cost, terminal cost\n", + "constraints = [ opt.input_range_constraint(kincar, [8, -0.1], [12, 0.1]) ]\n", + "traj_cost = opt.quadratic_cost(kincar, None, np.diag([0.1, 1]), u0=uf)\n", + "term_cost = opt.quadratic_cost(kincar, np.diag([1, 10, 100]), None, x0=xf)\n", + "\n", + "# Compute the optimal control\n", + "start_time = time.process_time()\n", + "result2 = opt.solve_ocp(\n", + " kincar, timepts, x0, traj_cost, constraints, terminal_cost=term_cost,\n", + " initial_guess=straight_line, \n", + " # minimize_method='trust-constr',\n", + " # minimize_options={'finite_diff_rel_step': 0.01},\n", + " # minimize_method='SLSQP', minimize_options={'eps': 0.01},\n", + " # log=True,\n", + ")\n", + "print(\"* Total time = %5g seconds\\n\" % (time.process_time() - start_time))\n", + "\n", + "# Plot the results from the optimization\n", + "plot_lanechange(timepts, result2.states, result2.inputs, xf)\n", + "print(\"Final computed state: \", result2.states[:,-1])\n", + "\n", + "# Simulate the system and see what happens\n", + "t2, u2 = result2.time, result2.inputs\n", + "t2, y2 = ct.input_output_response(kincar, timepts, u2, x0)\n", + "plot_lanechange(t2, y2, u2, yf=xf[0:2])\n", + "print(\"Final simulated state:\", y2[:,-1])" + ] + }, + { + "cell_type": "markdown", + "id": "3d2ccf97", + "metadata": {}, + "source": [ + "### Approach 3: terminal constraints\n", + "\n", + "We can also remove the cost function on the state and replace it with a terminal *constraint* on the state. If a solution is found, it guarantees we get to exactly the final state. Note however, that terminal constraints can be very difficult to satisfy for a general optimization (compare the solution times here with what we saw last week when we used differential flatness)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "dc77a856", + "metadata": {}, + "outputs": [], + "source": [ + "# Input cost and terminal constraints\n", + "R = np.diag([1, 1]) # minimize applied inputs\n", + "cost3 = opt.quadratic_cost(kincar, np.zeros((3,3)), R, u0=uf)\n", + "constraints = [\n", + " opt.input_range_constraint(kincar, [8, -0.1], [12, 0.1]) ]\n", + "terminal = [ opt.state_range_constraint(kincar, xf, xf) ]\n", + "\n", + "# Compute the optimal control\n", + "start_time = time.process_time()\n", + "result3 = opt.solve_ocp(\n", + " kincar, timepts, x0, cost3, constraints,\n", + " terminal_constraints=terminal, initial_guess=straight_line,\n", + "# solve_ivp_kwargs={'atol': 1e-3, 'rtol': 1e-2},\n", + "# minimize_method='trust-constr',\n", + "# minimize_options={'finite_diff_rel_step': 0.01},\n", + ")\n", + "print(\"* Total time = %5g seconds\\n\" % (time.process_time() - start_time))\n", + "\n", + "# Plot the results from the optimization\n", + "plot_lanechange(timepts, result3.states, result3.inputs, xf)\n", + "print(\"Final computed state: \", result3.states[:,-1])\n", + "\n", + "# Simulate the system and see what happens\n", + "t3, u3 = result3.time, result3.inputs\n", + "t3, y3 = ct.input_output_response(kincar, timepts, u3, x0)\n", + "plot_lanechange(t3, y3, u3, yf=xf[0:2])\n", + "print(\"Final state: \", y3[:,-1])" + ] + }, + { + "cell_type": "markdown", + "id": "9e744463", + "metadata": {}, + "source": [ + "### Approach 4: terminal constraints w/ basis functions\n", + "\n", + "As a final example, we can use a basis function to reduce the size\n", + "of the problem and get faster answers with more temporal resolution.\n", + "\n", + "Here we parameterize the input by a set of 4 Bezier curves but solve for a much more time resolved set of inputs. Note that while we are using the `control.flatsys` module to define the basis functions, we are not exploiting the fact that the system is differentially flat." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ee82aa25", + "metadata": {}, + "outputs": [], + "source": [ + "# Get basis functions for flat systems module\n", + "import control.flatsys as flat\n", + "\n", + "# Compute the optimal control\n", + "start_time = time.process_time()\n", + "result4 = opt.solve_ocp(\n", + " kincar, timepts, x0, quad_cost, constraints,\n", + " terminal_constraints=terminal,\n", + " initial_guess=straight_line,\n", + " basis=flat.PolyFamily(4, T=Tf),\n", + " # solve_ivp_kwargs={'method': 'RK45', 'atol': 1e-2, 'rtol': 1e-2},\n", + " # solve_ivp_kwargs={'atol': 1e-3, 'rtol': 1e-2},\n", + " # minimize_method='trust-constr', minimize_options={'disp': True},\n", + " log=False\n", + ")\n", + "print(\"* Total time = %5g seconds\\n\" % (time.process_time() - start_time))\n", + "\n", + "# Plot the results from the optimization\n", + "plot_lanechange(timepts, result4.states, result4.inputs, xf)\n", + "print(\"Final computed state: \", result3.states[:,-1])\n", + "\n", + "# Simulate the system and see what happens\n", + "t4, u4 = result4.time, result4.inputs\n", + "t4, y4 = ct.input_output_response(kincar, timepts, u4, x0)\n", + "plot_lanechange(t4, y4, u4, yf=xf[0:2])\n", + "plt.legend(['optimal', 'simulation'])\n", + "print(\"Final simulated state: \", y4[:,-1])" + ] + }, + { + "cell_type": "markdown", + "id": "2a74388e", + "metadata": {}, + "source": [ + "Note how much smoother the inputs look, although the solver can still have a hard time satisfying the final constraints, resulting in longer computation times." + ] + }, + { + "cell_type": "markdown", + "id": "1465d149", + "metadata": {}, + "source": [ + "### Additional things to try\n", + "\n", + "* Compare the results here with what we go last week exploiting the property of differential flatness (computation time, in particular)\n", + "* Try using different weights, solvers, initial guess and other properties and see how things change.\n", + "* Try using different values for `initial_guess` to get faster convergence and/or different classes of solutions." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "02bad3d5", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/examples/cds112-L4a_lqr-tracking.ipynb b/examples/cds112-L4a_lqr-tracking.ipynb new file mode 100644 index 000000000..0687f4cc5 --- /dev/null +++ b/examples/cds112-L4a_lqr-tracking.ipynb @@ -0,0 +1,279 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "af1717f2", + "metadata": {}, + "source": [ + "# LQR Tracking Example\n", + "\n", + "Richard M. Murray, 25 Jan 2022\n", + "\n", + "This example uses a linear system to show how to implement LQR based tracking and some of the tradeoffs between feedfoward and feedback. Integral action is also implemented." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "50d5c4d3", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import control as ct" + ] + }, + { + "cell_type": "markdown", + "id": "a23d6f89", + "metadata": {}, + "source": [ + "## System definition\n", + "\n", + "We use a simple linear system to illustrate the concepts. This system corresponds to the linearized lateral dynamics of a vehicle driving down a road at 10 m/s." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b5923c88", + "metadata": {}, + "outputs": [], + "source": [ + "# Define a simple linear system that we want to control\n", + "sys = ct.ss([[0, 10], [-1, 0]], [[0], [1]], np.eye(2), 0, name='sys')\n", + "print(sys)" + ] + }, + { + "cell_type": "markdown", + "id": "dba5ea2b", + "metadata": {}, + "source": [ + "## Controller design\n", + "\n", + "We start by defining the equilibrium point that we plan to stabilize." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "874c1479", + "metadata": {}, + "outputs": [], + "source": [ + "# Define the desired equilibrium point for the system\n", + "x0 = np.array([2, 0])\n", + "u0 = np.array([2])\n", + "Tf = 4" + ] + }, + { + "cell_type": "markdown", + "id": "99f036ea", + "metadata": {}, + "source": [ + "Then construct a simple LQR controller (gain matrix) and create the controller + closed loop system models:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3ce6a230", + "metadata": {}, + "outputs": [], + "source": [ + "# Construct an LQR controller for the system\n", + "K, _, _ = ct.lqr(sys, np.eye(sys.nstates), np.eye(sys.ninputs))\n", + "ctrl, clsys = ct.create_statefbk_iosystem(sys, K)\n", + "print(ctrl)\n", + "print(clsys)" + ] + }, + { + "cell_type": "markdown", + "id": "5c711b56", + "metadata": {}, + "source": [ + "Note that the name of the second system is `u[0]`. This is a bug in control-0.9.3 that will be fixed in a [future release](https://github.com/python-control/python-control/pull/849)." + ] + }, + { + "cell_type": "markdown", + "id": "84422c3f", + "metadata": {}, + "source": [ + "## System simulations\n", + "\n", + "### Baseline controller\n", + "\n", + "To see how the baseline controller performs, we ask it to track a step change in (xd, ud):" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b763b91b", + "metadata": {}, + "outputs": [], + "source": [ + "# Plot the step response with respect to the reference input\n", + "tvec = np.linspace(0, Tf, 100)\n", + "xd = x0\n", + "ud = u0\n", + "\n", + "# U = np.hstack([xd, ud])\n", + "U = np.outer(np.hstack([xd, ud]), np.ones_like(tvec))\n", + "time, output = ct.input_output_response(clsys, tvec, U)\n", + "plt.plot(time, output[0], time, output[1])\n", + "plt.plot([time[0], time[-1]], [xd[0], xd[0]], '--');\n", + "plt.legend(['x[0]', 'x[1]']);" + ] + }, + { + "cell_type": "markdown", + "id": "84ee7635", + "metadata": {}, + "source": [ + "### Disturbance rejection\n", + "\n", + "We add a disturbance to the system by modifying ud (since this enters directly at the system input u)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1ecbb3a0", + "metadata": {}, + "outputs": [], + "source": [ + "# Resimulate with a disturbance input\n", + "delta = 0.5\n", + "U = np.outer(np.hstack([xd, ud + delta]), np.ones_like(tvec))\n", + "time, output = ct.input_output_response(clsys, tvec, U)\n", + "plt.plot(time, output[0], time, output[1])\n", + "plt.plot([time[0], time[-1]], [xd[0], xd[0]], '--')\n", + "plt.legend(['x[0]', 'x[1]']);" + ] + }, + { + "cell_type": "markdown", + "id": "ea2d1c59", + "metadata": {}, + "source": [ + "We see that this leads to steady state error, since some amount of system error is required to generate the force to offset the disturbance." + ] + }, + { + "cell_type": "markdown", + "id": "84a9e61c", + "metadata": {}, + "source": [ + "### Integral feedback\n", + "\n", + "A standard approach to compensate for constant disturbances is to use integral feedback. To do this, we have to decide what output we want to track and create a new controller with integral feedback.\n", + "\n", + "We do this by creating an \"augmented\" system that includes the dynamics of the process along with the dynamics of the controller (= integrators for the errors that we choose):" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ee2ecc51", + "metadata": {}, + "outputs": [], + "source": [ + "# Create a controller with integral feedback\n", + "C = np.array([[1, 0]])\n", + "\n", + "# Define an augmented state space for use with LQR\n", + "A_aug = np.block([\n", + " [sys.A, np.zeros((sys.nstates, 1))], \n", + " [C, 0]\n", + "])\n", + "B_aug = np.vstack([sys.B, 0])\n", + "print(\"A =\", A_aug, \"\\nB =\", B_aug)" + ] + }, + { + "cell_type": "markdown", + "id": "463d9b85", + "metadata": {}, + "source": [ + "Now generate an LQR controller for the augmented system:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3dd3479f", + "metadata": {}, + "outputs": [], + "source": [ + "# Create an LQR controller for the augmented system\n", + "K_aug, _, _ = ct.lqr(\n", + " A_aug, B_aug, np.diag([1, 1, 1]), np.eye(sys.ninputs))\n", + "print(K_aug)" + ] + }, + { + "cell_type": "markdown", + "id": "19bb6592", + "metadata": {}, + "source": [ + "We can think about this gain as `K_aug = [K, ki]` and the resulting contoller becomes\n", + "\n", + "$$\n", + "u = u_\\text{d} - K(x - x_\\text{d}) - k_\\text{i} \\int_0^t (y - y_\\text{d})\\, d\\tau.\n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e183a822", + "metadata": {}, + "outputs": [], + "source": [ + "# Construct an LQR controller for the system\n", + "integral_ctrl, sys_integral = ct.create_statefbk_iosystem(sys, K_aug, integral_action=C)\n", + "print(integral_ctrl)\n", + "print(sys_integral)\n", + "\n", + "# Resimulate with a disturbance input\n", + "delta = 0.5\n", + "U = np.outer(np.hstack([xd, ud + delta]), np.ones_like(tvec))\n", + "time, output = ct.input_output_response(sys_integral, tvec, U)\n", + "plt.plot(time, output[0], time, output[1])\n", + "plt.plot([time[0], time[-1]], [xd[0], xd[0]], '--')\n", + "plt.legend(['x[0]', 'x[1]']);" + ] + }, + { + "cell_type": "markdown", + "id": "437487da", + "metadata": {}, + "source": [ + "## Things to try\n", + "* Play around with the gains and see whether you can reduce the overshoot (50%!)\n", + "* Try following more complicated trajectories (hint: linear systems are differentially flat...)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "99394ace", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/examples/cds112-L4b_pvtol-lqr.ipynb b/examples/cds112-L4b_pvtol-lqr.ipynb new file mode 100644 index 000000000..b472429e2 --- /dev/null +++ b/examples/cds112-L4b_pvtol-lqr.ipynb @@ -0,0 +1,355 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "f8bfc15c", + "metadata": {}, + "source": [ + "# PVTOL Linear Quadratic Regulator Example\n", + "\n", + "Richard M. Murray, 25 Jan 2022\n", + "\n", + "This notebook contains an example of LQR control applied to the PVTOL system. It demonstrates how to construct an LQR controller and also the importance of the feedforward component of the controller. A gain scheduled design is also demonstrated." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c120d65c", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import control as ct" + ] + }, + { + "cell_type": "markdown", + "id": "77e2ed47", + "metadata": {}, + "source": [ + "## System description\n", + "\n", + "We use the PVTOL dynamics from the textbook, which are contained in the `pvtol` module. The vehicle model is both an I/O system model and a flat system model (for the case when the viscous damping coefficient $c$ is zero).\n", + "\n", + "\n", + "\n", + " \n", + " \n", + "\n", + "
\n", + "$$\n", + "\\begin{aligned}\n", + " m \\ddot x &= F_1 \\cos\\theta - F_2 \\sin\\theta - c \\dot x, \\\\\n", + " m \\ddot y &= F_1 \\sin\\theta + F_2 \\cos\\theta - m g - c \\dot y, \\\\\n", + " J \\ddot \\theta &= r F_1.\n", + "\\end{aligned}\n", + "$$\n", + "
" + ] + }, + { + "cell_type": "markdown", + "id": "0a12fc3d", + "metadata": {}, + "source": [ + "The parameter values for the PVTOL system come from the Caltech ducted fan experiment, shown in the video below (the wing forces are not included in the PVTOL model):" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7adc6cf1", + "metadata": {}, + "outputs": [], + "source": [ + "from IPython.display import YouTubeVideo\n", + "display(YouTubeVideo('ZFb5kFpgCm4', width=640, height=480))\n", + "\n", + "from pvtol import pvtol, plot_results\n", + "print(pvtol)" + ] + }, + { + "cell_type": "markdown", + "id": "45259984", + "metadata": {}, + "source": [ + "Since we will be creating a linear controller, we need a linear system model. We obtain that model by linearizing the dynamics around an equilibrium point. This can be done in python-control using the `find_eqpt` function. We fix the output of the system to be zero and find the state and inputs that hold us there." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ea50d7cd", + "metadata": {}, + "outputs": [], + "source": [ + "# Find the equilibrium point corresponding to hover\n", + "xeq, ueq = ct.find_eqpt(pvtol, np.zeros(6), np.zeros(2), y0=np.zeros(6), iy=[0, 1])\n", + "\n", + "print(\"xeq = \", xeq)\n", + "print(\"ueq = \", ueq)\n", + "\n", + "# Get the linearized dynamics\n", + "linsys = pvtol.linearize(xeq, ueq)\n", + "print(linsys)" + ] + }, + { + "cell_type": "markdown", + "id": "7cb8840b", + "metadata": {}, + "source": [ + "## Linear quadratic regulator (LQR) design\n", + "\n", + "Now that we have a linearized model of the system, we can compute a controller using linear quadratic regulator theory. We seek to find the control law that minimizes the function\n", + "\n", + "$$\n", + "J(x(\\cdot), u(\\cdot)) = \\int_0^\\infty x^T(\\tau) Q_x x(\\tau) + u^T(\\tau) Q_u u(\\tau)\\, d\\tau\n", + "$$\n", + "\n", + "The weighting matrices $Q_x \\in \\mathbb{R}^{n \\times n}$ and $Q_u \\in \\mathbb{R}^{m \\times m}$ should be chosen based on the desired performance of the system (tradeoffs in state errors and input magnitudes). See Example 3.5 in OBC for a discussion of how to choose these weights. For now, we just choose identity weights for all states and inputs." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5cfa1ba7", + "metadata": {}, + "outputs": [], + "source": [ + "# Start with a diagonal weighting\n", + "Qx1 = np.diag([1, 1, 1, 1, 1, 1])\n", + "Qu1 = np.diag([1, 1])\n", + "K, X, E = ct.lqr(linsys, Qx1, Qu1)" + ] + }, + { + "cell_type": "markdown", + "id": "863d07de", + "metadata": {}, + "source": [ + "To create a controller for the system, we need to create an I/O system that takes in the desired trajectory $(x_\\text{d}, u_\\text{d})$ and the current state $x$ and generates the control law\n", + "\n", + "$$\n", + "u = u_\\text{d} - K (x - x_\\text{d})\n", + "$$\n", + "\n", + "The function `create_statefbk_iosystem()` does this (see [documentation](https://python-control.readthedocs.io/en/0.9.3.post2/generated/control.create_statefbk_iosystem.html) for details)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5db704e6", + "metadata": {}, + "outputs": [], + "source": [ + "control, pvtol_closed = ct.create_statefbk_iosystem(pvtol, K)\n", + "print(control, \"\\n\")\n", + "print(pvtol_closed)" + ] + }, + { + "cell_type": "markdown", + "id": "bedcb0c0", + "metadata": {}, + "source": [ + "## Closed loop system simulation\n", + "\n", + "We now generate a trajectory for the system and track that trajectory.\n", + "\n", + "For this simple example, we take the system input to be a \"step\" input that moves the system 1 meter to the right. More complex trajectories (eg, using the results from HW #3) could also be used." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a497aa2c", + "metadata": {}, + "outputs": [], + "source": [ + "# Generate a step response by setting xd, ud\n", + "Tf = 15\n", + "T = np.linspace(0, Tf, 100)\n", + "xd = np.outer(np.array([1, 0, 0, 0, 0, 0]), np.ones_like(T))\n", + "ud = np.outer(ueq, np.ones_like(T))\n", + "ref = np.vstack([xd, ud])\n", + "\n", + "response = ct.input_output_response(pvtol_closed, T, ref, xeq)\n", + "plot_results(response.time, response.states, response.outputs[6:])" + ] + }, + { + "cell_type": "markdown", + "id": "f014e660", + "metadata": {}, + "source": [ + "The limitations of the linear controlller can be seen if we take a larger step, say 10 meters." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a141f100", + "metadata": {}, + "outputs": [], + "source": [ + "xd = np.outer(np.array([10, 0, 0, 0, 0, 0]), np.ones_like(T))\n", + "ref = np.vstack([xd, ud])\n", + "response = ct.input_output_response(pvtol_closed, T, ref, xeq)\n", + "plot_results(response.time, response.states, response.outputs[6:])" + ] + }, + { + "cell_type": "markdown", + "id": "8adb6ff4", + "metadata": {}, + "source": [ + "We see that the large initial error causes the vehicle to rotate to a very high role angle (almost 1 radian $\\approx 60^\\circ$), at which point the linear model is not very accurate and the controller errors in the $y$ direction get very large.\n", + "\n", + "One way to fix this problem is to change the gains on the controller so that we penalize the $y$ error more and try to keep that error from building up. However, given the fact that we are trying to stabilize a point that is fairly far from our initial condition, it can be difficult to manage the tradesoffs to get good performance.\n", + "\n", + "An alterntaive approach is is to stabilize the system around a trajectory that moves from the initial to final condition. As a very simple approach, we start by using a _nonfeasible_ trajectory that goes from 0 to 10 in 10 seconds." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a075a0a7", + "metadata": {}, + "outputs": [], + "source": [ + "timepts = np.linspace(0, 15, 100)\n", + "xf = np.array([10, 0, 0, 0, 0, 0])\n", + "xd = np.array([xf/10 * t if t < 10 else xf for t in timepts]).T\n", + "ud = np.outer(ueq, np.ones_like(timepts))\n", + "ref = np.vstack([xd, ud])\n", + "response = ct.input_output_response(pvtol_closed, timepts, ref, xeq)\n", + "plot_results(response.time, response.states, response.outputs[6:])" + ] + }, + { + "cell_type": "markdown", + "id": "73d74c23", + "metadata": {}, + "source": [ + "Note that even though the trajectory was not feasible (it asked the system to move sideways while remaining pointed in the vertical ($\\theta = 0$) direction, the controller has very good performance." + ] + }, + { + "cell_type": "markdown", + "id": "b7539806", + "metadata": {}, + "source": [ + "## Gain scheduled controller design" + ] + }, + { + "cell_type": "markdown", + "id": "23d7e21c", + "metadata": {}, + "source": [ + "Another challenge in using linearized models is that they are only accurate near the point in which they were computed. For the PVTOL system, this can be a problem if the roll angle $\\theta$ gets large, since in this case the linearization changes significantly (the forces $F_1$ and $F_2$ are no longer aligned with the horizontal and vertical axes).\n", + "\n", + "One approach to solving this problem is to compute different gains at different points in the operating envelope of the system. The code below illustrates the use of gain scheduling by modifying the system drag to a very high value (so that the vehicle must roll to a large angle in order to move sideways against the high drag) and then demonstrates the difficulty in obtaining good performance while trying to track the (still infeasible) trajectory." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4590b138", + "metadata": {}, + "outputs": [], + "source": [ + "# Increase the viscous drag to force larger angles\n", + "linsys = pvtol.linearize(xeq, ueq, params={'c': 20})\n", + "\n", + "# Change to physically motivated gains\n", + "Qx3 = np.diag([10, 100, (180/np.pi) / 5, 0, 0, 0])\n", + "Qu3 = np.diag([10, 1])\n", + "\n", + "# Compute a single gain around hover\n", + "K, X, E = ct.lqr(linsys, Qx3, Qu3)\n", + "control, pvtol_closed = ct.create_statefbk_iosystem(pvtol, K)\n", + "\n", + "# Simulate the response trying to track horizontal trajectory\n", + "response = ct.input_output_response(pvtol_closed, T, ref, xeq, params={'c': 20})\n", + "plot_results(response.time, response.states, response.outputs[6:])" + ] + }, + { + "cell_type": "markdown", + "id": "9e01104a", + "metadata": {}, + "source": [ + "Note that the angle $\\theta$ is quite large (-0.5 rad) during the initla portion of the trajectory, and at this angle (~30$^\\circ$) it is difficult to maintain our altitude while moving sideways. This happens in large part becuase the system model that we used was linearized about the $\\theta = 0$ configuration.\n", + "\n", + "This problem can be addressed by designing a gain scheduled controller in which we compute different system gains at different roll angles. We carry out those computations below, using the `create_statefbk_iosystem` function, but now passing a set of gains and points instead of just a single gain.\n", + "\n", + "(Note: there is a bug in control-0.9.3 that requires gain scheduling to be done on two or more variables, so we also schedule on the horizontal velocity $\\dot x$, even though that doesn't matter that much here.)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e427459f", + "metadata": {}, + "outputs": [], + "source": [ + "import itertools\n", + "import math\n", + "\n", + "# Set up points around which to linearize (control-0.9.3: must be 2D or greater)\n", + "angles = np.linspace(-math.pi/3, math.pi/3, 10)\n", + "speeds = np.linspace(-10, 10, 3)\n", + "points = list(itertools.product(angles, speeds))\n", + "\n", + "# Compute the gains at each design point\n", + "gains = []\n", + "for point in points:\n", + " # Compute the state that we want to linearize about\n", + " xgs = xeq.copy()\n", + " xgs[2], xgs[3] = point[0], point[1]\n", + " \n", + " # Linearize the system and compute the LQR gains\n", + " linsys = pvtol.linearize(xgs, ueq, params={'c': 20})\n", + " K, X, E = ct.lqr(linsys, Qx3, Qu3)\n", + " gains.append(K)\n", + " \n", + "# Create a gain scheduled controller off of the current state\n", + "control, pvtol_closed = ct.create_statefbk_iosystem(\n", + " pvtol, (gains, points), gainsched_indices=['x2', 'x3'])\n", + "\n", + "# Simulate the response\n", + "response = ct.input_output_response(pvtol_closed, T, ref, xeq, params={'c': 20})\n", + "plot_results(response.time, response.states, response.outputs[6:])" + ] + }, + { + "cell_type": "markdown", + "id": "7399db70", + "metadata": {}, + "source": [ + "We see that the response is much better, with about 10X less error in the $y$ coordinate." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c8021347", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/examples/cds112-L5_rhc-doubleint.ipynb b/examples/cds112-L5_rhc-doubleint.ipynb new file mode 100644 index 000000000..52293b6ff --- /dev/null +++ b/examples/cds112-L5_rhc-doubleint.ipynb @@ -0,0 +1,616 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "9d41c333", + "metadata": {}, + "source": [ + "# RHC Example: Double integrator with bounded input\n", + "\n", + "Richard M. Murray, 3 Feb 2022 (updated 29 Jan 2023)\n", + "\n", + "To illustrate the implementation of a receding horizon controller, we\n", + "consider a linear system corresponding to a double integrator with\n", + "bounded input:\n", + "\n", + "$$\n", + " \\dot x = \\begin{bmatrix} 0 & 1 \\\\ 0 & 0 \\end{bmatrix} x + \\begin{bmatrix} 0 \\\\ 1 \\end{bmatrix} \\text{clip}(u)\n", + " \\qquad\\text{where}\\qquad\n", + " \\text{clip}(u) = \\begin{cases}\n", + " -1 & u < -1, \\\\\n", + " u & -1 \\leq u \\leq 1, \\\\\n", + " 1 & u > 1.\n", + " \\end{cases}\n", + "$$\n", + "\n", + "We implement a model predictive controller by choosing\n", + "\n", + "$$\n", + " Q_x = \\begin{bmatrix} 1 & 0 \\\\ 0 & 0 \\end{bmatrix}, \\qquad\n", + " Q_u = \\begin{bmatrix} 1 \\end{bmatrix}, \\qquad\n", + " P_1 = \\begin{bmatrix} 0.1 & 0 \\\\ 0 & 0.1 \\end{bmatrix}.\n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4fe0af7f", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import scipy as sp\n", + "import matplotlib.pyplot as plt\n", + "import control as ct\n", + "import control.optimal as opt\n", + "import control.flatsys as fs\n", + "import time" + ] + }, + { + "cell_type": "markdown", + "id": "4c695f81", + "metadata": {}, + "source": [ + "## System definition\n", + "\n", + "The system is defined as a double integrator with bounded input." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5c01f571", + "metadata": {}, + "outputs": [], + "source": [ + "def doubleint_update(t, x, u, params):\n", + " # Get the parameters\n", + " lb = params.get('lb', -1)\n", + " ub = params.get('ub', 1)\n", + " assert lb < ub\n", + "\n", + " # bound the input\n", + " u_clip = np.clip(u, lb, ub)\n", + "\n", + " return np.array([x[1], u_clip[0]])\n", + "\n", + "proc = ct.NonlinearIOSystem(\n", + " doubleint_update, None, name=\"double integrator\",\n", + " inputs = ['u'], outputs=['x[0]', 'x[1]'], states=2)" + ] + }, + { + "cell_type": "markdown", + "id": "6c2f0d00", + "metadata": {}, + "source": [ + "## Receding horizon controller\n", + "\n", + "To define a receding horizon controller, we create an optimal control problem (using the `OptimalControlProblem` class) and then use the `compute_trajectory` method to solve for the trajectory from the current state.\n", + "\n", + "We start by defining the cost functions, which consists of a trajectory cost and a terminal cost:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a501efef", + "metadata": {}, + "outputs": [], + "source": [ + "Qx = np.diag([1, 0]) # state cost\n", + "Qu = np.diag([1]) # input cost\n", + "traj_cost=opt.quadratic_cost(proc, Qx, Qu)\n", + "\n", + "P1 = np.diag([0.1, 0.1]) # terminal cost\n", + "term_cost = opt.quadratic_cost(proc, P1, None)" + ] + }, + { + "cell_type": "markdown", + "id": "c5470629", + "metadata": {}, + "source": [ + "We also set up a set of constraints the correspond to the fact that the input should have magnitude 1. This can be done using either the [`input_range_constraint`](https://python-control.readthedocs.io/en/0.9.3.post2/generated/control.optimal.input_range_constraint.html) function or the [`input_poly_constraint`](https://python-control.readthedocs.io/en/0.9.3.post2/generated/control.optimal.input_poly_constraint.html) function." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cb4c511a", + "metadata": {}, + "outputs": [], + "source": [ + "traj_constraints = opt.input_range_constraint(proc, -1, 1)\n", + "# traj_constraints = opt.input_poly_constraint(\n", + "# proc, np.array([[1], [-1]]), np.array([1, 1]))" + ] + }, + { + "cell_type": "markdown", + "id": "a5568374", + "metadata": {}, + "source": [ + "We define the horizon for evaluating finite-time, optimal control by setting up a set of time points across the designed horizon. The input will be computed at each time point." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9edec673", + "metadata": {}, + "outputs": [], + "source": [ + "Th = 5\n", + "timepts = np.linspace(0, Th, 11, endpoint=True)\n", + "print(timepts)" + ] + }, + { + "cell_type": "markdown", + "id": "cb8fcecc", + "metadata": {}, + "source": [ + "Finally, we define the optimal control problem that we want to solve (without actually solving it)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e9f31be6", + "metadata": {}, + "outputs": [], + "source": [ + "# Set up the optimal control problem\n", + "ocp = opt.OptimalControlProblem(\n", + " proc, timepts, traj_cost,\n", + " terminal_cost=term_cost,\n", + " trajectory_constraints=traj_constraints,\n", + " # terminal_constraints=term_constraints,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "ee9a39dd", + "metadata": {}, + "source": [ + "To make sure that the problem is properly defined, we solve the problem for a specific initial condition. We also compare the amount of time required to solve the problem from a \"cold start\" (no initial guess) versus a \"warm start\" (use the previous solution, shifted forward on point in time)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "887295eb", + "metadata": {}, + "outputs": [], + "source": [ + "X0 = np.array([1, 1])\n", + "\n", + "start_time = time.process_time()\n", + "res = ocp.compute_trajectory(X0, initial_guess=0, return_states=True)\n", + "stop_time = time.process_time()\n", + "print(f'* Cold start: {stop_time-start_time:.3} sec')\n", + "\n", + "# Resolve using previous solution (shifted forward) as initial guess to compare timing\n", + "start_time = time.process_time()\n", + "u = res.inputs\n", + "u_shift = np.hstack([u[:, 1:], u[:, -1:]])\n", + "ocp.compute_trajectory(X0, initial_guess=u_shift, print_summary=False)\n", + "stop_time = time.process_time()\n", + "print(f'* Warm start: {stop_time-start_time:.3} sec')" + ] + }, + { + "cell_type": "markdown", + "id": "115dec26", + "metadata": {}, + "source": [ + "(In this case the timing is not that different since the system is very simple.)\n", + "\n", + "Plotting the result, we see that the solution is properly computed." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4b98e773", + "metadata": {}, + "outputs": [], + "source": [ + "plt.plot(res.time, res.states[0], 'k-', label='$x_1$')\n", + "plt.plot(res.time, res.inputs[0], 'b-', label='u')\n", + "plt.xlabel('Time [s]')\n", + "plt.ylabel('$x_1$, $u$')\n", + "plt.legend();" + ] + }, + { + "cell_type": "markdown", + "id": "0e85981a", + "metadata": {}, + "source": [ + "We implement the receding horicon controller using a function that we can with different versions of the problem." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "eb2e8126", + "metadata": {}, + "outputs": [], + "source": [ + "# Create a figure to use for plotting\n", + "def run_rhc_and_plot(\n", + " proc, ocp, X0, Tf, print_summary=False, verbose=False, ax=None, plot=True): \n", + " # Start at the initial point\n", + " x = X0\n", + " \n", + " # Initialize the axes\n", + " if plot and ax is None:\n", + " ax = plt.axes()\n", + " \n", + " # Initialize arrays to store the final trajectory\n", + " time_, inputs_, outputs_, states_ = [], [], [], []\n", + " \n", + " # Generate the individual traces for the receding horizon control\n", + " for t in ocp.timepts:\n", + " # Compute the optimal trajectory over the horizon\n", + " start_time = time.process_time()\n", + " res = ocp.compute_trajectory(x, print_summary=print_summary)\n", + " if verbose:\n", + " print(f\"{t=}: comp time = {time.process_time() - start_time:0.3}\")\n", + "\n", + " # Simulate the system for the update time, with higher res for plotting\n", + " tvec = np.linspace(0, res.time[1], 20)\n", + " inputs = res.inputs[:, 0] + np.outer(\n", + " (res.inputs[:, 1] - res.inputs[:, 0]) / (tvec[-1] - tvec[0]), tvec)\n", + " soln = ct.input_output_response(proc, tvec, inputs, x)\n", + " \n", + " # Save this segment for later use (final point will appear in next segment)\n", + " time_.append(t + soln.time[:-1])\n", + " inputs_.append(soln.inputs[:, :-1])\n", + " outputs_.append(soln.outputs[:, :-1])\n", + " states_.append(soln.states[:, :-1])\n", + "\n", + " if plot:\n", + " # Plot the results over the full horizon\n", + " h3, = ax.plot(t + res.time, res.states[0], 'k--', linewidth=0.5)\n", + " ax.plot(t + res.time, res.inputs[0], 'b--', linewidth=0.5)\n", + "\n", + " # Plot the results for this time segment\n", + " h1, = ax.plot(t + soln.time, soln.states[0], 'k-')\n", + " h2, = ax.plot(t + soln.time, soln.inputs[0], 'b-')\n", + " \n", + " # Update the state to use for the next time point\n", + " x = soln.states[:, -1]\n", + " \n", + " # Append the final point to the response\n", + " time_.append(t + soln.time[-1:])\n", + " inputs_.append(soln.inputs[:, -1:])\n", + " outputs_.append(soln.outputs[:, -1:])\n", + " states_.append(soln.states[:, -1:])\n", + "\n", + " # Label the plot\n", + " if plot:\n", + " # Adjust the limits for consistency\n", + " ax.set_ylim([-4, 3.5])\n", + "\n", + " # Add reference line for input lower bound\n", + " ax.plot([0, 7], [-1, -1], 'k--', linewidth=0.666)\n", + "\n", + " # Label the results\n", + " ax.set_xlabel(\"Time $t$ [sec]\")\n", + " ax.set_ylabel(\"State $x_1$, input $u$\")\n", + " ax.legend(\n", + " [h1, h2, h3], ['$x_1$', '$u$', 'prediction'],\n", + " loc='lower right', labelspacing=0)\n", + " plt.tight_layout()\n", + " \n", + " # Append\n", + " return ct.TimeResponseData(\n", + " np.hstack(time_), np.hstack(outputs_), np.hstack(states_), np.hstack(inputs_))" + ] + }, + { + "cell_type": "markdown", + "id": "be13e00a", + "metadata": {}, + "source": [ + "Finally, we call the controller and plot the response. The solid lines show the portions of the trajectory that we follow. The dashed lines are the trajectory over the full horizon, but which are not followed since we update the computation at each time step. (To get rid of the statistics of each optimization call, use `print_summary=False`.)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "305a1127", + "metadata": {}, + "outputs": [], + "source": [ + "Tf = 10\n", + "rhc_resp = run_rhc_and_plot(proc, ocp, X0, Tf, verbose=True, print_summary=False)\n", + "print(f\"xf = {rhc_resp.states[:, -1]}\")" + ] + }, + { + "cell_type": "markdown", + "id": "6005bfb3", + "metadata": {}, + "source": [ + "## RHC vs LQR vs LQR terminal cost\n", + "\n", + "In the example above, we used a receding horizon controller with the terminal cost as $P_1 = \\text{diag}(0.1, 0.1)$. An alternative is to set the terminal cost to be the LQR terminal cost that goes along with the trajectory cost, which then provides a \"cost to go\" that matches the LQR \"cost to go\" (but keeping in mind that the LQR controller does not necessarily respect the constraints).\n", + "\n", + "The following code compares the original RHC formulation with a receding horizon controller using an LQR terminal cost versus an LQR controller." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ea2de1f3", + "metadata": {}, + "outputs": [], + "source": [ + "# Get the LQR solution\n", + "K, P_lqr, E = ct.lqr(proc.linearize(0, 0), Qx, Qu)\n", + "print(f\"P_lqr = \\n{P_lqr}\")\n", + "\n", + "# Create an LQR controller (and run it)\n", + "lqr_ctrl, lqr_clsys = ct.create_statefbk_iosystem(proc, K)\n", + "lqr_resp = ct.input_output_response(lqr_clsys, rhc_resp.time, 0, X0)\n", + "\n", + "# Create a new optimal control problem using the LQR terminal cost\n", + "# (need use more refined time grid as well, to approximate LQR rate)\n", + "lqr_timepts = np.linspace(0, Th, 25, endpoint=True)\n", + "lqr_term_cost=opt.quadratic_cost(proc, P_lqr, None)\n", + "ocp_lqr = opt.OptimalControlProblem(\n", + " proc, lqr_timepts, traj_cost, terminal_cost=lqr_term_cost,\n", + " trajectory_constraints=traj_constraints,\n", + ")\n", + "\n", + "# Create the response for the new controller\n", + "rhc_lqr_resp = run_rhc_and_plot(\n", + " proc, ocp_lqr, X0, 10, plot=False, print_summary=False)\n", + "\n", + "# Plot the different responses to compare them\n", + "fig, ax = plt.subplots(2, 1)\n", + "ax[0].plot(rhc_resp.time, rhc_resp.states[0], label='RHC + P_1')\n", + "ax[0].plot(rhc_lqr_resp.time, rhc_lqr_resp.states[0], '--', label='RHC + P_lqr')\n", + "ax[0].plot(lqr_resp.time, lqr_resp.outputs[0], ':', label='LQR')\n", + "ax[0].legend()\n", + "\n", + "ax[1].plot(rhc_resp.time, rhc_resp.inputs[0], label='RHC + P_1')\n", + "ax[1].plot(rhc_lqr_resp.time, rhc_lqr_resp.inputs[0], '--', label='RHC + P_lqr')\n", + "ax[1].plot(lqr_resp.time, lqr_resp.outputs[2], ':', label='LQR')" + ] + }, + { + "cell_type": "markdown", + "id": "9497530b", + "metadata": {}, + "source": [ + "## Discrete time RHC\n", + "\n", + "Many receding horizon control problems are solved based on a discrete-time model. We show here how to implement this for a \"double integrator\" system, which in discrete time has the form\n", + "\n", + "$$\n", + " x[k+1] = \\begin{bmatrix} 1 & 1 \\\\ 0 & 1 \\end{bmatrix} x[k] + \\begin{bmatrix} 0 \\\\ 1 \\end{bmatrix} \\text{clip}(u[k])\n", + "$$\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ae7cefa5", + "metadata": {}, + "outputs": [], + "source": [ + "#\n", + "# System definition\n", + "#\n", + "\n", + "def doubleint_update(t, x, u, params):\n", + " # Get the parameters\n", + " lb = params.get('lb', -1)\n", + " ub = params.get('ub', 1)\n", + " assert lb < ub\n", + "\n", + " # Get the sampling time\n", + " dt = params.get('dt', 1)\n", + "\n", + " # bound the input\n", + " u_clip = np.clip(u, lb, ub)\n", + "\n", + " return np.array([x[0] + dt * x[1], x[1] + dt * u_clip[0]])\n", + "\n", + "proc = ct.NonlinearIOSystem(\n", + " doubleint_update, None, name=\"double integrator\",\n", + " inputs = ['u'], outputs=['x[0]', 'x[1]'], states=2,\n", + " params={'dt': 1}, dt=1)\n", + "\n", + "#\n", + "# Linear quadratic regulator\n", + "#\n", + "\n", + "# Define the cost functions to use\n", + "Qx = np.diag([1, 0]) # state cost\n", + "Qu = np.diag([1]) # input cost\n", + "P1 = np.diag([0.1, 0.1]) # terminal cost\n", + "\n", + "# Get the LQR solution\n", + "K, P, E = ct.dlqr(proc.linearize(0, 0), Qx, Qu)\n", + "\n", + "# Test out the LQR controller, with no constraints\n", + "linsys = proc.linearize(0, 0)\n", + "clsys_lin = ct.ss(linsys.A - linsys.B @ K, linsys.B, linsys.C, 0, dt=proc.dt)\n", + "\n", + "X0 = np.array([2, 1]) # initial conditions\n", + "Tf = 10 # simulation time\n", + "res = ct.initial_response(clsys_lin, Tf, X0=X0)\n", + "\n", + "# Plot the results\n", + "plt.figure(1); plt.clf(); ax = plt.axes()\n", + "ax.plot(res.time, res.states[0], 'k-', label='$x_1$')\n", + "ax.plot(res.time, (-K @ res.states)[0], 'b-', label='$u$')\n", + "\n", + "# Test out the LQR controller with constraints\n", + "clsys_lqr = ct.feedback(proc, -K, 1)\n", + "tvec = np.arange(0, Tf, proc.dt)\n", + "res_lqr_const = ct.input_output_response(clsys_lqr, tvec, 0, X0)\n", + "\n", + "# Plot the results\n", + "ax.plot(res_lqr_const.time, res_lqr_const.states[0], 'k--', label='constrained')\n", + "ax.plot(res_lqr_const.time, (-K @ res_lqr_const.states)[0], 'b--')\n", + "ax.plot([0, 7], [-1, -1], 'k--', linewidth=0.75)\n", + "\n", + "# Adjust the limits for consistency\n", + "ax.set_ylim([-4, 3.5])\n", + "\n", + "# Label the results\n", + "ax.set_xlabel(\"Time $t$ [sec]\")\n", + "ax.set_ylabel(\"State $x_1$, input $u$\")\n", + "ax.legend(loc='lower right', labelspacing=0)\n", + "plt.title(\"Linearized LQR response from x0\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "13cfc5d8", + "metadata": {}, + "outputs": [], + "source": [ + "#\n", + "# Receding horizon controller\n", + "#\n", + "\n", + "# Create the constraints\n", + "traj_constraints = opt.input_range_constraint(proc, -1, 1)\n", + "term_constraints = opt.state_range_constraint(proc, [0, 0], [0, 0])\n", + "\n", + "# Define the optimal control problem we want to solve\n", + "T = 5\n", + "timepts = np.arange(0, T * proc.dt, proc.dt)\n", + "\n", + "# Set up the optimal control problems\n", + "ocp_orig = opt.OptimalControlProblem(\n", + " proc, timepts,\n", + " opt.quadratic_cost(proc, Qx, Qu),\n", + " trajectory_constraints=traj_constraints,\n", + " terminal_cost=opt.quadratic_cost(proc, P1, None),\n", + ")\n", + "\n", + "ocp_lqr = opt.OptimalControlProblem(\n", + " proc, timepts,\n", + " opt.quadratic_cost(proc, Qx, Qu),\n", + " trajectory_constraints=traj_constraints,\n", + " terminal_cost=opt.quadratic_cost(proc, P, None),\n", + ")\n", + "\n", + "ocp_low = opt.OptimalControlProblem(\n", + " proc, timepts,\n", + " opt.quadratic_cost(proc, Qx, Qu),\n", + " trajectory_constraints=traj_constraints,\n", + " terminal_cost=opt.quadratic_cost(proc, P/10, None),\n", + ")\n", + "\n", + "ocp_high = opt.OptimalControlProblem(\n", + " proc, timepts,\n", + " opt.quadratic_cost(proc, Qx, Qu),\n", + " trajectory_constraints=traj_constraints,\n", + " terminal_cost=opt.quadratic_cost(proc, P*10, None),\n", + ")\n", + "weight_list = [P1, P, P/10, P*10]\n", + "ocp_list = [ocp_orig, ocp_lqr, ocp_low, ocp_high]\n", + "\n", + "# Do a test run to figure out how long computation takes\n", + "start_time = time.process_time()\n", + "ocp_lqr.compute_trajectory(X0)\n", + "stop_time = time.process_time()\n", + "print(\"* Process time: %0.2g s\\n\" % (stop_time - start_time))\n", + "\n", + "# Create a figure to use for plotting\n", + "fig, [[ax_orig, ax_lqr], [ax_low, ax_high]] = plt.subplots(2, 2)\n", + "ax_list = [ax_orig, ax_lqr, ax_low, ax_high]\n", + "ax_name = ['orig', 'lqr', 'low', 'high']\n", + "\n", + "# Generate the individual traces for the receding horizon control\n", + "for ocp, ax, name, Pf in zip(ocp_list, ax_list, ax_name, weight_list):\n", + " x, t = X0, 0\n", + " for i in np.arange(0, Tf, proc.dt):\n", + " # Calculate the optimal trajectory\n", + " res = ocp.compute_trajectory(x, print_summary=False)\n", + " soln = ct.input_output_response(proc, res.time, res.inputs, x)\n", + "\n", + " # Plot the results for this time instant\n", + " ax.plot(res.time[:2] + t, res.inputs[0, :2], 'b-', linewidth=1)\n", + " ax.plot(res.time[:2] + t, soln.outputs[0, :2], 'k-', linewidth=1)\n", + " \n", + " # Plot the results projected forward\n", + " ax.plot(res.time[1:] + t, res.inputs[0, 1:], 'b--', linewidth=0.75)\n", + " ax.plot(res.time[1:] + t, soln.outputs[0, 1:], 'k--', linewidth=0.75)\n", + " \n", + " # Update the state to use for the next time point\n", + " x = soln.states[:, 1]\n", + " t += proc.dt\n", + "\n", + " # Adjust the limits for consistency\n", + " ax.set_ylim([-1.5, 3.5])\n", + "\n", + " # Label the results\n", + " ax.set_xlabel(\"Time $t$ [sec]\")\n", + " ax.set_ylabel(\"State $x_1$, input $u$\")\n", + " ax.set_title(f\"MPC response for {name}\")\n", + " plt.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "id": "015dc953", + "metadata": {}, + "source": [ + "We can also implement a receding horizon controller for a discrete-time system using `opt.create_mpc_iosystem`. This creates a controller that accepts the current state as the input and generates the control to apply from that state." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4f8bb594", + "metadata": {}, + "outputs": [], + "source": [ + "# Construct using create_mpc_iosystem\n", + "clsys = opt.create_mpc_iosystem(\n", + " proc, timepts, opt.quadratic_cost(proc, Qx, Qu), traj_constraints,\n", + " terminal_cost=opt.quadratic_cost(proc, P1, None), \n", + ")\n", + "print(clsys)" + ] + }, + { + "cell_type": "markdown", + "id": "f1b08fb4", + "metadata": {}, + "source": [ + "(This function needs some work to be more user-friendly, e.g. renaming of the inputs and outputs.)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d2afd287", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/examples/cds112-L6_stochastic-linsys.ipynb b/examples/cds112-L6_stochastic-linsys.ipynb new file mode 100644 index 000000000..3efc158cb --- /dev/null +++ b/examples/cds112-L6_stochastic-linsys.ipynb @@ -0,0 +1,328 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "03aa22e7", + "metadata": {}, + "source": [ + "# Stochastic Response\n", + "Richard M. Murray, 6 Feb 2022 (updated 9 Feb 2023)\n", + "\n", + "This notebook illustrates the implementation of random processes and stochastic response. We focus on a system of the form\n", + "$$\n", + " \\dot X = A X + F V \\qquad X \\in {\\mathbb R}^n\n", + "$$\n", + "\n", + "where $V$ is a white noise process and the system is a first order linear system." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "902af902", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import scipy as sp\n", + "import matplotlib.pyplot as plt\n", + "import control as ct\n", + "from math import sqrt, exp" + ] + }, + { + "cell_type": "markdown", + "id": "77d58303", + "metadata": {}, + "source": [ + "## First order linear system\n", + "\n", + "We start by looking at the stochastic response for a first order linear system\n", + "\n", + "$$\n", + "\\begin{gathered}\n", + " \\dot X = -a X + V, \\qquad Y = C X \\\\\n", + " \\mathbb{E}(V) = 0, \\quad \\mathbb{E}(V^\\mathsf{T}(t_1) V(t_2)) = 0.1\\, \\delta(t_1 - t_2)\n", + "\\end{gathered}\n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "60192a8c", + "metadata": {}, + "outputs": [], + "source": [ + "# First order system\n", + "a = 1\n", + "c = 1\n", + "sys = ct.tf(c, [1, a])\n", + "\n", + "# Create the time vector that we want to use\n", + "Tf = 5\n", + "T = np.linspace(0, Tf, 1000)\n", + "dt = T[1] - T[0]\n", + "\n", + "# Create the basis for a white noise signal\n", + "# Note: use sqrt(Q/dt) for desired covariance\n", + "Q = np.array([[0.1]])\n", + "# V = np.random.normal(0, sqrt(Q[0,0]/dt), T.shape)\n", + "V = ct.white_noise(T, Q)\n", + "\n", + "plt.plot(T, V[0])\n", + "plt.xlabel('Time [s]')\n", + "plt.ylabel('$V$');" + ] + }, + { + "cell_type": "markdown", + "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)$." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "23319dc6", + "metadata": {}, + "outputs": [], + "source": [ + "# Calculate the sample properties and make sure they match\n", + "print(\"mean(V) [0.0] = \", np.mean(V))\n", + "print(\"cov(V) * dt [%0.3g] = \" % Q, np.round(np.cov(V), decimals=3) * dt)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2bdaaccf", + "metadata": {}, + "outputs": [], + "source": [ + "# Response of the first order system\n", + "# Scale white noise by sqrt(dt) to account for impulse\n", + "T, Y = ct.forced_response(sys, T, V)\n", + "plt.plot(T, Y)\n", + "plt.xlabel('Time [s]')\n", + "plt.ylabel('$Y$');" + ] + }, + { + "cell_type": "markdown", + "id": "ead0232e", + "metadata": {}, + "source": [ + "This is a first order system, and so we can use the calculation from the course\n", + "notes to compute the analytical correlation function and compare this to the \n", + "sampled data:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d31ce324", + "metadata": {}, + "outputs": [], + "source": [ + "# Compare static properties to what we expect analytically\n", + "def r(tau):\n", + " return c**2 * Q / (2 * a) * exp(-a * abs(tau))\n", + " \n", + "print(\"* mean(Y) [%0.3g] = %0.3g\" % (0, np.mean(Y).item()))\n", + "print(\"* cov(Y) [%0.3g] = %0.3g\" % (r(0).item(), np.cov(Y).item()))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1cf5a4b1", + "metadata": {}, + "outputs": [], + "source": [ + "# Correlation function for the input\n", + "# Scale by dt to take time step into account\n", + "# r_V = sp.signal.correlate(V, V) * dt / Tf\n", + "# tau = sp.signal.correlation_lags(len(V), len(V)) * dt\n", + "tau, r_V = ct.correlation(T, V)\n", + "\n", + "plt.plot(tau, r_V, 'r-')\n", + "plt.xlabel(r'$\\tau$')\n", + "plt.ylabel(r'$r_V(\\tau)$');" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "62af90a4", + "metadata": {}, + "outputs": [], + "source": [ + "# Correlation function for the output\n", + "# r_Y = sp.signal.correlate(Y, Y) * dt / Tf\n", + "# tau = sp.signal.correlation_lags(len(Y), len(Y)) * dt\n", + "tau, r_Y = ct.correlation(T, Y)\n", + "plt.plot(tau, r_Y)\n", + "plt.xlabel(r'$\\tau$')\n", + "plt.ylabel(r'$r_Y(\\tau)$')\n", + "\n", + "# Compare to the analytical answer\n", + "plt.plot(tau, [r(t)[0, 0] for t in tau], 'k--');" + ] + }, + { + "cell_type": "markdown", + "id": "2a2785e9", + "metadata": {}, + "source": [ + "The analytical curve may or may not line up that well with the correlation function based on the sample. Try running the code again from the top to see how things change based on the specific random sequence chosen at the start.\n", + "\n", + "Note: the _right_ way to compute the correlation function would be to run a lot of different samples of white noise filtered through the system dynamics and compute $R(t_1, t_2)$ across those samples." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bd5dfc75", + "metadata": {}, + "outputs": [], + "source": [ + "# As a crude approximation, compute the average correlation\n", + "r_avg = np.zeros_like(r_Y)\n", + "for i in range(100):\n", + " V = ct.white_noise(T, Q)\n", + " _, Y = ct.forced_response(sys, T, V)\n", + " tau, r_Y = ct.correlation(T, Y)\n", + " r_avg = r_avg + r_Y\n", + "r_avg = r_avg / i\n", + "plt.plot(tau, r_avg)\n", + "plt.xlabel(r'$\\tau$')\n", + "plt.ylabel(r'$r_Y(\\tau)$')\n", + "\n", + "# Compare to the analytical answer\n", + "plt.plot(tau, [r(t)[0, 0] for t in tau], 'k--');" + ] + }, + { + "cell_type": "markdown", + "id": "f07ec584", + "metadata": {}, + "source": [ + "## Dryden gust model\n", + "\n", + "Friedland, _Control Systems Design_, Example 10B\n", + "\n", + "Based on experimental data, the power spectral density for the vertical component of random wind velocity in turbulent air can be modeled as\n", + "$$\n", + "S(\\omega) = \\sigma_\\text{z}^2 T \\frac{1 + 3 (\\omega T)^2}{[1 + (\\omega T)^2]^2},\n", + "$$\n", + "where $\\sigma_\\text{z}$ and $T$ are parameters that depend on the wind characteristics.\n", + "\n", + "This power spectral density can be modeled using white noise by running it through a linear system with transfer fucntion\n", + "$$\n", + "H(s) = \\frac{1 + \\sqrt{3} T}{(1 + T s)^2}.\n", + "$$\n", + "A state space realization for this transfer function is given by\n", + "$$\n", + "\\begin{aligned}\n", + " \\dot X &= \\begin{bmatrix} 0 & 1 \\\\ -\\frac{1}{T^2} & -\\frac{2}{T} \\end{bmatrix} X \n", + " + \\begin{bmatrix} 0 \\\\ 1 \\end{bmatrix} V \\\\\n", + " Y &= \\begin{bmatrix} \\frac{1}{T^2} & \\frac{\\sqrt{3}}{T} \\end{bmatrix}\n", + " \\end{aligned}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "d09fc03a", + "metadata": {}, + "source": [ + "To create a disturbance signal with the characteristics of the Dryden gust model, we create a linear system with the given parameters and computing the input/output response to white noise:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8df16a23", + "metadata": {}, + "outputs": [], + "source": [ + "sigma_z = 1\n", + "T = 1\n", + "filter = ct.ss([[0, 1], [-1/T**2, -2/T]], [[0], [1]], [[1/T**2, sqrt(3)/T]], 0)\n", + "\n", + "timepts = np.linspace(0, 10, 1000)\n", + "V = ct.white_noise(timepts, sigma_z**2)\n", + "resp = ct.input_output_response(filter, timepts, V)\n", + "\n", + "plt.plot(resp.time, resp.outputs);" + ] + }, + { + "cell_type": "markdown", + "id": "4d6604ee", + "metadata": {}, + "source": [ + "We can compute the correlation function and power spectral density to confirm that we match the desired characteristics:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "febc8b80", + "metadata": {}, + "outputs": [], + "source": [ + "# Compute the correlation function\n", + "tau, R = ct.correlation(resp.time, resp.outputs)\n", + "\n", + "# Analytical expression for the correlation function (see Friedland)\n", + "def dryden_corrfcn(tau, sigma_z=1, T=1):\n", + " return sigma_z**2 * np.exp(-np.abs(tau)/T) * (1- np.abs(tau)/(2*T))\n", + "\n", + "# Plot the correlation function\n", + "fig, axs = plt.subplots(1, 2)\n", + "axs[0].plot(tau, R)\n", + "axs[0].plot(tau, dryden_corrfcn(tau))\n", + "axs[0].set_xlabel(r\"$\\tau$\")\n", + "axs[0].set_ylabel(r\"$r(\\tau)$\")\n", + "axs[0].set_title(\"Correlation function\")\n", + "\n", + "# Compute the power spectral density\n", + "dt = timepts[1] - timepts[0]\n", + "S = sp.fft.rfft(R) * dt * 2 # rfft returns omega >= 0 => muliple mag by 2\n", + "omega = sp.fft.rfftfreq(R.size, dt)\n", + "\n", + "# Analytical expression for the correlation function (see Friedland)\n", + "def dryden_psd(omega, sigma_z=1., T=1.):\n", + " return sigma_z**2 * T * (1 + 3 * (omega * T)**2) / (1 + (omega * T)**2)**2\n", + "\n", + "# Plot the power spectral density\n", + "axs[1].loglog(omega[1:], np.abs(S[1:]))\n", + "axs[1].loglog(omega[1:], dryden_psd(omega[1:]))\n", + "axs[1].set_xlabel(r\"$\\omega$ [rad/sec]\")\n", + "axs[1].set_ylabel(r\"$S(\\omega)$\")\n", + "axs[1].set_title(\"Power spectral density\")\n", + "\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1516ff6a", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/examples/cds112-L7_kalman-pvtol.ipynb b/examples/cds112-L7_kalman-pvtol.ipynb new file mode 100644 index 000000000..62270a2d8 --- /dev/null +++ b/examples/cds112-L7_kalman-pvtol.ipynb @@ -0,0 +1,439 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "c017196f", + "metadata": {}, + "source": [ + "# PVTOL LQR + EQF example\n", + "RMM, 14 Feb 2022\n", + "\n", + "This notebook illustrates the implementation of an extended Kalman filter and the use of the estimated state for LQR feedback." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "544525ab", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import matplotlib.patches as patches\n", + "import control as ct" + ] + }, + { + "cell_type": "markdown", + "id": "859834cf", + "metadata": {}, + "source": [ + "## System definition\n", + "The dynamics of the system\n", + "with disturbances on the $x$ and $y$ variables is given by\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", + "The measured values of the system are the position and orientation,\n", + "with added noise $n_x$, $n_y$, and $n_\\theta$:\n", + "$$\n", + " \\vec y = \\begin{bmatrix} x \\\\ y \\\\ \\theta \\end{bmatrix} + \n", + " \\begin{bmatrix} n_x \\\\ n_y \\\\ n_z \\end{bmatrix}.\n", + "$$\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ffafed74", + "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", + "\n", + "# Find the equilibrium 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", + "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": "2b63bf5b", + "metadata": {}, + "source": [ + "We now define the properties of the noise and disturbances. To make things (a bit more) interesting, we include some cross terms between the noise in $\\theta$ and the noise in $x$ and $y$:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1e1ee7c9", + "metadata": {}, + "outputs": [], + "source": [ + "# Disturbance and noise intensities\n", + "Qv = np.diag([1e-2, 1e-2])\n", + "Qw = np.array([[2e-4, 0, 1e-5], [0, 2e-4, 1e-5], [1e-5, 1e-5, 1e-4]])\n", + "Qwinv = np.linalg.inv(Qw)\n", + "\n", + "# Initial state covariance\n", + "P0 = np.eye(pvtol.nstates)" + ] + }, + { + "cell_type": "markdown", + "id": "e4c52c73", + "metadata": {}, + "source": [ + "## Control system design\n", + "\n", + "To design the control system, we first construct an estimator for the state (given the commanded inputs and measured outputs. Since this is a nonlinear system, we use the update law for the nominal system to compute the state update. We also make use of the linearization around the current state for the covariance update (using the function `pvtol.A(x, u)`, which is defined in `pvtol.py`, making this an extended Kalman filter)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3647bf15", + "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", + "# 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 again\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", + "estimator = 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(estimator)" + ] + }, + { + "cell_type": "markdown", + "id": "ba3d2640", + "metadata": {}, + "source": [ + "For the controller, we will use an LQR feedback with physically motivated weights (see OBC, Example 3.5):" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9787db61", + "metadata": {}, + "outputs": [], + "source": [ + "#\n", + "# LQR design w/ physically motivated weighting\n", + "#\n", + "# Shoot for 1 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", + "#\n", + "# Control system construction: combine LQR w/ EKF\n", + "#\n", + "# Use the linearization around the origin to design the optimal gains\n", + "# to see how they compare to the final value of P for the EKF\n", + "#\n", + "\n", + "# Construct the state feedback controller with estimated state as input\n", + "statefbk, _ = ct.create_statefbk_iosystem(pvtol, K, estimator=estimator)\n", + "print(statefbk, \"\\n\")\n", + "\n", + "# 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", + " [pvtol_noisy, statefbk, estimator],\n", + " inplist = statefbk.input_labels[0:pvtol.ninputs + pvtol.nstates] + \\\n", + " pvtol_noisy.input_labels[pvtol.ninputs:],\n", + " inputs = statefbk.input_labels[0:pvtol.ninputs + pvtol.nstates] + \\\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", + "print(clsys)" + ] + }, + { + "cell_type": "markdown", + "id": "5f527f16", + "metadata": {}, + "source": [ + "Note that we have to construct the closed loop system manually since we need to allow the disturbance and noise inputs to be sent to the closed loop system and `create_statefbk_iosystem` does not support this (to be fixed in an upcoming release)." + ] + }, + { + "cell_type": "markdown", + "id": "7bf558a0", + "metadata": {}, + "source": [ + "## Simulations\n", + "\n", + "Finally, we can simulate the system to see how it all works. We start by creating the noise for the system:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c2583a0e", + "metadata": {}, + "outputs": [], + "source": [ + "# Create the time vector for the simulation\n", + "Tf = 10\n", + "timepts = np.linspace(0, Tf, 1000)\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) # smaller disturbances and noise then design\n", + "W = ct.white_noise(timepts, Qw)\n", + "plt.plot(timepts, V[0], label=\"V[0]\")\n", + "plt.plot(timepts, W[0], label=\"W[0]\")\n", + "plt.legend();" + ] + }, + { + "cell_type": "markdown", + "id": "4d944709", + "metadata": {}, + "source": [ + "### LQR with EKF\n", + "\n", + "We can now feed the desired trajectory plus the noise and disturbances into the system and see how well the controller with a state estimator does in holding the system at an equilibrium point:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ad7a9750", + "metadata": {}, + "outputs": [], + "source": [ + "# Put together the input for the system\n", + "U = [xe, ue, V, W]\n", + "X0 = [x0, xe, P0.reshape(-1)]\n", + "\n", + "# Initial condition response\n", + "resp = ct.input_output_response(clsys, timepts, U, X0)\n", + "\n", + "# Plot the response\n", + "plot_results(timepts, resp.states, resp.outputs[pvtol.nstates:])" + ] + }, + { + "cell_type": "markdown", + "id": "86f10064", + "metadata": {}, + "source": [ + "To see how well the estimtator did, we can compare the estimated position with the actual position:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c5f24119", + "metadata": {}, + "outputs": [], + "source": [ + "# Response of the first two states, including internal estimates\n", + "h1, = plt.plot(resp.time, resp.outputs[0], 'b-', linewidth=0.75)\n", + "h2, = plt.plot(resp.time, resp.outputs[1], 'r-', linewidth=0.75)\n", + "\n", + "# Add on the internal estimator states\n", + "xh0 = clsys.find_output('xh0')\n", + "xh1 = clsys.find_output('xh1')\n", + "h3, = plt.plot(resp.time, resp.outputs[xh0], 'k--')\n", + "h4, = plt.plot(resp.time, resp.outputs[xh1], 'k--')\n", + "\n", + "plt.plot([0, 10], [0, 0], 'k--', linewidth=0.5)\n", + "plt.ylabel(r\"Position $x$, $y$ [m]\")\n", + "plt.xlabel(r\"Time $t$ [s]\")\n", + "plt.legend(\n", + " [h1, h2, h3, h4], ['$x$', '$y$', r'$\\hat{x}$', r'$\\hat{y}$'], \n", + " loc='upper right', frameon=False, ncol=2);" + ] + }, + { + "cell_type": "markdown", + "id": "7139202f", + "metadata": {}, + "source": [ + "Note the rapid convergence of the estimate to the proper value, since we are directly measuring the position variables. If we look at the full set of states, we see that other variables have different convergence properties:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "78a61e74", + "metadata": {}, + "outputs": [], + "source": [ + "fig, axs = plt.subplots(2, 3)\n", + "var = ['x', 'y', r'\\theta', r'\\dot x', r'\\dot y', r'\\dot \\theta']\n", + "for i in [0, 1]:\n", + " for j in [0, 1, 2]:\n", + " k = i * 3 + j\n", + " axs[i, j].plot(resp.time, resp.outputs[k], label=f'${var[k]}$')\n", + " axs[i, j].plot(resp.time, resp.outputs[xh0+k], label=f'$\\\\hat {var[k]}$')\n", + " axs[i, j].legend()\n", + " if i == 1:\n", + " axs[i, j].set_xlabel(\"Time $t$ [s]\")\n", + " if j == 0:\n", + " axs[i, j].set_ylabel(\"State\")\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "id": "2039578e", + "metadata": {}, + "source": [ + "Note the lag in tracking changes in the $\\dot x$ and $\\dot y$ states (varies from simulation to simulation, depending on the specific noise signal)." + ] + }, + { + "cell_type": "markdown", + "id": "0c0d5c99", + "metadata": {}, + "source": [ + "### Full state feedback\n", + "\n", + "To see how the inclusion of the estimator affects the system performance, we compare it with the case where we are able to directly measure the state of the system." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3b6a1f1c", + "metadata": {}, + "outputs": [], + "source": [ + "# Compute the full state feedback solution\n", + "lqr_ctrl, _ = ct.create_statefbk_iosystem(pvtol, K)\n", + "\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", + "\n", + "# Put together the input for the system (turn off sensor noise)\n", + "U = [xe, ue, V, W*0]\n", + "\n", + "# Run a simulation with full state feedback\n", + "lqr_resp = ct.input_output_response(lqr_clsys, timepts, U, x0)\n", + "\n", + "# Compare the results\n", + "plt.plot(resp.states[0], resp.states[1], 'b-', label=\"Extended KF\")\n", + "plt.plot(lqr_resp.states[0], lqr_resp.states[1], 'r-', label=\"Full state\")\n", + "\n", + "plt.xlabel('$x$ [m]')\n", + "plt.ylabel('$y$ [m]')\n", + "plt.axis('equal')\n", + "plt.legend(frameon=False);" + ] + }, + { + "cell_type": "markdown", + "id": "8c0083cb", + "metadata": {}, + "source": [ + "Things to try:\n", + "* Compute a feasable trajectory and stabilize around that instead of the origin" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "777053a4", + "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.13.1" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/examples/cds112-L8_fusion-kincar.ipynb b/examples/cds112-L8_fusion-kincar.ipynb new file mode 100644 index 000000000..de4aad5d6 --- /dev/null +++ b/examples/cds112-L8_fusion-kincar.ipynb @@ -0,0 +1,476 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "eec23018", + "metadata": {}, + "source": [ + "# Kinematic car sensor fusion example\n", + "RMM, 24 Feb 2022 (updated 23 Feb 2023)\n", + "\n", + "In this example we work through estimation of the state of a car changing\n", + "lanes with two different sensors available: one with good longitudinal accuracy\n", + "and the other with good lateral accuracy.\n", + "\n", + "All calculations are done in discrete time, using both the form of the Kalman\n", + "filter in Theorem 7.2 and the predictor corrector form." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "107a6613", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import scipy as sp\n", + "import matplotlib.pyplot as plt\n", + "import control as ct\n", + "import control.optimal as opt\n", + "import control.flatsys as fs\n", + "\n", + "# Define some line styles for later use\n", + "ebarstyle = {'elinewidth': 0.5, 'capsize': 2}\n", + "xdstyle = {'color': 'k', 'linestyle': '--', 'linewidth': 0.5, \n", + " 'marker': '+', 'markersize': 4}" + ] + }, + { + "cell_type": "markdown", + "id": "ea8807a4", + "metadata": {}, + "source": [ + "## System definition\n", + "\n", + "We make use of a simple model for a vehicle navigating in the plane, known as the \"bicycle model\". The kinematics of this vehicle can be written in terms of the contact point $(x, y)$ and the angle $\\theta$ of the vehicle with respect to the horizontal axis:\n", + "\n", + "\n", + "\n", + " \n", + " \n", + "\n", + "
\n", + "$$\n", + "\\begin{aligned}\n", + " \\dot x &= \\cos\\theta\\, v \\\\\n", + " \\dot y &= \\sin\\theta\\, v \\\\\n", + " \\dot\\theta &= \\frac{v}{l} \\tan \\delta\n", + "\\end{aligned}\n", + "$$\n", + "
\n", + "\n", + "The input $v$ represents the velocity of the vehicle and the input $\\delta$ represents the turning rate. The parameter $l$ is the wheelbase." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a04106f8", + "metadata": {}, + "outputs": [], + "source": [ + "# Vehicle steering dynamics\n", + "#\n", + "# System state: x, y, theta\n", + "# System input: v, phi\n", + "# System output: x, y\n", + "# System parameters: wheelbase, maxsteer\n", + "#\n", + "from kincar import kincar, plot_lanechange\n", + "print(kincar)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "69c048ed", + "metadata": {}, + "outputs": [], + "source": [ + "# Generate a trajectory for the vehicle\n", + "# Define the endpoints of the trajectory\n", + "x0 = [0., -2., 0.]; u0 = [10., 0.]\n", + "xf = [40., 2., 0.]; uf = [10., 0.]\n", + "Tf = 4\n", + "\n", + "# Find a trajectory between the initial condition and the final condition\n", + "traj = fs.point_to_point(kincar, Tf, x0, u0, xf, uf, basis=fs.PolyFamily(6))\n", + "\n", + "# Create the desired trajectory between the initial and final condition\n", + "Ts = 0.1\n", + "# Ts = 0.5\n", + "timepts = np.arange(0, Tf + Ts, Ts)\n", + "xd, ud = traj.eval(timepts)\n", + "\n", + "plot_lanechange(timepts, xd, ud)" + ] + }, + { + "cell_type": "markdown", + "id": "aeeaa39e", + "metadata": {}, + "source": [ + "### Discrete time system model\n", + "\n", + "For the model that we use for the Kalman filter, we take a simple discretization using the approximation that $\\dot x = (x[k+1] - x[k])/T_s$ where $T_s$ is the sampling time." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2469c60e", + "metadata": {}, + "outputs": [], + "source": [ + "#\n", + "# Create a discrete-time, linear model\n", + "#\n", + "\n", + "# Linearize about the starting point\n", + "linsys = ct.linearize(kincar, x0, u0)\n", + "\n", + "# Create a discrete-time model by hand\n", + "Ad = np.eye(linsys.nstates) + linsys.A * Ts\n", + "Bd = linsys.B * Ts\n", + "discsys = ct.ss(Ad, Bd, np.eye(linsys.nstates), 0, dt=Ts)\n", + "print(discsys);" + ] + }, + { + "cell_type": "markdown", + "id": "084c5ae8", + "metadata": {}, + "source": [ + "### Sensor model\n", + "\n", + "We assume that we have two sensors: one with good longitudinal accuracy and the other with good lateral accuracy. For each sensor we define the map from the state space to the sensor outputs, the covariance matrix for the measurements, and a white noise signal (now in discrete time).\n", + "\n", + "Note: we pass the keyword `dt` to the `white_noise` function so that the white noise is consistent with a discrete-time model (so the covariance is _not_ rescaled by $\\sqrt{dt}$)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0a19d109", + "metadata": {}, + "outputs": [], + "source": [ + "# Sensor #1: longitudinal\n", + "C_lon = np.eye(2, discsys.nstates)\n", + "Rw_lon = np.diag([0.1 ** 2, 1 ** 2])\n", + "W_lon = ct.white_noise(timepts, Rw_lon, dt=Ts)\n", + "\n", + "# Sensor #2: lateral\n", + "C_lat = np.eye(2, discsys.nstates)\n", + "Rw_lat = np.diag([1 ** 2, 0.1 ** 2])\n", + "W_lat = ct.white_noise(timepts, Rw_lat, dt=Ts)\n", + "\n", + "# Plot the noisy signals\n", + "plt.subplot(2, 1, 1)\n", + "Y = xd[0:2] + W_lon\n", + "plt.plot(Y[0], Y[1])\n", + "plt.plot(xd[0], xd[1], **xdstyle)\n", + "plt.xlabel(\"$x$ position [m]\")\n", + "plt.ylabel(\"$y$ position [m]\")\n", + "plt.title(\"Sensor #1 (longitudinal)\")\n", + " \n", + "plt.subplot(2, 1, 2)\n", + "Y = xd[0:2] + W_lat\n", + "plt.plot(Y[0], Y[1])\n", + "plt.plot(xd[0], xd[1], **xdstyle)\n", + "plt.xlabel(\"$x$ position [m]\")\n", + "plt.ylabel(\"$y$ position [m]\")\n", + "plt.title(\"Sensor #2 (lateral)\")\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "id": "c3fa1a3d", + "metadata": {}, + "source": [ + "## Linear Quadratic Estimator\n", + "\n", + "We now construct a linear quadratic estimator for the system usign the Kalman filter form. This is idone using the [`create_estimator_iosystem`](https://github.com/python-control/python-control/blob/main/control/stochsys.py#L310-L517) function in python-control." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "993601a2", + "metadata": {}, + "outputs": [], + "source": [ + "# Disturbance and initial condition model\n", + "# Note: multiple by sampling time since we discretized the dynamics\n", + "Rv = np.diag([0.1, 0.01]) * Ts\n", + "# Rv = np.diag([10, 1]) * Ts # Variant: no input information\n", + "P0 = np.diag([1, 1, 0.1])\n", + "\n", + "# Combine the sensors\n", + "# Note: no sampling time here because we are doing discrete-time KF\n", + "C = np.vstack([C_lon, C_lat])\n", + "Rw = sp.linalg.block_diag(Rw_lon, Rw_lat)\n", + "\n", + "estim = ct.create_estimator_iosystem(discsys, Rv, Rw, C=C, P0=P0)\n", + "print(estim)" + ] + }, + { + "cell_type": "markdown", + "id": "0c2e8ab0", + "metadata": {}, + "source": [ + "We can now run the estimator on the noisy signals to see how well it works." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3d02ec33", + "metadata": {}, + "outputs": [], + "source": [ + "# Compute the inputs to the estimator\n", + "Y = np.vstack([xd[0:2] + W_lon, xd[0:2] + W_lat])\n", + "U = np.vstack([Y, ud]) # add input to the Kalman filter\n", + "# U = np.vstack([Y, ud * 0]) # variant: no input information\n", + "X0 = np.hstack([xd[:, 0], P0.reshape(-1)])\n", + "\n", + "# Run the estimator on the trajectory\n", + "estim_resp = ct.input_output_response(estim, timepts, U, X0)\n", + "\n", + "# Run a prediction to see what happens next\n", + "T_predict = np.arange(timepts[-1], timepts[-1] + 4 + Ts, Ts)\n", + "U_predict = np.outer(U[:, -1], np.ones_like(T_predict))\n", + "predict_resp = ct.input_output_response(\n", + " estim, T_predict, U_predict, estim_resp.states[:, -1],\n", + " params={'correct': False})\n", + "\n", + "# Plot the estimated trajectory versus the actual trajectory\n", + "plt.subplot(2, 1, 1)\n", + "plt.errorbar(\n", + " estim_resp.time, estim_resp.outputs[0], \n", + " estim_resp.states[estim.find_state('P[0,0]')], fmt='b-', **ebarstyle)\n", + "plt.errorbar(\n", + " predict_resp.time, predict_resp.outputs[0], \n", + " predict_resp.states[estim.find_state('P[0,0]')], fmt='r-', **ebarstyle)\n", + "plt.plot(timepts, xd[0], 'k--')\n", + "plt.ylabel(\"$x$ position [m]\")\n", + "\n", + "plt.subplot(2, 1, 2)\n", + "plt.errorbar(\n", + " estim_resp.time, estim_resp.outputs[1], \n", + " estim_resp.states[estim.find_state('P[1,1]')], fmt='b-', **ebarstyle)\n", + "plt.errorbar(\n", + " predict_resp.time, predict_resp.outputs[1], \n", + " predict_resp.states[estim.find_state('P[1,1]')], fmt='r-', **ebarstyle)\n", + "# lims = plt.axis(); plt.axis([lims[0], lims[1], -5, 5])\n", + "plt.plot(timepts, xd[1], 'k--');\n", + "plt.ylabel(\"$y$ position [m]\")\n", + "plt.xlabel(\"Time $t$ [s]\");" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "44f69f79", + "metadata": {}, + "outputs": [], + "source": [ + "# Plot the estimated errors\n", + "plt.subplot(2, 1, 1)\n", + "plt.errorbar(\n", + " estim_resp.time, estim_resp.outputs[0] - xd[0], \n", + " estim_resp.states[estim.find_state('P[0,0]')], fmt='b-', **ebarstyle)\n", + "plt.errorbar(\n", + " predict_resp.time, predict_resp.outputs[0] - (xd[0] + xd[0, -1]), \n", + " predict_resp.states[estim.find_state('P[0,0]')], fmt='r-', **ebarstyle)\n", + "lims = plt.axis(); plt.axis([lims[0], lims[1], -0.2, 0.2])\n", + "# lims = plt.axis(); plt.axis([lims[0], lims[1], -2, 0.2])\n", + "\n", + "plt.subplot(2, 1, 2)\n", + "plt.errorbar(\n", + " estim_resp.time, estim_resp.outputs[1] - xd[1], \n", + " estim_resp.states[estim.find_state('P[1,1]')], fmt='b-', **ebarstyle)\n", + "plt.errorbar(\n", + " predict_resp.time, predict_resp.outputs[1] - xd[1, -1], \n", + " predict_resp.states[estim.find_state('P[1,1]')], fmt='r-', **ebarstyle)\n", + "lims = plt.axis(); plt.axis([lims[0], lims[1], -0.2, 0.2]);" + ] + }, + { + "cell_type": "markdown", + "id": "6f6c1b6f", + "metadata": {}, + "source": [ + "## Things to try\n", + "* Remove the input (and update P0 and Rv)\n", + "* Change the sampling rate" + ] + }, + { + "cell_type": "markdown", + "id": "8f680b92", + "metadata": {}, + "source": [ + "## Predictor-corrector form\n", + "\n", + "Instead of using create_estimator_iosystem, we can also compute out the estimate in a more manual fashion, done here using the predictor-corrector form." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fa488d51", + "metadata": {}, + "outputs": [], + "source": [ + "# System matrices\n", + "A, B, F = discsys.A, discsys.B, discsys.B\n", + "\n", + "# Create an array to store the results\n", + "xhat = np.zeros((discsys.nstates, timepts.size))\n", + "P = np.zeros((discsys.nstates, discsys.nstates, timepts.size))\n", + "\n", + "# Update the estimates at each time\n", + "for i, t in enumerate(timepts):\n", + " # Prediction step\n", + " if i == 0:\n", + " # Use the initial condition\n", + " xkkm1 = xd[:, 0]\n", + " Pkkm1 = P0\n", + " else:\n", + " xkkm1 = A @ xkk + B @ ud[:, i-1]\n", + " Pkkm1 = A @ Pkk @ A.T + F @ Rv @ F.T\n", + " \n", + " # Correction step (variant: apply only when sensor data is available)\n", + " L = Pkkm1 @ C.T @ np.linalg.inv(Rw + C @ Pkkm1 @ C.T)\n", + " xkk = xkkm1 - L @ (C @ xkkm1 - Y[:, i])\n", + " Pkk = Pkkm1 - L @ C @ Pkkm1\n", + "\n", + " # Save the state estimate and covariance for later plotting\n", + " xhat[:, i], P[:, :, i] = xkkm1, Pkkm1 # For comparison to Kalman form\n", + " # xhat[:, i], P[:, :, i] = xkk, Pkk # variant: \n", + " \n", + "plt.subplot(2, 1, 1)\n", + "plt.errorbar(timepts, xhat[0], P[0, 0], fmt='b-', **ebarstyle)\n", + "plt.plot(timepts, xd[0], 'k--')\n", + "plt.ylabel(\"$x$ position [m]\")\n", + "\n", + "plt.subplot(2, 1, 2)\n", + "plt.errorbar(timepts, xhat[1], P[1, 1], fmt='b-', **ebarstyle)\n", + "plt.plot(timepts, xd[1], 'k--')\n", + "plt.ylabel(\"$x$ position [m]\")\n", + "plt.xlabel(\"Time $t$ [s]\");" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4eda4729", + "metadata": {}, + "outputs": [], + "source": [ + "# Plot the estimated errors (and compare to Kalman form)\n", + "plt.subplot(2, 1, 1)\n", + "plt.errorbar(timepts, xhat[0] - xd[0], P[0, 0], fmt='b-', **ebarstyle)\n", + "plt.plot(estim_resp.time, estim_resp.outputs[0] - xd[0], 'r--', linewidth=3)\n", + "lims = plt.axis(); plt.axis([lims[0], lims[1], -0.2, 0.2])\n", + "plt.ylabel(\"x error [m]\")\n", + "\n", + "plt.subplot(2, 1, 2)\n", + "plt.errorbar(timepts, xhat[1] - xd[1], P[1, 1], fmt='b-', **ebarstyle,\n", + " label='predictor/corrector')\n", + "plt.plot(estim_resp.time, estim_resp.outputs[1] - xd[1], 'r--', linewidth=3,\n", + " label='Kalman form')\n", + "lims = plt.axis(); plt.axis([lims[0], lims[1], -0.2, 0.2])\n", + "plt.ylabel(\"y error [m]\")\n", + "plt.xlabel(\"Time $t$ [s]\")\n", + "plt.legend(loc='lower right');" + ] + }, + { + "cell_type": "markdown", + "id": "19a673a1", + "metadata": {}, + "source": [ + "## Information filter\n", + "\n", + "An alternative way to implement the computation is using the information filter formulation." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "36111bc2", + "metadata": {}, + "outputs": [], + "source": [ + "from numpy.linalg import inv\n", + "\n", + "# Update the estimates at each time\n", + "for i, t in enumerate(timepts):\n", + " # Prediction step\n", + " if i == 0:\n", + " # Use the initial condition\n", + " xkkm1 = xd[:, 0]\n", + " Pkkm1 = P0\n", + " else:\n", + " xkkm1 = A @ xkk + B @ ud[:, i-1]\n", + " Pkkm1 = A @ Pkk @ A.T + F @ Rv @ F.T\n", + " \n", + " # Correction step (variant: apply only when sensor data is available)\n", + " Ikk, Zkk = inv(Pkkm1), inv(Pkkm1) @ xkkm1\n", + " \n", + " # Longitudinal sensor update\n", + " Ikk += C_lon.T @ inv(Rw_lon) @ C_lon # Omega_lon\n", + " Zkk += C_lon.T @ inv(Rw_lon) @ Y[:2, i] # Psi_lon\n", + "\n", + " # Lateral sensor update\n", + " Ikk += C_lat.T @ inv(Rw_lat) @ C_lat # Omega_lat\n", + " Zkk += C_lat.T @ inv(Rw_lat) @ Y[2:, i] # Psi_lat\n", + " \n", + " # Compute the updated state and covariance \n", + " Pkk = inv(Ikk)\n", + " xkk = Pkk @ Zkk\n", + "\n", + " # Save the state estimate and covariance for later plotting\n", + " xhat[:, i], P[:, :, i] = xkkm1, Pkkm1\n", + "\n", + "# Plot the estimated errors (and compare to Kalman form)\n", + "plt.subplot(2, 1, 1)\n", + "plt.errorbar(timepts, xhat[0] - xd[0], P[0, 0], fmt='b-', **ebarstyle)\n", + "plt.plot(estim_resp.time, estim_resp.outputs[0] - xd[0], 'r--', linewidth=3)\n", + "lims = plt.axis(); plt.axis([lims[0], lims[1], -0.2, 0.2])\n", + "plt.ylabel(\"x error [m]\")\n", + "\n", + "plt.subplot(2, 1, 2)\n", + "plt.errorbar(timepts, xhat[1] - xd[1], P[1, 1], fmt='b-', **ebarstyle,\n", + " label='information filter')\n", + "plt.plot(estim_resp.time, estim_resp.outputs[1] - xd[1], 'r--', linewidth=3,\n", + " label='Kalman form')\n", + "lims = plt.axis(); plt.axis([lims[0], lims[1], -0.2, 0.2])\n", + "plt.ylabel(\"y error [m]\")\n", + "plt.xlabel(\"Time $t$ [s]\")\n", + "plt.legend(loc='lower right');" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ad5cf57f", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/examples/cds112-L9_mhe-pvtol.ipynb b/examples/cds112-L9_mhe-pvtol.ipynb new file mode 100644 index 000000000..be15c4bfa --- /dev/null +++ b/examples/cds112-L9_mhe-pvtol.ipynb @@ -0,0 +1,761 @@ +{ + "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", + "We use the PVTOL dynamics from the textbook, which are contained in the `pvtol` module:\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "
\n", + "$$\n", + "\\begin{aligned}\n", + " m \\ddot x &= F_1 \\cos\\theta - F_2 \\sin\\theta - c \\dot x, \\\\\n", + " m \\ddot y &= F_1 \\sin\\theta + F_2 \\cos\\theta - m g - c \\dot y, \\\\\n", + " J \\ddot \\theta &= r F_1.\n", + "\\end{aligned}\n", + "$$\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", + "$$\n", + "\n", + "The parameter values for the PVTOL system come from the Caltech ducted fan experiment, described in more detail in [Lecture 4b](cds112-L4b_pvtol-lqr.ipynb)." + ] + }, + { + "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\n", + "\n", + "We begin by designing an LQR conroller than can be used for trajectory tracking, which is described in more detail in [Lecture 4b](cds112-L4b_pvtol-lqr.ipynb):" + ] + }, + { + "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": "markdown", + "id": "29f55c0a-8c17-4347-aa46-b1944e700b32", + "metadata": {}, + "source": [ + "(The warning message can be ignored; it is generated because we implement this system as a differentially flat system and hence we require that an output function be explicitly given, rather than using `None`.)" + ] + }, + { + "cell_type": "markdown", + "id": "e9bc481f-7b2f-4b40-89b7-1ef5a35251b7", + "metadata": {}, + "source": [ + "We next define the characteristics of the uncertainty in the system: the disturbance and noise covariances (intensities) as well as the initial condition covariance:" + ] + }, + { + "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) # uncomment to avoid figures changing from run to run\n", + "V = ct.white_noise(timepts, Qv)\n", + "W = ct.white_noise(timepts, Qw)\n", + "plt.plot(timepts, V[0], label=\"V[0]\")\n", + "plt.plot(timepts, W[0], label=\"W[0]\")\n", + "plt.legend();" + ] + }, + { + "cell_type": "markdown", + "id": "7db5188e-03c7-439c-8cf2-47681d3feccf", + "metadata": {}, + "source": [ + "To get a better sense of the size of the disturbances and noise, we simulate the noise-free system with the applied disturbances, and then add in the noise. Note that in this simulation we are still assuming that the controller has access to the noise-free state (not realistic, but used here just to show that the disturbances and noise do not cause large perturbations)." + ] + }, + { + "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\n", + "\n", + "We next consider the problem of only measuring the (noisy) outputs of the system and designing a controller that uses the estimated state as the input to the LQR controller that we designed previously.\n", + "\n", + "We start by using a standard Kalman filter." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5a1f32da", + "metadata": {}, + "outputs": [], + "source": [ + "# Create a new system with only x, y, theta as outputs\n", + "sys = ct.nlsys(\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", + ")\n", + "print(sys)" + ] + }, + { + "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\n", + "\n", + "We see that the standard Kalman filter does not do a good job in estimating the $y$ position (state $x_2$) nor the $y$ velocity (state $x_4$).\n", + "\n", + "A better estimate can be obtained using an extended Kalman filter, which uses the linearization of the system around the current state, rather than a fixed linearization." + ] + }, + { + "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": "markdown", + "id": "10163c6c-5634-4dbb-ba11-e20fb1e065ed", + "metadata": {}, + "source": [ + "## Maximum Likelihood Estimation\n", + "\n", + "Finally, we illustrate how to set up the problem as maximum likelihood problem, which is described in more detail in the [Optimization-Based Control](https://fbswiki.org/wiki/index.php/Supplement:_Optimization-Based_Control) (OBC) course notes, in Section 7.6.\n", + "\n", + "The basic idea in maximum likelihood estimation is to set up the estimation problem as an optimization problem where we define the likelihood of a given estimate (and the resulting noise and disturbances predicted by the\n", + "model) as a cost function." + ] + }, + { + "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 situation that the maximum likelihood framework can handle is when 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", + "Finally, we can now move to the implementation of a moving horizon estimator, using our fixed horizon, maximum likelihood, optimal estimator. The details of this implementation are described in more detail in the [Optimization-Based Control](https://fbswiki.org/wiki/index.php/Supplement:_Optimization-Based_Control) (OBC) course notes, in Section 7.6." + ] + }, + { + "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.nlsys(\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", + " disturbance_indices=[2, 3])\n", + "mhe = oep.create_mhe_iosystem()\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": "markdown", + "id": "ad6aac39-5b55-4ffd-ab21-44385dc11ff5", + "metadata": {}, + "source": [ + "Although this estimator eventually converges to the underlying tate of the system, the initial transient response is quite poor.\n", + "\n", + "One possible explanation is that we are not starting the system at the origin, even though we are penalizing the initial state if it is away from the origin.\n", + "\n", + "To see if this matters, we shift the problem to one in which the system's initial condition is at the origin:" + ] + }, + { + "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", + " disturbance_indices=[2, 3])\n", + "mhe = oep.create_mhe_iosystem()\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": { + "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.13.1" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/examples/check-controllability-and-observability.py b/examples/check-controllability-and-observability.py index 67ecdf26c..a8fc5c6ad 100644 --- a/examples/check-controllability-and-observability.py +++ b/examples/check-controllability-and-observability.py @@ -4,8 +4,8 @@ RMM, 6 Sep 2010 """ -import numpy as np # Load the scipy functions -from control.matlab import * # Load the controls systems library +import numpy as np # Load the numpy functions +from control.matlab import ss, ctrb, obsv # Load the controls systems library # Parameters defining the system diff --git a/examples/cruise-control.py b/examples/cruise-control.py index 7c2e562a1..77768aa86 100644 --- a/examples/cruise-control.py +++ b/examples/cruise-control.py @@ -50,7 +50,7 @@ def vehicle_update(t, x, u, params={}): """ from math import copysign, sin sign = lambda x: copysign(1, x) # define the sign() function - + # Set up the system parameters m = params.get('m', 1600.) g = params.get('g', 9.8) @@ -80,13 +80,13 @@ def vehicle_update(t, x, u, params={}): # Letting the slope of the road be \theta (theta), gravity gives the # force Fg = m g sin \theta. - + Fg = m * g * sin(theta) # A simple model of rolling friction is Fr = m g Cr sgn(v), where Cr is # the coefficient of rolling friction and sgn(v) is the sign of v (+/- 1) or # zero if v = 0. - + Fr = m * g * Cr * sign(v) # The aerodynamic drag is proportional to the square of the speed: Fa = @@ -95,11 +95,11 @@ def vehicle_update(t, x, u, params={}): # of the car. Fa = 1/2 * rho * Cd * A * abs(v) * v - + # Final acceleration on the car Fd = Fg + Fr + Fa dv = (F - Fd) / m - + return dv # Engine model: motor_torque @@ -108,7 +108,7 @@ def vehicle_update(t, x, u, params={}): # the rate of fuel injection, which is itself proportional to a control # signal 0 <= u <= 1 that controls the throttle position. The torque also # depends on engine speed omega. - + def motor_torque(omega, params={}): # Set up the system parameters Tm = params.get('Tm', 190.) # engine torque constant @@ -165,8 +165,8 @@ def motor_torque(omega, params={}): for m in (1200, 1600, 2000): # Compute the equilibrium state for the system - X0, U0 = ct.find_eqpt( - cruise_tf, [0, vref[0]], [vref[0], gear[0], theta0[0]], + X0, U0 = ct.find_operating_point( + cruise_tf, [0, vref[0]], [vref[0], gear[0], theta0[0]], iu=[1, 2], y0=[vref[0], 0], iy=[0], params={'m': m}) t, y = ct.input_output_response( @@ -247,7 +247,6 @@ def pi_update(t, x, u, params={}): # Assign variables for inputs and states (for readability) v = u[0] # current velocity vref = u[1] # reference velocity - z = x[0] # integrated error # Compute the nominal controller output (needed for anti-windup) u_a = pi_output(t, x, u, params) @@ -347,9 +346,9 @@ def cruise_plot(sys, t, y, label=None, t_hill=None, vref=20, antiwindup=False, # Compute the equilibrium throttle setting for the desired speed (solve for x # and u given the gear, slope, and desired output velocity) -X0, U0, Y0 = ct.find_eqpt( +X0, U0, Y0 = ct.find_operating_point( cruise_pi, [vref[0], 0], [vref[0], gear[0], theta0[0]], - y0=[0, vref[0]], iu=[1, 2], iy=[1], return_y=True) + y0=[0, vref[0]], iu=[1, 2], iy=[1], return_outputs=True) # Now simulate the effect of a hill at t = 5 seconds plt.figure() @@ -394,7 +393,7 @@ def sf_output(t, z, u, params={}): ud = params.get('ud', 0) # Get the system state and reference input - x, y, r = u[0], u[1], u[2] + x, r = u[0], u[2] return ud - K * (x - xd) - ki * z + kf * (r - yd) @@ -440,13 +439,13 @@ def sf_output(t, z, u, params={}): 4./180. * pi for t in T] t, y = ct.input_output_response( cruise_sf, T, [vref, gear, theta_hill], [X0[0], 0], - params={'K': K, 'kf': kf, 'ki': 0.0, 'kf': kf, 'xd': xd, 'ud': ud, 'yd': yd}) + params={'K': K, 'kf': kf, 'ki': 0.0, 'xd': xd, 'ud': ud, 'yd': yd}) subplots = cruise_plot(cruise_sf, t, y, label='Proportional', linetype='b--') # Response of the system with state feedback + integral action t, y = ct.input_output_response( cruise_sf, T, [vref, gear, theta_hill], [X0[0], 0], - params={'K': K, 'kf': kf, 'ki': 0.1, 'kf': kf, 'xd': xd, 'ud': ud, 'yd': yd}) + params={'K': K, 'kf': kf, 'ki': 0.1, 'xd': xd, 'ud': ud, 'yd': yd}) cruise_plot(cruise_sf, t, y, label='PI control', t_hill=8, linetype='b-', subplots=subplots, legend=True) diff --git a/examples/cruise.ipynb b/examples/cruise.ipynb index 4f1c152f9..08a1583ac 100644 --- a/examples/cruise.ipynb +++ b/examples/cruise.ipynb @@ -154,7 +154,7 @@ "outputs": [ { "data": { - "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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAArIAAAErCAYAAAAi+GCWAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAA3HlJREFUeJzsnXd0VEUXwH/bsukhPSSEhN5L6L0XASmiomIBREVRFEHFimL/sHfFAopSbKAgUkNvoYQSCCUhhCSk954t8/2xZCVkk+ym7ob3O2fPmX379r2ZO/Pu3p25c69MCCGQkJCQkJCQkJCQsDHkDV0BCQkJCQkJCQkJieogGbISEhISEhISEhI2iWTISkhISEhISEhI2CSSISshISEhISEhIWGTSIashISEhISEhISETSIZshISEhISEhISEjaJZMhKSEhISEhISEjYJJIhKyEhISEhISEhYZNIhqyEhISEhISEhIRNIhmyEhLXIZPJzHrt2rWroasqUUPCw8MZOnQobm5uyGQyPv744zq7V0FBAa+99lq9jZvg4GBmzpxZZ9cfNmwYw4YNq7PrNwZkMhmvvfZaQ1dDQqLRo2zoCkhIWBMHDx4s8/6NN95g586dhIaGljnesWPH+qyWRB3w4IMPkp+fz5o1a3B3dyc4OLjO7lVQUMCSJUsA6sUAXLduHa6urnV+H4mKOXjwIM2aNWvoakhINHokQ1ZC4jr69etX5r23tzdyubzc8eoghKCoqAgHB4caX8vW0Gg0yGQylErrUTkRERE8/PDDjBs3rlauZ01tDAkJaegq1AsFBQU4Ojo2dDVMUhs6Q0JComok1wIJCQvJyMhg7ty5BAQEYGdnR8uWLXnppZcoLi4uc55MJuOJJ57g66+/pkOHDqjVan788UcADh06xMCBA7G3t8ff358XXniBb7/9FplMxuXLl8tcw9TypKml46SkJObMmUOzZs2ws7OjRYsWLFmyBK1Wa1a7Vq1aRf/+/XF2dsbZ2Znu3bvz/fffV3pPKL/MvGvXLmQyGStXrmThwoUEBASgVqs5c+YMMpmszDVL+ffff5HJZPz999/GYxcvXmT69On4+PigVqvp0KEDX3zxRZnv6fV63nzzTdq1a4eDgwNNmjSha9eufPLJJxW2c8WKFchkMrRaLV999ZXRXaSUiIgIJk+ejLu7O/b29nTv3t3Yb1W1MSoqqtz9Ll++jLe3NwBLliwx3m/mzJns3bsXmUzG6tWry33vp59+QiaTceTIEQBmzpyJs7MzZ86cYeTIkTg5OeHt7c0TTzxBQUFBme+a6qusrCwWLlxIy5YtUavV+Pj4MH78eM6dO2c8Z8mSJfTt2xcPDw9cXV3p0aMH33//PUKICuVZFVWNq23btjF58mSaNWuGvb09rVu3Zs6cOaSlpZW5zmuvvYZMJuP48ePccccduLu706pVq0rvbc4zcfnyZWQyGe+//z4ffvghLVq0wNnZmf79+3Po0KFy1/z2229p27YtarWajh07smrVKmbOnFluRv/GZ7d03O3cuZPHHnsMLy8vPD09mTp1KlevXi13n7Vr19K/f3+cnJxwdnZm7NixhIeHV9peCYmbkYafOpCQsCGKiooYPnw40dHRLFmyhK5du7J3717eeecdTpw4wT///FPm/PXr17N3714WL16Mn58fPj4+nD17lpEjRxIcHMyKFStwdHTkyy+/ZNWqVdWuV1JSEn369EEul7N48WJatWrFwYMHefPNN7l8+TLLly+v9PuLFy/mjTfeYOrUqSxcuBA3NzciIiKIjY2tdp1eeOEF+vfvz9dff41cLicwMJCQkBCWL1/O7Nmzy5y7YsUKo2EFcPbsWQYMGEDz5s354IMP8PPzY8uWLTz55JOkpaXx6quvArB06VJee+01Xn75ZYYMGYJGo+HcuXNkZWVVWK8JEyZw8OBB+vfvzx133MHChQuNn50/f54BAwbg4+PDp59+iqenJz///DMzZ84kOTmZ5557rtI2+vj4lLtf06ZN2bx5M7fccguzZ8/moYceAgyz/a1atSIkJIQvvviCe+65p8z3Pv/8c3r37k3v3r2NxzQaDePHj2fOnDk8//zzHDhwgDfffJPY2Fg2bNhQYZtzc3MZNGgQly9fZtGiRfTt25e8vDz27NlDYmIi7du3BwxG3Zw5c2jevDlg+MM1b948EhISWLx4cYXXrwhzxlV0dDT9+/fnoYcews3NjcuXL/Phhx8yaNAgTp8+jUqlKnPNqVOncvfdd/Poo4+Sn59f4b0tfSa++OIL2rdvb/SVfuWVVxg/fjwxMTG4ubkBsGzZMubMmcPtt9/ORx99RHZ2NkuWLCn3J7YyHnroISZMmMCqVauIi4vj2Wef5b777ivjvvT222/z8ssvM2vWLF5++WVKSkp47733GDx4MGFhYZJrk4TE9QgJCYkKmTFjhnBycjK+//rrrwUgfv311zLn/e9//xOA2Lp1q/EYINzc3ERGRkaZc++66y7h4OAgkpKSjMe0Wq1o3769AERMTEyZa7z66qvl6hUUFCRmzJhhfD9nzhzh7OwsYmNjy5z3/vvvC0CcOXOmwjZeunRJKBQKce+991Z4jql7ljJ06FAxdOhQ4/udO3cKQAwZMqTcuZ9++qkAxPnz543HMjIyhFqtFgsXLjQeGzt2rGjWrJnIzs4u8/0nnnhC2NvbG2V66623iu7du1da74oAxOOPP17m2N133y3UarW4cuVKmePjxo0Tjo6OIisrq8o2miI1NbXCvly+fLkARHh4uPFYWFiYAMSPP/5oPDZjxgwBiE8++aTM99966y0BiH379hmP3dhXr7/+ugDEtm3bzKqvEELodDqh0WjE66+/Ljw9PYVerzd+dmOfm8LccXU9er1eaDQaERsbKwDx119/GT979dVXBSAWL15s1rXMfSZiYmIEILp06SK0Wq3xvNI+WL16tRDCIA8/Pz/Rt2/fMteLjY0VKpVKBAUFlTl+Y3+X9vPcuXPLnLd06VIBiMTERCGEEFeuXBFKpVLMmzevzHm5ubnCz89PTJs2zaz2S0jcLEiuBRISFhAaGoqTkxN33HFHmeOly7g7duwoc3zEiBG4u7uXObZz505GjhyJr6+v8ZhCoeCuu+6qdr02btzI8OHD8ff3R6vVGl+l/p+7d++u8Lvbtm1Dp9Px+OOPV/v+prj99tvLHbv33ntRq9WsWLHCeGz16tUUFxcza9YswDDrvWPHDm677TYcHR3LtGf8+PEUFRUZl3z79OnDyZMnmTt3Llu2bCEnJ6dGdQ4NDWXkyJEEBgaWOT5z5kwKCgrKbQY01UZLueeee/Dx8SnjNvHZZ5/h7e1tckzce++9Zd5Pnz4dMIyrivj3339p27Yto0aNqrQuoaGhjBo1Cjc3NxQKBSqVisWLF5Oenk5KSoolzTJ7XKWkpPDoo48SGBiIUqlEpVIRFBQEQGRkZLnzzZW5pc/EhAkTUCgUxvddu3YFMM4enz9/nqSkJKZNm1bme82bN2fgwIFm1Qlg0qRJZd7feJ8tW7ag1Wp54IEHytTb3t6eoUOHShFTJCRuQDJkJSQsID09HT8/vzI+lQA+Pj4olUrS09PLHG/atGmF17gRU8fMJTk5mQ0bNqBSqcq8OnXqBFDO3/B6UlNTAWp9h7Wptnt4eDBp0iR++ukndDodYHAr6NOnj7Gu6enpaLVaPvvss3LtKXU9KG3PCy+8wPvvv8+hQ4cYN24cnp6ejBw5kqNHj1arzunp6Sbr7e/vb/y8qjZailqtZs6cOaxatYqsrCxSU1P59ddfeeihh1Cr1WXOVSqVeHp6ljlWOm5urNv1pKamVtm/YWFhjBkzBjD4ge7fv58jR47w0ksvAVBYWGhRu8wZV3q9njFjxvDnn3/y3HPPsWPHDsLCwox/VEzd01yZW/pM3CjXUtmX1qFUvtf/AS3F1LGKqOo+ycnJAPTu3btc3deuXVvpsywhcTMi+chKSFiAp6cnhw8fRghRxphNSUlBq9Xi5eVV5vwbDd7SayQlJZU7buqYWq026X93o9Hi5eVF165deeutt0zWu9QQM0XpRqT4+PhyM5HXY29vb7IuaWlp5doNptsOMGvWLH777Te2bdtG8+bNOXLkCF999ZXxc3d3dxQKBffff3+Fs3ktWrQADIbdggULWLBgAVlZWWzfvp0XX3yRsWPHEhcXZ/GOdk9PTxITE8sdL92MY07/VofHHnuMd999lx9++IGioiK0Wi2PPvpoufO0Wi3p6elljKHScXOjgXQ93t7exMfHV1qHNWvWoFKp2LhxI/b29sbj69evt7A1/90TKh9XERERnDx5khUrVjBjxgzjcVOb5koxV+Y1eSZMUSrfUkPzekw9u9WldIz9/vvvxplpCQmJipEMWQkJCxg5ciS//vor69ev57bbbjMe/+mnn4yfV8Xw4cP5+++/SU5ONs7k6HQ61q5dW+7c4OBgTp06VeZYaGgoeXl5ZY7deuutbNq0iVatWpVzZaiKMWPGoFAo+Oqrr+jfv3+F55mqy4ULFzh//rxJQ7ay+wUEBLB8+XKaN2+Ovb19mY1Ojo6ODB8+nPDwcLp27YqdnZ1Z123SpAl33HEHCQkJzJ8/n8uXL1u8KWbkyJGsW7eOq1evljF0fvrpJxwdHasdUunGWbcbadq0KXfeeSdffvklJSUlTJw40bjh6kZ++eUXnnzySeP70k2ClcWnHTduHIsXLyY0NJQRI0aYPKc0dNj1y+uFhYWsXLmy0rZVhDnjqtQovXHm+ZtvvqnWPa+nJs+EKdq1a4efnx+//vorCxYsMB6/cuUKBw4csNgwroixY8eiVCqJjo6uFdcVCYnGjmTISkhYwAMPPMAXX3zBjBkzuHz5Ml26dGHfvn28/fbbjB8/vkofRICXX36Zv//+mxEjRrB48WIcHR354osvTO7Avv/++3nllVdYvHgxQ4cO5ezZs3z++efGXdSlvP7662zbto0BAwbw5JNP0q5dO4qKirh8+TKbNm3i66+/rnCJNzg4mBdffJE33niDwsJC7rnnHtzc3Dh79ixpaWnGQP73338/9913H3PnzuX2228nNjaWpUuXGmfezEWhUPDAAw/w4Ycf4urqytSpU8u155NPPmHQoEEMHjyYxx57jODgYHJzc4mKimLDhg3GHd4TJ06kc+fO9OrVC29vb2JjY/n4448JCgqiTZs2FtUL4NVXXzX6Vi5evBgPDw9++eUX/vnnH5YuXVqunubi4uJCUFAQf/31FyNHjsTDwwMvL68yIZueeuop+vbtC1BhlAk7Ozs++OAD8vLy6N27tzFqwbhx4xg0aFCF958/fz5r165l8uTJPP/88/Tp04fCwkJ2797NrbfeyvDhw5kwYQIffvgh06dP55FHHiE9PZ3333+/nJFpLuaMq/bt29OqVSuef/55hBB4eHiwYcMGtm3bVq17Xk9NnglTyOVylixZwpw5c7jjjjt48MEHycrKYsmSJTRt2hS5vHY89YKDg3n99dd56aWXuHTpErfccgvu7u4kJycTFhaGk5OT8ZmUkJBAilogIVEZN0YtEEKI9PR08eijj4qmTZsKpVIpgoKCxAsvvCCKiorKnIeJXfGl7N+/X/Tr10+o1Wrh5+cnnn32WbFs2bJyUQuKi4vFc889JwIDA4WDg4MYOnSoOHHihMkIAqmpqeLJJ58ULVq0ECqVSnh4eIiePXuKl156SeTl5VXZ1p9++kn07t1b2NvbC2dnZxESEiKWL19u/Fyv14ulS5eKli1bCnt7e9GrVy8RGhpaYdSC3377rcJ7XbhwQQCV7qSPiYkRDz74oAgICBAqlUp4e3uLAQMGiDfffNN4zgcffCAGDBggvLy8hJ2dnWjevLmYPXu2uHz5cpXtrah/Tp8+LSZOnCjc3NyEnZ2d6NatWxk5mNvGG9m+fbsICQkRarVaACYjQAQHB4sOHTqY/H7pWDx16pQYNmyYcHBwEB4eHuKxxx4r17+mxkdmZqZ46qmnRPPmzYVKpRI+Pj5iwoQJ4ty5c8ZzfvjhB9GuXTuhVqtFy5YtxTvvvCO+//77cuPSnKgFpVQ1rs6ePStGjx4tXFxchLu7u7jzzjvFlStXyu36L41akJqaatZ9hTDvmSiNWvDee++V+/6NdRBCiGXLlonWrVsLOzs70bZtW/HDDz+IyZMni5CQkEq/Wxq14MiRI2XOKx1LO3fuLHN8/fr1Yvjw4cLV1VWo1WoRFBQk7rjjDrF9+3az2y8hcTMgE6IGka4lJCRqjRUrVjBr1ixiYmLqNF2qhHVy6tQpunXrxhdffMHcuXPLfT5z5kx+//33cm4lEg1LVlYWbdu2ZcqUKSxbtqyhqyMhcdMhuRZISEhINCDR0dHExsby4osv0rRpU5PZ0ySsg6SkJN566y2GDx+Op6cnsbGxfPTRR+Tm5vLUU081dPUkJG5KJENWQkJCogF54403WLlyJR06dOC3336zONKCRP2hVqu5fPkyc+fOJSMjw7gB8OuvvzaG9ZKQkKhfJNcCCQkJCQkJCQkJm0RKiCAhISEhISEhIWGTSIashISEhISEhISETSIZshISEhISEhISEjaJZMhKSEhISEhISEjYJJIhKyEhISEhISEhYZNIhqyEhISEhISEhIRNIhmyEhISEhISEhISNolkyEpISEhISEhISNgkkiErISEhISEhISFhk0iGrISEhISEhISEhE0iGbISEhISEhISEhI2iWTISkhISEhISEhI2CSSISshISEhISEhIWGTSIashISEhISEhISETSIZshISEhISEhISEjaJZMhKSEhISEhISEjYJJIhKyEhISEhISEhYZNIhqyEhISEhISEhIRNIhmyEhISEhISEhISNolkyEpISEhISEhISNgkkiErISEhISEhISFhk0iGrISEhISEhISEhE0iGbISEhISEhISEhI2iWTISkhISEhISEhI2CSSISshISHRiHnnnXfo3bs3Li4u+Pj4MGXKFM6fP1/mHCEEr732Gv7+/jg4ODBs2DDOnDlT5pzi4mLmzZuHl5cXTk5OTJo0ifj4+PpsioSEhEQ5JENWQkJCohGze/duHn/8cQ4dOsS2bdvQarWMGTOG/Px84zlLly7lww8/5PPPP+fIkSP4+fkxevRocnNzjefMnz+fdevWsWbNGvbt20deXh633norOp2uIZolISEhAYBMCCEa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", "text/plain": [ "
" ] @@ -357,7 +357,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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rq6uMDB498a1fJs0CSEwcuRING7cGNWrVwcABAcHAwCcnJzUyjo5OeHx48eZnqtKlSpYu3YtatSogaioKCxcuBCNGjXClStXULFixQzlZ86cCR8fHx2+GiIiItKXJ0+eoFSpUu98nnybNA0dOhRXr17FyZMnM9yXvrZHCJFlDVCDBg3QoEED1e1GjRqhTp06+PXXX/HLL79kKD9+/HiMHDlSdTsyMhJlypTBkydPYGNjk5OXQzrw4sULVKhQAQBw7949ODg46DkiIiLKz6KiolC6dGlYW1vr5Hz5Mmn65ptvsHv3bhw/flwtM3R2dgYga5xcXFxUx0NDQzPUPmXFwMAA7733Hu7evavxflNTU5iammY4bmNjw6RJj4yMjNCvXz8AgIuLCywsLPQcERERFQS66lqTr0bPCSEwdOhQbN++HUeOHIG7u7va/e7u7nB2doavr6/qWEJCAvz8/NCwYcNsPU9AQIBa4kX5n4WFBVauXImVK1cyYSIiojyXr2qahgwZgvXr12PXrl2wtrZW9WGytbWFubk5FAoFhg8fjhkzZqBixYqoWLEiZsyYAQsLC3z22Weq8/Tu3RslS5bEzJkzAQA+Pj5o0KABKlasiKioKPzyyy8ICAjAb7/9ppfXSURERAVPvkqalixZAgBo3ry52vE1a9agb9++AIDvvvsOb968weDBg/Hq1SvUr18fhw4dUmuvDAwMVOslHxERga+//hrBwcGwtbVF7dq1cfz4cdSrVy/XXxPpTlxcHGbNmgUAGDduHOfZIiKiPJWv52nKL6KiomBra4vIyEj2adKjtH3XQkJC4OjoqOeIiIgoP9P193e+6tNERERElF8xaSIiIiLSApMmIiIiIi0waSIiIiLSApMmIiIiIi0waSIiIiLSQr6ap4koK1ZWVvjkk09U+0RERHmJSRMVGBYWFti8ebO+wyAioiKKzXNEREREWmBNExUYCQkJWLx4MQBg8ODBMDEx0XNERERUlHAZFS1wGZX8gcuoEBFRdnAZFSIiIiI9YNJEREREpAUmTURERERaYNJEREREpAUmTURERERaYNJEREREpAXO00QFhoWFBTp06KDaJyIiyktMmqjAsLKywr59+/QdBhERFVFsniMiIiLSAmuaqMBISEjAhg0bAAA9e/bkMipERJSnmDRRgREREYG+ffsCANq3b89lVIiIKE+x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", "text/plain": [ "
" ] @@ -420,22 +420,14 @@ "name": "stdout", "output_type": "stream", "text": [ - "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", + "system: a = 0.010124405669387215 , b = 1.3203061238159202\n", + "pzcancel: kp = 0.5 , ki = 0.005062202834693608 , 1/(kp b) = 1.5148002148317266\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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", "text/plain": [ "
" ] @@ -450,7 +442,7 @@ "\n", "# Construction a controller that cancels the pole\n", "kp = 0.5\n", - "a = -P.poles()[0]\n", + "a = -P.poles()[0].real\n", "b = np.real(P(0)) * a\n", "ki = a * kp\n", "control_pz = ct.TransferFunction(\n", @@ -510,21 +502,9 @@ "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": "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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", + "image/png": "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7MpcmJmIiKi+qXL33IsvvoiMjAzcd999yMvLw8CBA+Hs7IwXXngB06ZNM2cdyQKKioqgG+5W08uoEBERWYNKB03x8fG45557AABvvfUW5s6di5MnT6K4uBidO3eGh4eHuetIREREZHGV7p7r0aMHQkJCsHLlSmRkZMDNzQ09e/ZE7969GTARERGRzap00PTTTz+hR48emD17Nnx9ffHEE09weRUiIiKyeZUOmkJDQ/Hxxx8jLS0NK1euxIULFzB06FC0adMGb731Fi5cuFAT9SQiIiKyqCrPnnN1dcWECROwe/du/Pbbb3j00Ufx0UcfITAwEA888IA560hERERkcWZZsLdNmzaYPXs25s6dCy8vL3z33XfmOCxZUMmlUyyxjAoREVFdU+214GNiYrBmzRps3rwZ9vb2eOSRRzBp0iRz1I0syN/fH1VcYYeIiMgmVSloSklJwbp167Bu3TokJSWhX79+eP/99/HII4/A3d3d3HUkIiIisrhKB03Dhg3Drl270LRpU4SHh+Opp55Chw4daqJuRERERHVGpYMmV1dXbN68GaNGjeJYFxt28eJF+Pv7A5AlVZo3b27hGhEREVlWpYOm7du310Q9qI4pKChAcXGx/jkREVF9Z5bZc0RERES2jkETERERkQkYNBERERGZgEETERERkQnqVNAUGxuL0aNHw8/PDxqNBl9//bXR+5cvX8bEiRPh5+cHNzc3jBgxAmfOnLnrcTdv3ozOnTvD2dkZnTt3xtatW2voDIiIiMhW1amgKScnB8HBwVi+fHmp95RSGDt2LBITE7Ft2zbExcUhICAAQ4cORU5OTrnH/PnnnzFu3DiMHz8eR48exfjx4/HII4/gwIEDNXkqREREZGM0qo6ulaHRaLB161aMHTsWAPDbb7+hQ4cOOHHiBLp06QIAKCoqQrNmzfD2229j8uTJZR5n3LhxyMzMxDfffKPfNmLECDRs2BBffPGFSXXJzMyEVqtFRkYGvLy8qndiREREVCvMff+uUy1NFcnPzwcAuLi46LfZ29vDyckJe/fuLfdzP//8M8LCwoy2DR8+HPv27avwuzIzM40KERER1W9WEzR17NgRAQEBmDNnDm7cuIGCggIsWrQIaWlpSE1NLfdzaWlp8Pb2Ntrm7e2NtLS0cj8TFRUFrVarLy1btjTbeRAREZF1spqgydHREZs3b8Zv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", "text/plain": [ "
" ] @@ -577,21 +557,9 @@ "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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/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", + "image/png": "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6f79+0hISNBM601KSkJCQgKSk5MBiPFIw4cP17x+7NixuHr1KqKionDhwgWsXbsWa9aswZQpUyxRfatx//59vPTSS3jppZdw//59S1eHiIjI4qwu5cDevXvx1FNPFTs+YsQIrF+/HiNHjsSVK1ewd+9ezXNxcXGYPHkyzp07h4CAAEybNg1jx441+DOzsrKgVCqRmZlZZcb2JCUloX79+gCAxMREBAcHW7hGREREZWPs72+rC5osgUETgyYiIrI+xv7+trruOSIiIiJLYNBEREREZAAGTUREREQGYNBEREREZAAGTUREREQGsPmM4FQ+Xl5eaN26tWafiIioqmPQRHoplUqcPHnS0tUgIiKqNNg9R0RERGQABk2kV25uLsaPH4/x48cjNzfX0tUhIiKyOGYENwAzgjMjOBERWR9mBCciIiKyAAZNRERERAZg0ERERERkAAZNRERERAZg0ERERERkAAZNRERERAZgRnDSS6lUomnTppp9IiKiqo5BE+nl5eWFCxcuWLoaRERElQa754iIiIgMwJYm0is3Nxfz588HAEyfPh2urq4WrhEREZFlcRkVA3AZFS6jQkRE1ofLqBARERFZgFUGTStWrEBwcDBcXFwQFhaG/fv3l/r67777DqGhoahWrRr8/f3x6quv4s6dO2aqLREREdkCqwuaNm3ahMjISMycORPx8fHo0qUL+vbti+TkZL2vP3DgAIYPH45Ro0bh3Llz+OGHH3Ds2DGMHj3azDUnIiIia2Z1QdOiRYswatQojB49Gs2aNcOnn36KunXrYuXKlXpff/jwYdSrVw8TJ05EcHAwOnfujDFjxuD48eNmrjkRERFZM6sKmvLz83HixAlEREToHI+IiMDBgwf1vqdTp064du0aduzYAUmScPPmTWzevBnPPvtsiZ+Tl5eHrKwsnUJERERVm1UFTbdv34ZKpYKvr6/OcV9fX6Slpel9T6dOnfDdd99hyJAhcHJygp+fH6pXr45ly5aV+DnR0dFQKpWaUrduXaNeBxEREVkfqwqaZAqFQuexJEnFjsnOnz+PiRMnYtasWThx4gR+++03JCUlYezYsSWef8aMGcjMzNSUlJQUo9bfGiiVSgQFBSEoKIjLqBAREcHKklvWqlUL9vb2xVqV0tPTi7U+yaKjo/Hkk0/iv//9LwCgVatWcHNzQ5cuXTBv3jz4+/sXe4+zszOcnZ2NfwFWxMvLC1euXLF0NYiIiCoNq2ppcnJyQlhYGGJjY3WOx8bGolOnTnrf8+DBA9jZ6V6mvb09ANFCRURERGQIq2ppAoCoqCgMGzYMbdu2RXh4OFavXo3k5GRNd9uMGTNw/fp1fP311wCA/v374/XXX8fKlSvRu3dvpKamIjIyEu3bt0dAQIAlL6VSy8/Px+effw4AGDNmDJycnCxcIyIiIsuyuqBpyJAhuHPnDt577z2kpqYiJCQEO3bsQFBQEAAgNTVVJ2fTyJEjkZ2djeXLl+Ott95C9erV8fTTT2PBggWWugSrcP36dUycOBEA0K9fPy6jQkREVR7XnjMA156zjbXnbt0CLl0C7t8XJSdHlPx8wN0d8PAoLNWrAwEBYlvCHAOrIUniOu/cAe7eBTIzgexs8TOQt7m5QF6ebikoANRqUVQqsQXEz0OhAOzsxNbBQbc4OgJOToCzs25xdRWlWrXCfXd3UdzcxLZaNev/eRNR5WHs72+ra2ki23bzJvDHH6IcOACcPQv4+QGNGwONGoltkyZAeLj4ki3JrVtATAxw6hRw+rTYlpCVolSuriJ4CggA6tYF6tcHGjQoLP7+lv2Sz8sDrlwBEhOBlBTg+nXgxo3CbXq6CJby8y1Xx7JQKIoHsJ6eoiiVhaV6dd1So0bh1tNTBHRERMbGoIkqhT17gHHjgAsXij+XmCjKb78VHnN0BLp0Afr0ESUkBHj0CPjlF+Crr8S2oED3PAoFEBgovlzd3AqLo6NoicnOLix37wL37okWmMuXRdHHzQ1o2hRo1kyU5s1FadAA+Ge+gVHcvi0CSLn89ZeoU0qKaEkyhJMTULOmuH45MJFbeqpVK94y5OAggg97e7GVAxFJKixyK1RBgfj5y9v8fN1Wq4cPxc9Suzx4IH7ucquffG75HpSXnZ0IrGrUALy8dIt8rGbN4tsaNcQ1ExGVhN1zBmD3nGm75379FXj+efHlqlCIAOjJJ4HOnYE2bURryaVLIlC4dAlISBCtK9rc3MQXdl5e4bEnngA6dQJatQJCQ8V5S2udKio3F0hNLWy1uXq1MIC6fBlITi7ssirKxUUETy1bihISIraGtEzdvg0cOSLK0aPiem/eLPn1bm4iSAsKAmrXFq1itWuLz/L1FQFBzZridZW160utFj9vucswOxvIyhLbzEyxn5mpWzIydIsc5FaEUlk8oCptXw7EjBkgE5HxGPv7m0GTARg0mS5o2r4dGDxYtE489xywfr34EiqNJAF//y1akz7/HPjzT93nq1UD+vcHxowRrVGmaj3IzxctYBcuiHL+fOF+SV/eXl6FgVTLliKwUiqBEyeA3btFt2Riov73BgcXBmBNmxZ2Efr4VN5gyNzy8kTwJBe5xfDu3cIij+3S3mZmVuxztVu2tLdF94sWdiUSmRaDJgtg0GSaoOl//wNeflm0EA0eDHz3negqM8ThwyIoOn1aPA4JES0rx46JVgeZl5cIoAYOBCIiREBlaiqVCHzOngXOnBFF7lIrqWWqqDp1gHbtgKefFtsWLcrWSkZlU1BQGFzpC6qKBlxyqeiylApFYcBVdGyWvJX39RVXVwbMRKVh0GQBVTFounv3Lpo3bw5ALEXj5eVl1PN/+y0wYoQIIl55BVi3zrAWoexsYNo0YNUq0eJUsybwySfA8OHiyyM/X7TY/PAD8OOP4otN5uIC9OolylNPiUDEXF846enAli3Ahg0i4Hv0yLD3OTuL1qSGDQu38n5goOFBJpnGo0clt2wVPVa0VLQrERD3v3p13cHx2oPltQfPFz0mD65nCjayZQyaLKAqBk2mFBsL9O4tgp5Ro0QXmyFjQjIyxPuOHhWPR4wAPv4YqFVL/+sLCkR3148/ilJ0HJS3twieuncXY59CQow7NiU7G9i8Gfj6ayAuTnfAdv36QL9+QM+eQOvWYuzUuXPAxYuiyOO3Spv1ZmcnZvQFB4vz1asnSlBQ4fgmDmyuvB4+1B2PJRftY/I2M1P3uYwMw1stH8fFpTCAkmcqyo+1Zy/K+9ozG+Vj8oQCju2iyoZBkwUwaDKunj2BXbuAYcPEGCZDxnTcuye6144fF11uP/wguq4MJUmiK2/HDjFT78CB4n/pu7kB7dsDHTsCHTqIgeSBgWVrjVKpREvXV18BW7fqfkZYmOgmHDBABGiPO69KJQaf//13Ybl8WQRTSUniS7c09vYicKpTRwRXdeuKfXmQuFxcXQ2/PqocJEkMms/I0B0UL+8XPaavyDMWjUnOveXhUZh7S3vr5ia6yLVnr1arVljkPF5FH8t5vfhHAJUVgyYLqIpBU35+PrZv3w4AGDBggNGWUfnrL5FnSaEQ437q1Xv8e+7eFV1qJ0+K7rhdu8RsuIrIyxMtVnv2APv2iX1909w9PXVn3wUHF7bmuLgUvi4zE1izBli2TLdFq3Fj0SL28sviPcaiVosZdYmJIoBKTBQB1pUrYpucbHgXoFIpZtnVqiVa37y9xb48S0x7MLPcvePhwQHM1q6goHCWojxDUXtfToIqH9ee0Vi0FE3vYSoODoUBlKur+DdY0lZfcXYuvq+9lUvRx3JxcuLvvbVh0GQBVTFoMtVA8KgoYPFi4Nlngf/7v8e//s4d0TKVkCC+zHftEjPIjE2lErPeDh8W5dgx8bi0wMPfX8xcy8oS+ZLkLw43N1HnIUNE91/NmuYfe6RWiy6/lBRRrl0r3E9NFeXGjce3VpVEoRCBk/b4GO2uHO08UNr5oEpreWArgnWSJNGNLGfalwMpOeO+nIdLOwu/nKNL3n/wQDd3l3YuL2OM/TImBwfdIEp7X36svTW0yJn05X25FH1cWpEz8mtv5VJVJwwwaLIABk3GCZpyc0XX0L17ImB69tnSX3/nDtCjh8jm7eMjur1atKhwNQyWny/GF8lZxS9cEC05SUll79rw9Cw+3Vxfkkm5C0IucmJJtVo3qWTRAhQubaKdjNLRUf9yJm5uYltQIH7Ot2+LLOq3bhXuyzPEtAczZ2SYLru4o2NhvYouuaKvRUDfl4a9feH1a/8ctJd90S7yz03elnSsaCl6Xu3PlPfl+6e91fdlVvQatL9AjTVGSE5Eqv37UpT2NVUmkqQ/OWpubuFx7efz8gqPycflBKvyVntfOwFr0WN5edaTTf9x5N9Jfb+X8u9taUX7ddq/69qlpH8LRY/Lx4o+V9Ljov/eynIsLy8L48ZZ2TIqd+/eNfrsK7I+//uf+OINChJZvEsjScDIkSJg8fUVAdM/k/nMxsmpMJ+S7Px5YPZsMcBb1rKlGP9UrZroMrt5szAQuXdPXIvcxXH1qnmvwRD29rpjTOSWIDlA8fMT98zZubBVoeiXlvYXVl6eaKFTqXSL/GVdNNiTPXpUOA6HdBUN5oruA7o/T+2fdUU/U99nlaboZ5rjz/LSfj6Pq7u+n5v2vvx+a29eUKvFv11bCQItxSxBU61atVCnTh2EhobqlEaNGkFR2f6sIZNZuVJsx4x5/F/QX38tWqOcnICdO80fMBV1+bIIlr7/vvA/zyFDxLFmzUp+n0olAqc7d3RnQ8kzorQXzZUXzi0oKCxy96C+lo6ixySpcGFdeXmTR4+KL8SbmytayuRzq1SFQR1VTsYIgsr7meb+3PKwxM+HqiazBE3nz59HQkIC4uPjcezYMXz++ee4e/cuXF1d0aJFCxw5csQc1SALio8Xy4I4OgKvvVb6a69dAyZNEvtz51Z80HdFPHgAfPgh8NFHhX+hPf+8qJchY6vs7cWg6pLSIljSo0e6Y0u0x5zk5BTvusjPF8FZ0WZ9fYNtnZyKd0XJA2i1u8HkAE870NNe107eL6mbraQut9Lo+2KVpJJbK/R155XUxafvc/S1sOm7RrVad/0+ueTnF67vJwfCBQWFPy85UNb+2cn78vmL1qvozxAo3sWi/fOVt9o/p6Ln03dMX5F/d/R1wxT9LPnz5Oso+rsiF+0/NLSfV6sLxxoW/dmXVreiPwt5TJA87q5oXbWvW/5566uz9n3Svnfa9VKpiv9uy/dHu55yfYp2F8t/kBb9/dT3e1+0PtrrScpbfdei79/D47rctH/P9P171U6hoe/fR0GB/vpp10u+Dm0PHog/1I3FLEFT06ZN0bRpU7z44osAAEmS8Ntvv2HChAno0aOHOapAFia3Mg0aJLrbSiLnbsrMFNP/p0wxT/301WPrVjFwPTlZHOvVC5g/X6yHZwscHQsHchMR2aKsLOMGTRaZPKlQKNC3b198++23uHHjhiWqQGaUmSmWSAGAN94o/bVffgnExIgWi6++ssyMqr/+Ekk0//1vETAFBYkAaudO2wmYiIio7MwSNKlLSF3bsWNH7N271xxVoDJyd3eHl5cXvLy84F7BRc+++UY0kTZvDnTtWvLrrlwRLTsA8MEHYlFac1KrgeXLxaDu2FjRzTRrlhj8/fzzlW9WERERmZdZ/o53d3dHSEgInnjiCYSGhuKJJ55AkyZNcPToUdy/f98cVaAy8vb2xp07dyp8Hkkq7JobO7bkwEOtFmOd7t8HOncuHNNkLteuAa++Cvz+u3jcs6dY365BA/PWg4iIKi+zBE1bt27FqVOncOrUKXz22We4dOkS1Go1FAoF3n//fXNUgSzkjz9ES021amLZlJKsXy+yc1erJhbvNdcaVpIkZsSNGye6EV1dxaDvN95g5l8iItJllqCpT58+6KOVmOfhw4e4fPkyatasCT8/P3NUgcpIpVLh8OHDAEQ3qn05o5jYWLEdOFAkc9SnoEB0xwHAnDlAw4bl+qgyk2dVfPuteNyunehKbNLEPJ9PRETWxSILF7i4uKCFOVM7U5klJyejc+fOACqWEfz4cbENDy/5NVu2iLXTatYE3nyzXB9TZklJYiZfQoJo1Zo1C5gxw/zLnRARkfXgak9kMpIEnDgh9tu2Lfk10dFif+JEkY3a1GJjgRdfFEuDeHuLTOXdu5v+c4mIyLpx1AaZzPXrYkkRe/uSE1Tu3CmWSnFzA8aPN219JEmMV+rTRwRMbduKoI4BExERGcIqg6YVK1YgODgYLi4uCAsLw/79+0t9fV5eHmbOnImgoCA4OzujQYMGWLt2rZlqW3XJXXMtWogB1vrMny+2Y8YAplye8NEjYMQIYOpUMVPv1VeB/fuBunVN95lERGRbrK57btOmTYiMjMSKFSvw5JNP4vPPP0ffvn1x/vx5BAYG6n3PCy+8gJs3b2LNmjVo2LAh0tPTUSDn1ieTeVzX3KFDQFycGEc0ebLp6pGTAwweDPz6q2j1WrpUzI5j3iUiIioLs7U07d+/H6+88grCw8Nx/fp1AMA333yDAwcOlOk8ixYtwqhRozB69Gg0a9YMn376KerWrYuVcjKgIn777TfExcVhx44d6NmzJ+rVq4f27dujU6dOFb4mKp3c0hQWpv95uZVp+HCgTh3T1OHuXZFz6ddfRWvXTz+JweYMmIiIqKzMEjRt2bIFvXv3hqurK+Lj45GXlwcAyM7OxocffmjwefLz83HixAlEREToHI+IiMDBgwf1vuenn35C27ZtsXDhQtSuXRuNGzfGlClTkJubW+Ln5OXlISsrS6dQ2UhSYdCkr6Xp3DkRwCgUwH//a5o6XLsGdOkCHD4M1KgB7NoFPPOMaT6LiIhsn1mCpnnz5mHVqlX44osv4Kg1p7tTp044efKkwee5ffs2VCoVfIus+Orr64u0tDS970lMTMSBAwdw9uxZbNu2DZ9++ik2b96McePGlfg50dHRUCqVmlK3Cg58cXd3h4eHBzw8PMq1jEpKCnD7tlg7rlWr4s8vWCC2gwaZJi/SxYtAp04isWbt2mL8UmlpD4iIiB7HLEHTxYsX0VXPomOenp7IyMgo8/kURfpWJEkqdkwmZx7/7rvv0L59ezzzzDNYtGgR1q9fX2Jr04wZM5CZmakpKSkpZa6jtfP29ta0snl7e5f5/XIrU0iIWHxX29WrIgs3AEyfXsGK6vH338BTT4nArUkT4OBBMRidiIioIswSNPn7++Pvv/8udvzAgQOoX7++weepVasW7O3ti7UqpaenF2t90v7s2rVrQ6lUao41a9YMkiTh2rVret/j7OwMT09PnUJlU1rX3BdfACoV0KNHyYPEyys5WZw3NVUEbAcOACXMDyAiIioTswRNY8aMwaRJk3DkyBEoFArcuHED3333HaZMmYI3y5AC2snJCWFhYYiV1+b4R2xsbIkDu5988kncuHFDZ2Hgv/76C3Z2dqhjqtHHNkClUiEpKQlJSUlQqVRlfn9JM+ckCfjhB7H/2msVrGQRqakiYEpOBho3Fovv1qpl3M8gIqIqTDKTt99+W3J1dZUUCoWkUCgkFxcX6Z133inzeTZu3Cg5OjpKa9askc6fPy9FRkZKbm5u0pUrVyRJkqTp06dLw4YN07w+OztbqlOnjvTvf/9bOnfunBQXFyc1atRIGj16tMGfmZmZKQGQMjMzy1xfa5WYmCgBkABIiYmJZXqvWi1JXl6SBEjSsWO6z506JY47O0tSVpbx6pueLknNm4tzBwdLUkqK8c5NRETWydjf32bL0/TBBx9g5syZOH/+PNRqNZo3b16uAcZDhgzBnTt38N577yE1NRUhISHYsWMHgoKCAACpqalITk7WvN7d3R2xsbGYMGEC2rZti5o1a+KFF17AvHnzjHZtpOvKFTHV39ERaNlS9zm5lalPH8DDwzifd+8eEBFROOh71y7TpTAgIqKqSyFJkmTpSlR2WVlZUCqVyMzMrDLjm5KSkjTjzcq6YO/mzSKZZFhY4dgmQHTNNWsmZrZ9+y3w8ssVr2d+vgiY4uIAHx9g3z7TzMYjIiLrY+zvb5O1NEVFRRn82kWLFpmqGmQBJSW1PHdOBEzOzkD//hX/HEkSmb3j4kSrVWwsAyYiIjIdkwVN8fHxBr2upFQBZL1Kmjknd8317g0Yo8Hu44+BtWsBOzvgf//Tnw+KiIjIWEwWNO3Zs8dUp6ZKTJJKnjknB03//nfFP2f7dmDaNLH/6adijBQREZEpmSXlQHJyMkoaOqU9aJusX2IikJEBODnpJpQ8dw64cEEcf+65in1GfDzw0kuF3XPjx1fsfERERIYwS9AUHByMW7duFTt+586dMg0wJvNxdXWFi4sLXFxc4OrqavD75K650FARIMnkVqaICEArz2iZpaaKoOvBA6BXL2DJEi6+S0RE5mGWlANSCcuc3L9/Hy5F19igSsHPz6/URY1L8riuucGDy1+nggJgyBCxEG/TpmIck9ZShkRERCZl0qBJnkGnUCjw7rvvolq1aprnVCoVjhw5gieeeMKUVSAz0zdz7vx5URwdK9Y19957YuFdd3fgp5+A6tUrVFUiIqIyMWnQJM+gkyQJZ86cgZNWf42TkxNCQ0MxZcoUU1aBzEit1t/StHmz2EZElD/Q2bULkPORrl4NNGpU7moSERGVi0mDJnkG3auvvoqlS5fCo0gKaEmSkJKSYsoqUDmVJ7nl5ctAVhbg4gI0b154vKJdczdvikSYkgSMHg0MHVq+8xAREVWEWQaCf/3113rHx9y9e5cDwW2I3MoUGlo41ujPP4GzZ8vfNadWA8OGicCpRQsx8JuIiMgSzBI0lZRugAPBbcv582Krvd7czz+LbY8eQI0aZT/nggUi07erqxj4rTUsjoiIyKzMNhB81qxZHAhu4+SgSbtrLi5ObHv1Kvv5Dh4E3n1X7C9frnteIiIic+NAcDKaCxfEtlkzsVWpgAMHxH7XrmU7V24uMHKkOMdLLwGvvmq0ahIREZWL2QaCL1myxCgrDFPlVFAAXLok9uWg6fRpIDNTLKZb1gbFOXPE+QICgM8+YwJLIiKyPLMkt1y3bp05PoYs6PJl4NEjMeaobl1xTO6a69wZcCjDb9qxY2IxXgBYuZL5mIiIqHIwS9AEABkZGVizZg0uXLgAhUKBZs2aYdSoUVBWZE0NMhlXV1dNd6ohy6jI45maNQPs/pleIAdNZemay88HRo0Ss+aGDq34OnVERETGYpbZc8ePH0eDBg2wePFi3L17F7dv38bixYvRoEEDnDx50hxVoDLy8/NDXl4e8vLy4Ofn99jXFx3PpFaL7N0A0K2b4Z8bHQ2cOQPUqsX0AkREVLmYpaVp8uTJeO655/DFF1/A4Z9+moKCAowePRqRkZHYt2+fOapBJlQ0aDp/HrhzR3TXaS+pUpqzZ4EPPhD7y5YB3t7GrycREVF5mSVoOn78uE7ABAAODg6YOnUq2hZd2ZWsUtGgSe6aCw8HtCZNlqigAHjtNTEu6rnnxMK8RERElYlZuuc8PT2RnJxc7HhKSkqxpVWockhKSoJCoYBCoUBSUlKpr1WrC4MmOZeS3HhoaNfc8uViALhSKQZ/c7YcERFVNmYJmoYMGYJRo0Zh06ZNSElJwbVr17Bx40aMHj0aQ7mQmNVLSQEePBBLpTRoINaIk1uaDAmabt0SKQYAYOFCkWaAiIiosjFL99zHH38MhUKB4cOHo6CgAADg6OiIN954A/PnzzdHFciE5FamRo1EaoGLF8Vacc7OQPv2j3//u++KfE6tW4uZc0RERJWRyVuaHj16hN69e2PcuHG4d+8eEhISEB8fj7t372Lx4sVwdnYu8zlXrFiB4OBguLi4ICwsDPvlaVqP8ccff8DBwYFLtxhZ0a45uZWpQwfgcUsLnjoFfPGF2F+yBLC3N00diYiIKsrkQZOjoyPOnj0LhUKBatWqoWXLlmjVqpXOOnRlsWnTJkRGRmLmzJmIj49Hly5d0LdvX71jprRlZmZi+PDh6NGjR7k+l0qmnaMJMHw8kyQBkZFiTNQLLwBdupisikRERBVmljFNw4cPx5o1a4xyrkWLFmHUqFEYPXo0mjVrhk8//RR169bFypUrS33fmDFj8NJLLyE8PNwo9aBC2jPnyjKeaetWYO9e0Rq1cKFJq0hERFRhZhnTlJ+fjy+//BKxsbFo27Yt3NzcdJ5ftGiRwec5ceIEpk+frnM8IiICBw8eLPF969atw+XLl/Htt99i3rx5j/0cOamjLCsry6D6VUWSpBs0JSUB166JsU0dO5b8vocPAXmt5v/+FwgKMn1diYiIKsIsQdPZs2fRpk0bAMBff/2l85yiDHPLb9++DZVKBV9fX53jvr6+SEtL0/ueS5cuYfr06di/f79OnqjSREdHY+7cuQbXyxY5OTnB/p8BRk6lJFq6dQu4e1ekCGjSBNi4URxv1w4oEhvrWLQIuHIFqF0bmDbNiBUnIiIyEbMETXv27DHq+YoGWpIk6Q2+VCoVXnrpJcydOxeNGzc2+PwzZsxAVFSU5nFWVhbqyqvQVhG1a9fWzHQsjTyeKTgYcHU1bDzTjRvAhx+K/YULSw+uiIiIKguzLdhrDLVq1YK9vX2xVqX09PRirU8AkJ2djePHjyM+Ph7jx48HAKjVakiSBAcHB8TExODpp58u9j5nZ+dyzeqrikrKBF7aIr3vvQfk5Ihs4UzTRURE1sJsQdOuXbuwa9cupKenQ61W6zy3du1ag87h5OSEsLAwxMbG4vnnn9ccj42NxYABA4q93tPTE2fOnNE5tmLFCuzevRubN29GcHBwOa6EtGkHTSkpYkyTnR3w5JP6X3/lCiDPCViwgJm/iYjIepglaJo7dy7ee+89tG3bFv7+/mUax1RUVFQUhg0bhrZt2yI8PByrV69GcnIyxo4dC0B0rV2/fh1ff/017OzsEBISovN+Hx8fuLi4FDtOupKSklC/fn0AQGJiYokBpnaOJrlrrnVrwNNT/3nff1+sM9erF1MMEBGRdTFL0LRq1SqsX78ew4YNq/C5hgwZgjt37uC9995DamoqQkJCsGPHDgT9M/0qNTX1sTmbyHi0czStWyf2SxrP9PffwFdfif333jN93YiIiIxJIUmSZOoPqVmzJo4ePYoGDRqY+qNMIisrC0qlEpmZmfAsqQnFxhjS0pSZCVSvLvYzMkQG8IsXge3bgeeeK37O4cOBb74BnnkG+OUX09WdiIgIMP73t1mSW44ePRrff/+9OT6KzOjPP8XW31/kXbp4UTzu3Fn/a7/7TuyzlYmIiKyRybrntKfsq9VqrF69Gr///jtatWoFR0dHndcamtySKhft8Uzy8n8tWwJeXsVfO3euWC5l4EAgLMxsVSQiIjIakwVN8fHxOo/lRXLPnj2rc7wig8LJsrTHM8mDwPWlGjh7Fti0SexX8ZyhRERkxUwWNO3ZswevvfYalixZAg8PD1N9DFmQdrqB1avFvr5B4LNni+VWBg8GWrUyX/2IiIiMyaRjmr766ivk5uaa8iPIRJycnGBnZwc7O7sSl1GRg6Y6dYDTp8V+0TQCCQliYV6FQgRPRERE1sqkKQfMMDGPTKR27dpQqVQlPv/woUhkCYiZc5IENG4M+Pnpvk5eH/nFF4EWLUxTVyIiInMw+ew5jlmyTX/9JQZ216hR2MpUdDzThQuilQkAZs40b/2IiIiMzeTJLRs3bvzYwOnu3bumrgYZmTzOX3vmXNHxTNHRogVq4EC2MhERkfUzedA0d+5cKJVKU38MGVlycrImy/rVq1cRGBio8/zu3WLboQOwZInY125pSkoC5NRcbGUiIiJbYPKg6cUXX4SPj4+pP4aMTHs8U9GxTZIE7Nol9n18AJUKCAoCtOOqhQvF8YgIoG1bc9SYiIjItEw6ponjmWzTxYvA9euAszMg96xqtzLduAGsXSv22cpERES2wqRBE2fP2Sa5lenJJ4FDh8S+9nimTz4B8vPF80VTEBAREVkrkwZNarWaXXM2SA6aunUDjhwR+3JL0+3bwKpVYn/mTJGfiYiIyBaYZcFesh0qFbBnj9j38REtSn5+QMOG4tjSpcCDB0CbNkCfPparJxERkbExaKIyOXlSJLNUKoGbN8Wxbt1Ei1JWFrBsmTj29ttsZSIiItti8tlzZJ3s7e01A/nt7e01x+Wuue7dgQMHxL7cNffxxyKgatoUeP5589WViIjIHNjSRHoFBgZCrVZDrVbr5GjSDpoOHhT7XbsCycnARx+Jx/PmAXb8zSIiIhvDliYy2MOHha1LPj5i7JKXl8gK/sor4vlu3YBBgyxbTyIiIlNgewAZ7OBBERj5+wMxMeJYRARw+DCwYYMYw7R4MccyERGRbWLQRHolJyfDzs4OdnZ2SE5OBlDYNRceXrhEysSJwOTJYv+114DWrS1QWSIiIjNg9xzppVKpNMlJ5WVUfv9dPPfwIfDoEdC5M3D5MnD0KODuLsYyERER2SoGTWSQjAzg+HGxv3+/2I4fD7z1ltifOVPkayIiIrJV7J4jg8TFAWo14O0NZGcDjRsD58+LNejq1QMiIy1dQyIiItOyyqBpxYoVCA4OhouLC8LCwrBfbvrQY+vWrejVqxe8vb3h6emJ8PBw7Ny504y1tQ3yeKbcXLEdPrwwxcBHHwEuLpapFxERkblYXdC0adMmREZGYubMmYiPj0eXLl3Qt29fzWDlovbt24devXphx44dOHHiBJ566in0798f8fHxZq65dZPHM92/D9SqBXz7rQigunYF/vUvy9aNiIjIHBSSPNrXSnTo0AFt2rTBypUrNceaNWuGgQMHIjo62qBztGjRAkOGDMGsWbMMen1WVhaUSiUyMzPh6elZrnpbm6SkJNSvXx8AcOjQFYSHB2mea9BADAAPCBCDwGvXtlQtiYiISmbs72+ramnKz8/HiRMnEBERoXM8IiICB+X01I+hVquRnZ0NLy+vEl+Tl5eHrKwsnVLVFC6dosDkyUrNcQcHETBVqwb8/DMDJiIiqjqsKmi6ffs2VCoVfH19dY77+voiLS3NoHN88sknyMnJwQsvvFDia6Kjo6FUKjWlbt26Faq3NQoMDIRKJeGFF9Q4fLg65BiqoEAkr/z+e6BNG8vWkYiIyJysKmiSKYqknJYkqdgxfTZs2IA5c+Zg06ZN8PHxKfF1M2bMQGZmpqakpKRUuM7WRpJEOoH//U+sI/dPqiYAYmHeAQMsVzciIiJLsKo8TbVq1YK9vX2xVqX09PRirU9Fbdq0CaNGjcIPP/yAnj17lvpaZ2dnODs7V7i+1mzBAuDTT8W+Wl14fMyYwgzgREREVYlVtTQ5OTkhLCwMsbGxOsdjY2PRqVOnEt+3YcMGjBw5Et9//z2effZZU1fTKkiS6Gp7+FDkXbp2DThyBNiyBRgxApgxIxdAOwCBAG4DAHr3BpYt49pyRERUNVlVSxMAREVFYdiwYWjbti3Cw8OxevVqJCcnY+zYsQBE19r169fx9ddfAxAB0/Dhw7FkyRJ07NhR00rl6uoKpVJZ4ufo4+0ttpKkW+RjMuuaj1gSNQCRAtzHJxsLFtTCsGHQjG0iIiKqaqwuaBoyZAju3LmD9957D6mpqQgJCcGOHTsQFCSmxKempurkbPr8889RUFCAcePGYdy4cZrjI0aMwPr168v02fn5RrkEK/FQs7d3L9CsmeVqQkREVBlYXZ4mS5DzPISFZcLFxRNOTmLqvYMD4OQkWl8cHUWRj9vbiyLvKxRia2dX2L2lb6tQiNdoH5ffo70teh7t98jH1WrRBVdQIAZy5+eLNeRu3gTS0kS5cUO8rlo1wM0N8PAQ+2FhSVi1SuRpSkxMRHBwsGl/yEREREZm7DxNVtfSZEm7dwNVJLclkpKAVassXQsiIqLKw6oGghMRERFZCoMmIiIiIgMwaCIiIiIyAMc0kV7BwcHgHAEiIqJCbGkiIiIiMgCDJiIiIiIDMGgiva5fvw4HBwc4ODjg+vXrlq4OERGRxXFME+mVn58PlUql2SciIqrq2NJEREREZAAGTUREREQGYNBEREREZAAGTUREREQGYNBEREREZAAGTUREREQGYMoB0ovLqBAREeliSxMRERGRARg0ERERERmAQRPplZaWBmdnZzg7OyMtLc3S1SEiIrI4jmkivXJzczXLp+Tm5lq4NkRERJbHliYiIiIiAzBoIiIiIjIAgyYiIiIiA1hl0LRixQoEBwfDxcUFYWFh2L9/f6mvj4uLQ1hYGFxcXFC/fn2sWrXKTDUlIiIiW2F1QdOmTZsQGRmJmTNnIj4+Hl26dEHfvn2RnJys9/VJSUl45pln0KVLF8THx+Ptt9/GxIkTsWXLFjPXnIiIiKyZQrKytM8dOnRAmzZtsHLlSs2xZs2aYeDAgYiOji72+mnTpuGnn37ChQsXNMfGjh2LU6dO4dChQ3o/Iy8vD3l5eZrHmZmZCAwMREpKCjw9PY14NZXXlStXEBoaCgA4deoU6tWrZ9kKERERlVFWVhbq1q2LjIwMKJXKip9QsiJ5eXmSvb29tHXrVp3jEydOlLp27ar3PV26dJEmTpyoc2zr1q2Sg4ODlJ+fr/c9s2fPlgCwsLCwsLCw2EC5fPmyUeIQq8rTdPv2bahUKvj6+uoc9/X1LTEBY1pamt7XFxQU4Pbt2/D39y/2nhkzZiAqKkrzOCMjA0FBQUhOTjZOpGol5Ai9KrWwAbxuXnfVwOvmdVcFck+Rl5eXUc5nVUGTTKFQ6DyWJKnYsce9Xt9xmZwJuyilUlmlftlknp6evO4qhNddtfC6q5aqet12dsYZwm1VA8Fr1aoFe3v7Yq1K6enpxVqTZH5+fnpf7+DggJo1a5qsrkRERGRbrCpocnJyQlhYGGJjY3WOx8bGolOnTnrfEx4eXuz1MTExaNu2LRwdHU1WVyIiIrItVhU0AUBUVBS+/PJLrF27FhcuXMDkyZORnJyMsWPHAhDjkYYPH655/dixY3H16lVERUXhwoULWLt2LdasWYMpU6YY/JnOzs6YPXu23i47W8br5nVXBbxuXndVwOs2znVbXcoBQCS3XLhwIVJTUxESEoLFixeja9euAICRI0fiypUr2Lt3r+b1cXFxmDx5Ms6dO4eAgABMmzZNE2QRERERGcIqgyYiIiIic7O67jkiIiIiS2DQRERERGQABk1EREREBmDQRERERGQABk0GWLFiBYKDg+Hi4oKwsDDs37/f0lUyqTlz5kChUOgUPz8/S1fL6Pbt24f+/fsjICAACoUCP/74o87zkiRhzpw5CAgIgKurK7p3745z585ZprJG9LjrHjlyZLH737FjR8tU1kiio6PRrl07eHh4wMfHBwMHDsTFixd1XmOL99uQ67bF+71y5Uq0atVKk/06PDwcv/76q+Z5W7zXwOOv2xbvtT7R0dFQKBSIjIzUHDPWPWfQ9BibNm1CZGQkZs6cifj4eHTp0gV9+/ZFcnKypatmUi1atEBqaqqmnDlzxtJVMrqcnByEhoZi+fLlep9fuHAhFi1ahOXLl+PYsWPw8/NDr169kJ2dbeaaGtfjrhsA+vTpo3P/d+zYYcYaGl9cXBzGjRuHw4cPIzY2FgUFBYiIiEBOTo7mNbZ4vw25bsD27nedOnUwf/58HD9+HMePH8fTTz+NAQMGaL4kbfFeA4+/bsD27nVRx44dw+rVq9GqVSud40a750ZZ9teGtW/fXho7dqzOsaZNm0rTp0+3UI1Mb/bs2VJoaKilq2FWAKRt27ZpHqvVasnPz0+aP3++5tjDhw8lpVIprVq1ygI1NI2i1y1JkjRixAhpwIABFqmPuaSnp0sApLi4OEmSqs79LnrdklQ17rckSVKNGjWkL7/8ssrca5l83ZJk+/c6OztbatSokRQbGyt169ZNmjRpkiRJxv33zZamUuTn5+PEiROIiIjQOR4REYGDBw9aqFbmcenSJQQEBCA4OBgvvvgiEhMTLV0ls0pKSkJaWprOvXd2dka3bt1s/t4DwN69e+Hj44PGjRvj9ddfR3p6uqWrZFSZmZkAoFn5vKrc76LXLbPl+61SqbBx40bk5OQgPDy8ytzrotcts+V7PW7cODz77LPo2bOnznFj3nMHo9TURt2+fRsqlarYYsC+vr7FFgG2JR06dMDXX3+Nxo0b4+bNm5g3bx46deqEc+fOVZlFjuX7q+/eX7161RJVMpu+ffti8ODBCAoKQlJSEt599108/fTTOHHihE0swSBJEqKiotC5c2eEhIQAqBr3W991A7Z7v8+cOYPw8HA8fPgQ7u7u2LZtG5o3b675krTVe13SdQO2e68BYOPGjTh58iSOHTtW7Dlj/vtm0GQAhUKh81iSpGLHbEnfvn01+y1btkR4eDgaNGiAr776ClFRURasmflVtXsPAEOGDNHsh4SEoG3btggKCsIvv/yCQYMGWbBmxjF+/HicPn0aBw4cKPacLd/vkq7bVu93kyZNkJCQgIyMDGzZsgUjRoxAXFyc5nlbvdclXXfz5s1t9l6npKRg0qRJiImJgYuLS4mvM8Y9Z/dcKWrVqgV7e/tirUrp6enFIlZb5ubmhpYtW+LSpUuWrorZyLMFq/q9BwB/f38EBQXZxP2fMGECfvrpJ+zZswd16tTRHLf1+13SdetjK/fbyckJDRs2RNu2bREdHY3Q0FAsWbLE5u91Sdetj63c6xMnTiA9PR1hYWFwcHCAg4MD4uLisHTpUjg4OGjuqzHuOYOmUjg5OSEsLAyxsbE6x2NjY9GpUycL1cr88vLycOHCBfj7+1u6KmYTHBwMPz8/nXufn5+PuLi4KnXvAeDOnTtISUmx6vsvSRLGjx+PrVu3Yvfu3QgODtZ53lbv9+OuWx9buN/6SJKEvLw8m73XJZGvWx9budc9evTAmTNnkJCQoClt27bFyy+/jISEBNSvX99497zCw9Vt3MaNGyVHR0dpzZo10vnz56XIyEjJzc1NunLliqWrZjJvvfWWtHfvXikxMVE6fPiw1K9fP8nDw8Pmrjk7O1uKj4+X4uPjJQDSokWLpPj4eOnq1auSJEnS/PnzJaVSKW3dulU6c+aMNHToUMnf31/KysqycM0rprTrzs7Olt566y3p4MGDUlJSkrRnzx4pPDxcql27tlVf9xtvvCEplUpp7969UmpqqqY8ePBA8xpbvN+Pu25bvd8zZsyQ9u3bJyUlJUmnT5+W3n77bcnOzk6KiYmRJMk277UklX7dtnqvS6I9e06SjHfPGTQZ4LPPPpOCgoIkJycnqU2bNjrTdW3RkCFDJH9/f8nR0VEKCAiQBg0aJJ07d87S1TK6PXv2SACKlREjRkiSJKapzp49W/Lz85OcnZ2lrl27SmfOnLFspY2gtOt+8OCBFBERIXl7e0uOjo5SYGCgNGLECCk5OdnS1a4QfdcLQFq3bp3mNbZ4vx933bZ6v1977TXN/9ne3t5Sjx49NAGTJNnmvZak0q/bVu91SYoGTca65wpJkqRytogRERERVRkc00RERERkAAZNRERERAZg0ERERERkAAZNRERERAZg0ERERERkAAZNRERERAZg0ERERERkAAZNRERERAZg0ERERERkAAZNRFTpde/eHZGRkZauRom6d+8OhUIBhUKBhIQEg94zcuRIzXt+/PFHk9aPiIyDQRMRWZQcOJRURo4cia1bt+L999+3SP0iIyMxcODAx77u9ddfR2pqKkJCQgw675IlS5CamlrB2hGROTlYugJEVLVpBw6bNm3CrFmzcPHiRc0xV1dXKJVKS1QNAHDs2DE8++yzj31dtWrV4OfnZ/B5lUqlRa+LiMqOLU1EZFF+fn6aolQqoVAoih0r2j3XvXt3TJgwAZGRkahRowZ8fX2xevVq5OTk4NVXX4WHhwcaNGiAX3/9VfMeSZKwcOFC1K9fH66urggNDcXmzZtLrNejR4/g5OSEgwcPYubMmVAoFOjQoUOZrm3z5s1o2bIlXF1dUbNmTfTs2RM5OTll/hkRUeXAoImIrNJXX32FWrVq4ejRo5gwYQLeeOMNDB48GJ06dcLJkyfRu3dvDBs2DA8ePAAAvPPOO1i3bh1WrlyJc+fOYfLkyXjllVcQFxen9/z29vY4cOAAACAhIQGpqanYuXOnwfVLTU3F0KFD8dprr+HChQvYu3cvBg0aBEmSKn7xRGQR7J4jIqsUGhqKd955BwAwY8YMzJ8/H7Vq1cLrr78OAJg1axZWrlyJ06dPo2XLlli0aBF2796N8PBwAED9+vVx4MABfP755+jWrVux89vZ2eHGjRuoWbMmQkNDy1y/1NRUFBQUYNCgQQgKCgIAtGzZsryXS0SVAIMmIrJKrVq10uzb29ujZs2aOkGJr68vACA9PR3nz5/Hw4cP0atXL51z5Ofno3Xr1iV+Rnx8fLkCJkAEdT169EDLli3Ru3dvRERE4N///jdq1KhRrvMRkeUxaCIiq+To6KjzWKFQ6BxTKBQAALVaDbVaDQD45ZdfULt2bZ33OTs7l/gZCQkJ5Q6a7O3tERsbi4MHDyImJgbLli3DzJkzceTIEQQHB5frnERkWRzTREQ2r3nz5nB2dkZycjIaNmyoU+rWrVvi+86cOaPTolVWCoUCTz75JObOnYv4+Hg4OTlh27Zt5T4fEVkWW5qIyOZ5eHhgypQpmDx5MtRqNTp37oysrCwcPHgQ7u7uGDFihN73qdVqnD59Gjdu3ICbm1uZUgQcOXIEu3btQkREBHx8fHDkyBHcunULzZo1M9ZlEZGZsaWJiKqE999/H7NmzUJ0dDSaNWuG3r174+effy61q2zevHnYtGkTateujffee69Mn+fp6Yl9+/bhmWeeQePGjfHOO+/gk08+Qd++fSt6KURkIQqJ81+JiCqke/fueOKJJ/Dpp5+W+b0KhQLbtm0zKOs4EVkWW5qIiIxgxYoVcHd3x5kzZwx6/dixY+Hu7m7iWhGRMbGliYiogq5fv47c3FwAQGBgIJycnB77nvT0dGRlZQEA/P394ebmZtI6ElHFMWgiIiIiMgC754iIiIgMwKCJiIiIyAAMmoiIiIgMwKCJiIiIyAAMmoiIiIgMwKCJiIiIyAAMmoiIiIgMwKCJiIiIyAAMmoiIiIgM8P+r74tVFcu1fwAAAABJRU5ErkJggg==", "text/plain": [ "
" ] @@ -662,7 +630,7 @@ "outputs": [ { "data": { - "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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkkAAAHgCAYAAACxe/mPAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAqnJJREFUeJzs3Xd4U9X/wPF3unfooAtoKUM2ZW9kyVIQXKAowwkKKCIOVJYiOL7i+DkAFRBEQEWGiECRLUM2yB6FQmkplO7d5vz+uCRtaAottE2Az+t5znOTc2/uPTdpyIczdUophRBCCCGEMGNn7QIIIYQQQtgiCZKEEEIIISyQIEkIIYQQwgIJkoQQQgghLJAgSQghhBDCAgmShBBCCCEskCBJCCGEEMICCZKEEEIIISyQIEkIIYQQwgIJksRtY86cOeh0OlNycHAgKCiIxx9/nBMnTli7eLel9PR0Jk6cyIYNG6xyfZ1Ox4gRI6xy7fIyZMgQqlatau1ilCrjd/HMmTO3fK6OHTvSsWPHWz6PEGXBwdoFEKKkZs+eTe3atcnMzOSff/7hgw8+YP369Rw9ehRvb29rF++2kp6ezqRJkwDkh6qMjBs3jldeecXaxRBC3AQJksRtp379+jRr1gzQftjz8vKYMGECS5cu5emnn7Zy6YQwV7169TK/Rk5Ojql2VQhReqS5Tdz2jAHTxYsXzfJ37drFgw8+iI+PDy4uLjRu3JhffvnF7Jj09HTGjBlDWFgYLi4u+Pj40KxZMxYsWGA6ZsiQIXh4eHDo0CG6dOmCu7s7FStWZMSIEaSnp5udLzMzk7FjxxIWFoaTkxOVKlVi+PDhJCYmmh1XtWpVevXqxapVq2jSpAmurq7Url2bWbNmlbh8xb3Xa505c4aKFSsCMGnSJFMz5pAhQ0zHbNmyhS5duuDp6Ymbmxtt2rThzz//vO55jbKysnjvvfeoU6cOLi4u+Pr60qlTJ7Zu3Vro2Hnz5lGnTh3c3NwIDw9nxYoVZvtPnjzJ008/Tc2aNXFzc6NSpUr07t2bgwcPmh23YcMGdDodCxYs4J133iE4OBgvLy/uu+8+jh07ZnasUoopU6YQGhqKi4sLzZo1IyIiwmLzT3JysulzMH6uo0aNIi0t7Ybvg6XmNmMz443u2xLjPc6bN4/XXnuNSpUq4ezszMmTJwGYNWsW4eHhpr+Xhx56iCNHjpidY9euXTz++ONUrVoVV1dXqlatyhNPPMHZs2cLXW/79u20bdsWFxcXgoODGTt2LDk5OTcsJ8Dp06d5/PHHCQ4OxtnZmYCAALp06cK+ffuu+7orV67w0ksvUalSJZycnKhWrRrvvPMOWVlZZscZ38cZM2Zwzz334OzsTN26dVm4cGGhc8bGxjJ06FAqV66Mk5MTYWFhTJo0idzc3GLdi7hLKSFuE7Nnz1aA2rlzp1n+V199pQC1ePFiU966deuUk5OTat++vVq0aJFatWqVGjJkiALU7NmzTccNHTpUubm5qWnTpqn169erFStWqA8//FD93//9n+mYwYMHKycnJxUSEqI++OADtWbNGjVx4kTl4OCgevXqZTrOYDCo7t27KwcHBzVu3Di1Zs0a9b///U+5u7urxo0bq8zMTNOxoaGhqnLlyqpu3bpq7ty5avXq1eqxxx5TgNq4cWOJylfce71WZmamWrVqlQLUs88+q7Zt26a2bdumTp48qZRSasOGDcrR0VE1bdpULVq0SC1dulR169ZN6XQ6tXDhwut+Vjk5OapTp07KwcFBjRkzRq1cuVItX75cvf3222rBggWm4wBVtWpV1aJFC/XLL7+olStXqo4dOyoHBwd16tQp03EbN25Ur732mvrtt9/Uxo0b1ZIlS1Tfvn2Vq6urOnr0qOm49evXm8755JNPqj///FMtWLBAhYSEqJo1a6rc3FzTsWPHjlWAeuGFF9SqVavUd999p0JCQlRQUJDq0KGD6bi0tDTVqFEj5efnp6ZNm6bWrl2rvvjiC6XX61Xnzp2VwWC47nsxePBgFRoaapZX3Pu2xHiPlSpVUo8++qhavny5WrFihYqPj1dTpkxRgHriiSfUn3/+qebOnauqVaum9Hq9On78uOkcv/76qxo/frxasmSJ2rhxo1q4cKHq0KGDqlixorp06ZLpuEOHDik3NzdVt25dtWDBArVs2TLVvXt3FRISogAVGRl53bLWqlVL1ahRQ82bN09t3LhRLV68WL322mtq/fr1pmM6dOhg9n5nZGSohg0bKnd3d/W///1PrVmzRo0bN045ODio+++/v9D7WKVKFVP5li9frnr06KEA9euvv5qOi4mJUVWqVFGhoaFqxowZau3ater9999Xzs7OasiQIde9B3F3kyBJ3DaMQdL27dtVTk6OSklJUatWrVKB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c+fONe0vqKjyVa9encqVKwPaZ/jff/9RvXp1i5+hBEmiKFKTJG573t7ejB07ljfeeIOff/6Zp556ihkzZtCzZ0+6d+/OkCFDqFSpEleuXOHIkSPs2bOHX3/9FdB+LHv16kXDhg3x9vbmyJEjzJs3j9atW+Pm5ma6hpOTE59++impqak0b96crVu3MnnyZHr27Em7du0A6Nq1K927d+fNN98kOTmZtm3bcuDAASZMmEDjxo0ZOHBgie+tOOUr7r1a4unpSWhoKMuWLaNLly74+Pjg5+dH1apVmTp1Kl27dqVTp06MGTMGJycnvvnmG/777z8WLFhQqCajoCeeeILZs2czbNgwjh07RqdOnTAYDOzYsYM6derw+OOPl+h96NWrF3PmzKF27do0bNiQ3bt388knn5h+BEvKx8eH0aNHM3XqVLy9vXnooYc4f/48kyZNIigoyKz2a9SoUSxevJh7772XV199lYYNG2IwGIiKimLNmjW89tprtGzZ8qbKUZoqVKjAuHHjePvttxk0aBBPPPEE8fHxTJo0CRcXFyZMmACAl5cX9957L5988onps964cSM//PBDoVq5d999l+XLl9O5c2fGjx+Pm5sbX3/9dbGmPjhw4AAjRozgscceo2bNmjg5ObFu3ToOHDhgVoN1rUGDBvH1118zePBgzpw5Q4MGDdiyZQtTpkzh/vvv57777jM73s/Pj86dOzNu3Djc3d355ptvOHr0qNk0AO+99x4RERG0adOGl19+mVq1apGZmcmZM2dYuXIl06dPv+m/JXGHs2q3cSFKoKgpAJTSRoZdO8x7//79ql+/fsrf3185OjqqwMBA1blzZzV9+nTT69566y3VrFkz5e3trZydnVW1atXUq6++qi5fvmw6ZvDgwcrd3V0dOHBAdezYUbm6uiofHx/14osvqtTU1ELlePPNN1VoaKhydHRUQUFB6sUXX1QJCQlmx4WGhqoHHnig0H1cO9KnOOUr7r0WZe3atapx48bK2dlZAWrw4MGmfZs3b1adO3dW7u7uytXVVbVq1Ur98ccfNzyn8b0YP368qlmzpnJyclK+vr6qc+fOauvWraZjADV8+PBCrw0NDTUrR0JCgnr22WeVv7+/cnNzU+3atVObN28u9H4ZR34VHP6tlFKRkZGFpkQwGAxq8uTJqnLlysrJyUk1bNhQrVixQoWHh6uHHnrI7PWpqanq3XffVbVq1VJOTk5Kr9erBg0aqFdffdVsZJUlRY1uK859W1LUPRp9//33qmHDhqZy9unTp9DorfPnz6tHHnlEeXt7K09PT9WjRw/133//Wbz+P//8o1q1aqWcnZ1VYGCgev3119XMmTNvOLrt4sWLasiQIap27drK3d1deXh4qIYNG6rPPvvMbCqGaz9DpZSKj49Xw4YNU0FBQcrBwUGFhoaqsWPHmk2joVT++/jNN9+o6tWrK0dHR1W7dm01f/78QuW5dOmSevnll1VYWJhydHRUPj4+qmnTpuqdd94p9D0WwkinlFJWi9CEuA0MGTKE3377jdTUVGsXRZSxyMhIateuzYQJE3j77betXRxxAzqdjuHDh/PVV19ZuyjiDiXNbUKIu9L+/ftZsGABbdq0wcvLi2PHjvHxxx/j5eXFs88+a+3iCSFsgARJQoi7kru7O7t27eKHH34gMTERvV5Px44d+eCDDyxODSCEuPtIc5sQQgghhAUyBYAQQgghhAUSJAkhhBBCWCBBkhBCCCGEBRIkCSGEEEJYIEGSEEIIIYQFEiQJIYQQQlggQZIQQgghhAUSJAkhhBBCWCBBkhBCCCGEBRIkCSGEEEJYIEGSEEIIIYQFEiQJIYQQQlggQZIQQgghhAUSJAkhhBBCWCBBkhBCCCGEBRIkCSGEEEJYIEGSEEIIIYQFEiQJIYQQQlggQZIQQgghhAUSJAkhhBBCWCBBkhBCCCGEBRIkCSGEEEJYIEGSEEIIIYQFEiQJIYQQQlggQZIQQgghhAUSJAkhhBBCWCBBkhBCCCGEBRIkCSGEEEJYYNUgaerUqTRv3hxPT0/8/f3p27cvx44dMztGKcXEiRMJDg7G1dWVjh07cujQoeued86cOeh0ukIpMzOzLG9HCCGEEHcQqwZJGzduZPjw4Wzfvp2IiAhyc3Pp1q0baWlppmM+/vhjpk2bxldffcXOnTsJDAyka9eupKSkXPfcXl5exMTEmCUXF5eyviUhhBBC3CF0Sill7UIYXbp0CX9/fzZu3Mi9996LUorg4GBGjRrFm2++CUBWVhYBAQF89NFHDB061OJ55syZw6hRo0hMTCzWdbOyssjKyjI9NxgMXLlyBV9fX3Q63S3flxBCCCHKnlKKlJQUgoODsbO79Xogh1IoU6lJSkoCwMfHB4DIyEhiY2Pp1q2b6RhnZ2c6dOjA1q1biwySAFJTUwkNDSUvL49GjRrx/vvv07hxY4vHTp06lUmTJpXinQghhBDCWs6dO0flypVv+Tw2U5OklKJPnz4kJCSwefNmALZu3Urbtm2Jjo4mODjYdOwLL7zA2bNnWb16tcVzbd++nZMnT9KgQQOSk5P54osvWLlyJfv376dmzZqFjr+2JikpKYmQkBDOnTuHl5dXKd+pKK4zZ84QHh4OwP79+6latap1CySEEMKmJScnU6VKFRITE9Hr9bd8PpupSRoxYgQHDhxgy5YthfZd2+SllLpuM1irVq1o1aqV6Xnbtm1p0qQJ//d//8eXX35Z6HhnZ2ecnZ0L5Xt5eUmQZEWhoaG0b9/e9Fg+CyGEEMVRWl1lbCJIGjlyJMuXL2fTpk1m1WOBgYEAxMbGEhQUZMqPi4sjICCg2Oe3s7OjefPmnDhxovQKLcqcXq9n06ZN1i6GEEKIu5RVR7cppRgxYgS///4769atIywszGx/WFgYgYGBREREmPKys7PZuHEjbdq0KdF19u3bZxZoCSGEEEJcj1VrkoYPH87PP//MsmXL8PT0JDY2FtBqEFxdXdHpdIwaNYopU6ZQs2ZNatasyZQpU3Bzc2PAgAGm8wwaNIhKlSoxdepUACZNmkSrVq2oWbMmycnJfPnll+zbt4+vv/7aKvcpbk5qaiovvPACADNnzsTDw8PKJRJCCHE3sWqQ9O233wLQsWNHs/zZs2czZMgQAN544w0yMjJ46aWXSEhIoGXLlqxZswZPT0/T8VFRUWZD/RITE3nhhReIjY1Fr9fTuHFjNm3aRIsWLcr8nkTpuXTpEgsWLADggw8+kCBJCCFEubKZ0W22JDk5Gb1eT1JSknQWtqLIyEiqVasGwOnTpws1xwohhBAFlfbvt6zdJoQQQghhgQRJQgghhBAWSJAkhBBCCGGBBElCCCGEEBZIkCSEEEIIYYFNzLgthCU+Pj6mRYmNix4LIYQQ5UWCJGGz9Ho9e/bssXYxhBBC3KWkuU0IIYQQwgIJkoTNysjIYMSIEYwYMYKMjAxrF0cIIcRdRmbctkBm3LYNMuO2EEKIkpAZt4UQQgghyoEESUIIIYQQFkiQJIQQQghhgQRJQgghhBAWSJAkhBBCCGGBBElCCCGEEBbIjNvCZun1emrXrm16LIQQQpQnCZKEzfLx8eHIkSPWLoYQQoi7lDS3CSGEEEJYIDVJwmZlZGTw4YcfAvDWW2/h6upq5RIJIYS4m8iyJBbIsiS2QZYlEUIIURKyLIkQQgghRDmQIEkIIYQQwgIJkoQQQgghLJAgSQghhBDCAgmShBBCCCEskCBJCCGEEMICmSdJ2Cy9Xk9oaKjpsRBCCFGeJEgSNsvHx4czZ85YuxhCCCHuUtLcJoQQQghhgdQkCZuVnZ3NjBkzABg6dChOTk5WLpEQQoi7iQRJwmZFR0fz8ssvA9CrVy9ZlkQIIUS5kuY2IYQQQggLJEgSQgghhLBAgiQhhBBCCAskSBJCCCGEsECCJCGEEEIIC4o1us3Hx6dEJ9XpdOzZs8c0W7IQQgghxO2mWEFSYmIin3/+ebGWhlBK8dJLL5GXl3fDY6dOncrvv//O0aNHcXV1pU2bNnz00UfUqlXL7HyTJk1i5syZJCQk0LJlS77++mvq1at33XMvXryYcePGcerUKapXr84HH3zAQw89dOObFTZDr9cTEBBgeiyEEEKUJ51SSt3oIDs7O2JjY/H39y/WST09Pdm/fz/VqlW77nE9evTg8ccfp3nz5uTm5vLOO+9w8OBBDh8+jLu7OwAfffQRH3zwAXPmzOGee+5h8uTJbNq0iWPHjuHp6WnxvNu2baN9+/a8//77PPTQQyxZsoTx48ezZcsWWrZsecPyJycno9frSUpKwsvLq1j3LIQQQgjrKu3f72IFSeXl0qVL+Pv7s3HjRu69916UUgQHBzNq1CjefPNNALKysggICOCjjz5i6NChFs/Tv39/kpOT+euvv0x5PXr0wNvbmwULFtywHMY3uekjfXF0dMJeZ4edToc9dthdfWyns9fydHbY2Wn59jrd1a0dOp0OezsdFDzGzg474znQXX0d2Ons0Nnp0KHD3k57rZ1Oh04HOjt77bzoruaDTmdn4bGOq0dp+aDl2WndzuzQ8nQ67bqYnufnU2BrVzCPq2VRAAaUMqCUQhkMYMgDQx4GQy5KXX2sDKirxxmUAQwGFAqdvb32vtnbodPZo7N3xMXJA2dXT5zdvHB29cbJXY+dq5v2fmiXx9lZUbFiCf6QhBBC3JVSUlIIDw8vtSDJpmbcTkpKAvL7QEVGRhIbG0u3bt1Mxzg7O9OhQwe2bt1aZJC0bds2Xn31VbO87t278/nnn1s8Pisri6ysLNPz5ORkAHYvXnqztyKEEEKI21yJR7f9+OOP/Pnnn6bnb7zxBhUqVKBNmzacPXv2pguilGL06NG0a9eO+vXrAxAbGwtg6pdiFBAQYNpnSWxsbIleM3XqVPR6vSlVqVLlpu9DCCGEEHeGEtckTZkyhW+//RbQamy++uorPv/8c1asWMGrr77K77//flMFGTFiBAcOHGDLli2F9hmbfYyUUoXybuU1Y8eOZfTo0abnycnJVKlShf379xfZ70mUrjyVR2ZOBunJ8VyJO0P85bMcjzzCe5MWAWD3ih0Gd4N2cJYHHHiMSWF9GPhWQyuWWgghboFSkJsLGRnkJGeQeiWb9CvZpCXlkJaYQ3xqKpfTk7mSmUJiVgrJuWkkq3RSDemkkUG6fTqZdhlk2mWQ45BBtmMmOY5p5DllkueQjnJKBzsr9ajJdYI8J21rcNQe5zlBniMYHK4+dtD2Ga7mGRyu5hVM9lpSBbbGZNCBsrv63E5LOdnw72eldhslDpLOnTtHjRo1AFi6dCmPPvooL7zwAm3btqVjx443VYiRI0eyfPlyNm3aROXKlU35gYGBgFYzFBQUZMqPi4srVFNUUGBgYKFao+u9xtnZGWdn50L5VatWlY7bVhQZGWkKkva8sJO/d83m00O/cMEzDtrOZkLUMerO/4JH321m5ZIKIe5oBgOkp0NKipZSU7WUlgapqeQlp5F4KYcrl/JIuKJISNRxJcmexGQ7EtMcSUp35HIOXHTIIt4xg0TndJJd0kl3SyPDLZUstxSUWwK4xoNbvLZ1TQDPPCit/6dnu0O2R/42xx2y3bDLccE+xwX7HGccchxxyHHGMdcRxxwnHPMccMx1xCnPAac8R5wM9jjnOeKk7HA2OOKs7HFR9jhjrz3W2eOCPc52OhztwcFe4eigcHBQONhTYKslewdwsAd7Bx32V/PtXXSm5/YOOrNk52BXaGtnrzN7nJaTQX1rBkkeHh7Ex8cTEhLCmjVrTH1/XFxcyMjIKNG5lFKMHDmSJUuWsGHDhkKrvIeFhREYGEhERASNGzcGIDs7m40bN/LRRx8Ved7WrVsTERFh1i9pzZo1tGnTpkTlE7bDy9Wb0YP+j1fVl6w+soI+Pz1BdshW+u//iA1fv0374Y2tXUQhhK0xGLSgJjERkpK0ZHycnGyeruap5BTSknK5mOBEXIorcWnuXMr05DK+XKIil6jIZfyIx5d4grns5EySVxp4RoPnhfzkFwNVY8DjInjEgnPKTd2CLtcJxywvnLI8cc7xwCXXHbc8d9wN7rgrdzx1bnjYu+Fl747e0QO9kzsVXDyo4OqBt5snvp5e6D08cPdywtndAWd3B1yuPnZwcwJHR3C6urW3L9W33xqSk5NhVOmdr8RBUteuXXnuuedo3Lgxx48f54EHHgDg0KFDVK1atUTnGj58OD///DPLli3D09PTVPuj1+txdXVFp9MxatQopkyZQs2aNalZsyZTpkzBzc2NAQMGmM4zaNAgKlWqxNSpUwF45ZVXuPfee/noo4/o06cPy5YtY+3atRab8sTtRafT0aNub/58ajHdFvbCUP83ui6pzG491HtKAiUh7kgZGXD5MsTHw5Ur+VtjSkgwT4mJ+cHQ1QHcOThwkQAuEEwMQcQQRCyBxBJydaulOPzJwE27rs6gBTh+Z6HCWahwBvTbQB8F+nPgdQ5cE4t9Gw7KCT1+VLD3xdvJl4puFQnwCiCgQiBBPhUJ9vbD38MXXzdffFx98HbxxtXRtbTfTVECJQ6Svv76a959913OnTvH4sWL8fX1BWD37t088cQTJTqXsW/Ttc10s2fPZsiQIYDWMTwjI4OXXnrJNJnkmjVrzPoKRUVFmYa1A7Rp04aFCxfy7rvvMm7cOKpXr86iRYuKNUeSuD3cV7c7M7tP5/m1z5HV/nPafR7Ifi8dIQ82snbRhBA3kp0NcXEQG6uluDgtXbqU//jy5fyUnn7d02XhxHkqE0UI52jAeSoTTSXOU9n0OA5/lKWxSvZZ4H0afE6CzzbtsfdpdD6noUIkyiGr8Guu4enkRSXPSlTyCibYMz8FegSaUoB7AF7OXjfsTytsS7HnSZo5cyYPPvigqZ/QnUwmk7QNkZGRpglJT58+Xag5FmDsH+P4cM9kMNhTeeG37J/dHp82tcu7qEII0Jq34uLg/HktRUfDhQvm29hYrfanBNJxJdK+Jmc8G3DGpTZn7KtzRoVwNjuIqHQ/Lqbf6N9pBV7nsfM/hle1ozgFH0P5HCPT7QSp9lEonaHIV9rp7KjiVYXQCqGE6kOpWqEqIfoQqnhVoYq+CpW9KuPlLL8TtqK0f7+LXZO0YMECXn75ZcLDw+nTpw99+/albt26t1wAIYri4eFhmjPLw8PD4jFTer3HqStn+PXMT5x/ZDTPPPMhSw/fA3aydrMQpS4jA86eLZyiouDcOS0Iyskp3rkcHCAwEAICICCAeM+qnHCow4m8apzMCOZ0ckVOx3txOsaV2EsOkAckFn06V1eoEmLAt0YkbiGHMfgdJt39MPF2h4jOOkpGXhqGIk7h4eRBTZ+a1PCpQXXv6lTzrmZKlb0q42jvWOK3StwZSjTjdkJCAn/++SfLly9n9erV+Pn50adPHx588EHuvfdesyav25nUJN1esvOyafPFfexO2Qxn7uWfiq/Q5uOHrV0sIW4/BoMW6Jw6paXTpyEyUktnzmi1QDei00FQEFSuDJUqaSk4GCpVIss3mJO5VTmaEMCxaHeOHrPj2DE4cULrSnQ9FSpAWBhUraolvyrx5PrtJ8XtIDF5BzmedIBDlw6RnmO5ac7BzoEaPjWo5VuL2n61qeVbi5q+NanpUxN/d39pBrtD2MyyJNnZ2axbt47ly5fzxx9/kJ6ezgMPPMCDDz5Iz549TWuv3Y4kSLr9RCVFUe3TWuTZZxL220ecWD0Y++Cip4kQ4q6Vl6fV+hw/DidPahGKcRsZqfUXuh5PTy1KCQmB0FAthYRoqXJlCAoiWzly9CgcOpSfDh/WLmMoumWLypWhRg2oWROqV4dq1aBaNYWjXxSn0vewL3Yfe2P3si92H+eSz1k8h7O9M7X9alO3Yl3qVaxH3Yp1qVuxLtW8q0mN0F3AZoKka+3atYvly5ezbNkyHn30UcaNG1cap7UKCZJsQ15eHtu3bwegVatW2N9geOobKybwye73IDGEL7a9xcvbXyyPYgphm1JS4OhROHIEjh3LTydOQNZ1OiM7OGhBUH6Uoj0PC9OStzcUqHW5dAn27IEDB2D/fm175Ig2R6Ilej3UqgW1a2vbWrXgnnu0y7m6KqJTovk3+l92X9jN7pjd7Lqwi/iMeIvnCqsQRsOAhjQMaEgD/wY0CGhADZ8aONjZ1IpbohzZbJBUUE5ODo6Ot2/ELkGSbShOx+2C0nPSqTy5Jgl2F3BZ/xbnRnTH79GO5VBSIawoKalwlc2RI1rH6aI4OWlRSc2a+VU3NWpoqUqVIufLuXgRdu7UgqLdu7VtUZfR66F+fahXD+rW1bb16mndkIwxVkpWCjsv7GTH+R38e+FfdpzfQUxqTKFzOdg5UN+/Po0DG9MosBGNAxvTMKAhehd9Sd8tcYezWsdtI6UUv/32G+vXrycuLg5DgbpTnU7H4sWLb+sASdy+3Bzd+PqRzxiwpD+Z7b7glVGVmN+rFbi4WLtoQty6nBytJujAgfx08OD1g6GAAKhTx7zaplYtrYnsBjWzGRmwaxf8+y/s2KFtLS3PqdNpMVajRhAeDg0baqlKFbMKJ5RSRCZGMv/gVrae28q289s4cPEABmXe/mavs6e+f32aBzenaXBTmgY1pUFAA1wc5Hssyl+Jg6RXXnmFmTNn0qlTJwICAqSzm7Apjzd4jA/XfsGBlK383GoLr450pNl3Q61dLCFKJiVFa7vau1dLe/ZoNURFjRyrVMm82qZOHS15exf7kjEx8M8/sHWrtt2zp3CTmU6nnbZZM2jSBJo21QIjS0tcGpSBgxf/Y/PZzWyK2sTms5st1hKF6ENoVbkVLYJb0LJyS5oENcHN0a3Y5RaiLJU4SPrpp5/4/fffuf/++8uiPELcEp1Ox5wnvqLJjKbQYBGDZnfiv6PHsat9j7WLJoRl6elaILRrl9aWtWuX1qnaUk8IT8/8qprw8PzAqEKFEl/27FnYuBE2bdK2J08WPiYwEFq3hhYtoGVLLSgqqgVDC4oOsv7Mejac2cCms5tIyDQfsuZo50jT4Ka0rtyaNlXa0Lpyayp5VSpx2YUoLyUOkvR6vamfiBC2qHFQY56q8xw/Hf2OIz1m8NOQLAZtlyBJ2ACDQQuAtm/X0rZt8N9/lod8VaoEjRvnp0aNtA7UN1l7f+ECrFuXn65tOtPptNirTRto21bbXu9ySilOJZxi7em1rD29lg1nNhTqYO3u6E6bKm1oH9Ke9qHtaVmppSyzIW4rJQ6SJk6cyKRJk5g1axaurvLHLmzTtF4f8NvhRWQG7eWt7f148sAh7BvWs3axxN0mK0urHdq8GbZs0YIiSxMCBQZC8+b5qUkT8Pe/pUunpMCGDbBmDaxdqw10K8jeXms2u/de6NBBC4xuVCGVkJHA2tNriTgdQcTpCM4knjHb7+7oTruQdnSq2olOYZ1oEtRERpqJ21qJ/3ofe+wxFixYgL+/P1WrVi3USXvPnj2lVjghblZF94q82X4sk/4ZS0z7Ofw21IH+2yRIEmUsI0Pr1LNhg9aG9e+/hYfbu7ho0Unr1tCqldaOVenWm5wMBti3D1at0gKjrVvNuzDpdFrs1bmzltq1gyImss8/pzKwN2Yvf538i79O/sX289vNOlo72jnSukprulbrSpewLjQLbiZzEYk7SomDpCFDhrB7926eeuop6bgtypSHh4dpIeOiliW5ntHtX+KjzR+S6XeMN5Og3/4D6MIblnYxxd0sJ0cb+vX337B+vVZTdO1kjBUrQvv2WmrXTutLVEojgJOSICICVq6Ev/4qPCF29erQrRt07QodOxavH3dmbiZ/n/6bpUeX8sfxP7iYdtFsfx2/OnSr3o2u1brSoWoHPJxK/t0U4nZR4iDpzz//ZPXq1bRr164syiOEScWKFUlOTr7p13s5ezG85Ug+3TmZs+0XsuLFLHpvlSBJ3AKltHariAgtbdgAqanmxwQHQ6dOWlTSvr02U2Ip/mfy9GlYvlxLmzebj0Dz8IAuXaB7dy04ql69eOdMzU5l2dFlLDm6hFUnV5GWk5Z/TicPuoR1oWeNnvSo0YPQCqGldi9C2LoSB0lVqlSRCRbFbeOtjq/w5Y5p5ATv5vW/B9Jr7z50jRtZu1jidpKcrNUU/fWX1pZ17prlMPz88tuwOnXSJg0qxaBIKW3A27JlWvrvP/P9tWrBAw/A/fdrFVXOzsU7b54hj3WR65h3YB6Ljyw2W/Oskmcl+tbuS59afehQtQNO9k6ldj9C3E5KHCR9+umnvPHGG0yfPp2qVauWQZGE0OTl5REVFQVASEjIDZclscTPzY+nw19g5sHPOdZ+CX8Pj+e+rY1KuaTijqKUNmP1ihVaO9Y//5hX1zg7azVEXbtqKTwcSnlx77w87bK//66lgnGZvb3W2frBB6F37+LXFhmdunKK7/Z8x7wD87iQcsGUX9OnJv3q9eOh2g/RJKiJdKUQgptYlsTb25v09HRyc3Nxc3Mr1HH7ypUrpVpAa5BlSWxDSZclKcr55POETquGQZdDox++ZO/StloPViGMsrK0jtYrVmgpMtJ8f82a0LOnlu69F9xKf7LDvDxtzqJffoElS7QlQIw8PLRL9+mjbX18SnhuQx4rT6zkm13fsOrkKlO+t4s3j9d/nEHhg2hZqaUERuK2Z/VlST7//PNbvqgQ5amyV2X61xrMguPfs6/9araMPE+7fyRIuuslJmo1RcuWaU1pKSn5+5ydtaazBx7QopKSVtcUk8GgjUJbtAh++82843WFClpt0SOPaP2LbmZ1nfj0eGbunsn03dOJSooy5feo0YPnmzzPAzUfwNmhmO1zQtyFShwkDR48uCzKIUSZmtTtDRYem4W650/e/Lsn/+zcqc1HI+4uMTGwdKlWVbN+vXkzWlAQ9OqlpS5dwN29zIpx4AD89BMsWGC+9Jq3Nzz8MPTrp8VoNzsI7kT8CT7b/hlz9s0hIzcDAB9XH55t/CxDmw6luk/ZBH1C3GmKFSQlJyeXqNoqJSXFNHRbCFtQ07cmD4T1Y8WZhWxtt4Vdr56g2RYJku4KZ89qHXsWL9aqbQr2MKhbV2vD6ttXm7uolPsWFRQVBT//DPPnm3e+1uu1y/fvr8VmTjfZR1opxT/n/uF/W//H8mPLUWj32SiwEaNajqJfvX4y27UQJVSsIMnb25uYmBj8izkDbKVKldi3b58sXyJsyuTub7FixkKo9wvj13/Kyn//1RalEneeqCj49Vetg8+//5rva9VKq67p21fra1SG0tO1+GzOHG0pEGN85uSkVVg9+aQ2Ku1mmtKMlFL8eeJPpm6ZytZzW035ve7pxehWo+lYtaP0NRLiJhUrSFJK8f333xd7Qr+colaqFsKKwgPDaR9wP5svruSvVsc5/cYBqm2QIOmOER2tBUaLFmnrohnZ2Wmj0R55BB56CCpXLtNiKKVVWM2ercVoBbs6degATz0Fjz56U2vSmsk15PLroV+ZumUqB+MOAuBk78SQ8CG82vpVavvVvrULCCGKFySFhITw3XffFfukgYGBhUa9CWELJnUfQ+e5K6HRj0z9bBzf7dihLQshbk8JCVpVzfz52sSOxqoanU4bhdavnxYcBQSUeVEuX4a5c+H777UZBIzCwmDIEBg0SFsw9lbl5OUw78A8pmyewqmEU4A24eOLzV7k1VavEuQZdOsXEUIAxQySzpw5U8bFEKIwV1dXXK62Q5TWYsodq3akmns4p9nPj02z+fDtT/H9+5dSObcoJ1lZ8OefMG+eNjqt4DIgbdrA449rgVFwcJkXRSmtGW3mTK0vuLES3c1Ni8+eflqb4LE0ujpl5Wbx4/4fmbJ5CmeTzgLg6+rLKy1fYUSLEXi7FmPNESFEicjyzMJmBQYGkpGRUarn1Ol0jL9vNEOWDSanxQy+/GIwk7Zt0xYbFbZLKW2NtLlzYeFCrQbJqEEDGDBAC47KaYLbxET48Uf49ls4diw/v2lTeP55eOIJKK0p1rJys/hh7w98uOVDziVrs0oGuAfwepvXGdZsGO5OZTcKT4i7XYknk7wbyGSSd7bsvGwCpoaSmBeL5+KviQv4C5eIP6xdLGHJhQtar+c5c+DEifz8SpW0zj1PPqkFSeVk3z74+mutdc8Yv3t4aEV54QVo3Lj0rmUMjqZsnkJ0SjQAwZ7BvNn2TZ5v8ryMVBPCAqtPJinE7c7J3olX241gwsZ3SWn9Az/ObMJQqU2yHTk52qzXP/ygTfJoMGj5bm5aM9rgwdrisTexTM3NyM3VFpP94gttRmyj+vXhpZe0AKk0ZzzJys1i1t5ZTNkyhfPJ2iRKlTwrMbbdWJ5t8iwuDrcwFE4IUSJSk2SB1CTZhtJalsSSy+mXCf6kCjlkUnn2PM7WnIddxOpSO7+4CSdPar2eZ8+GuLj8/Hbt4NlntSFhxRxhWxoSE7XifPWVNtUSgIODFqeNGAFt25bqOrZk52UzZ98cJm+abGpWMwZHzzV5TmbGFqIYpCZJiFLg5+bHwIaDmXVgBudb/8byha70XbdOW8ldlJ/sbG1ZkJkzYe3a/PyAAK3G6JlntGXuy1FkJHz+uVaRlZam5fn6wtChWs1RpUqle72cvBzm7p/L+5veN3XIDvYMNgVHUnMkhPUUK0g6cOBAsU/YsGHDmy6MEOXp9fajmHVgBtRazns+C+j7wgvaehFlsHipuMbZszBjhhaJGGuNdDro0UPr3PPAAze/JsdN2rEDPv1Um5jb2MJXvz6MGqX1Cy+lAZYmuYZc5h+Yz3ub3uN0wmkAAj0CGdtuLC80fUGCIyFsQLGCpEaNGqHT6VBK3XDm1ry8vFIpmBBlrbZfbbpUuZ+/z61kb8stbPkrkHbjx8P//mftot2ZDAZYvRq++UYbwm9s6Q8K0prTnn223EanGSmldXv68EPYvDk/v1s3eO016Nq1dJvUAPIMeSz8byGTNk7ixBWtM7q/uz9vtX2LYc2GSYdsIWxIsYKkyMhI0+O9e/cyZswYXn/9dVpf7ei6bds2Pv30Uz7++OOyKaUQZeStjq/y97yV0Hg276yfx8bPHoXHHpMJJktTfDzMmqWNly/wbwn33Qcvvgi9e5d7rVFOjjYx98cfw0FtsmocHbUao9GjoSwqxA3KwG+Hf2PihokcuazNNunr6ssbbd9gePPhMpRfCBtUrCApNDTU9Pixxx7jyy+/5P777zflNWzYkCpVqjBu3Dj69u1b6oUUoqx0CetCbe8GHE04yKZmx9i4pR0dnnkG9uwBZ+koe0t27tTGyy9cqE0ACdpaHE8/DcOGwT33lHuRMjK0Fr5PPtGWdwOtL/jQofDqq6Xf3wi04Gjp0aVM2DCB/+K0lW29XbwZ02YMI1uMxNNZFgMXwlaVuOP2wYMHLY4yCgsL4/Dhw6VSKCHKi06nY2yHMQxeOhhafsG7u35m0+HO6D74AN57z9rFu/1kZmpVNF99Bbt25ec3aQLDh2sTPlqhz1dyslaRNW1afhcof3945RWtMsu7DCarVkqx/NhyJm6cyL7YfQB4OXvxWuvXeKXlK+hd9KV/USFEqSrxFABNmjShTp06/PDDD6YlI7KysnjmmWc4cuQIe/bsKZOClieZAsA2xMbGmmoxz549S2BgYJlcJycvh6qfVedC2jlYPpO1exbSxWGT9iMfHl4m17zjnDmjRSE//KA1r4G21H3//lpw1KJF6XfuKYb4ePjySy0lJmp5oaHwxhtahVZpd8YGLThaeWIlEzZMYHfMbgA8nTwZ1WoUr7Z6VZYPEaIMlfbvd4mDpH///ZfevXtjMBgIv/oDsn//fnQ6HStWrKBFi9t/VXUJku4+n237jNFrRsPle2i94Hf+ia+PrkkTbTV5WazZMoMBIiK0JrUVK/I7YoeEaM1pzz0HFStapWhxcVqt0ddfQ2qqllerFowdq/U7KouPVCnF6lOrmbBhAv9G/wuAu6M7L7d8mddav4avm2/pX1QIYcbqQRJAeno6P/30E0ePHkUpRd26dRkwYADu7ndGx0MJku4+qdmpVJkWQmJWAiz8nVXn59M9dbG2dPvs2aWzQumd4soVbZmQb7/VJoA06tpVqzXq1avcZsO+VkyM1t9o+vT8ZUPCw+Gdd+Dhh8umWEop1p5ey/gN49l+fjsAbo5uDG8+nNfbvE5Fd+sEikLcjWwiSLrTSZB0d3p33bt8sPkDON+S5ptWsuOkPzpDnjbc6X//s0pzkU3ZtUsLjH7+Wet7BKDXw5AhWseecp70saDoaPjoI21OSmMf8ebNYdw4LWYri49OKcW6yHVM2DCBf879A4CLgwvDmw/njbZv4O/uX/oXFUJcV2n/ft/Uf4/nzZtHu3btCA4O5uzV+fo/++wzli1bdssFEsIoMjISnU6HTqczm4airIxsMRJne2eovIOdWf+x8pWry5RMm6b9At+N0tO1fkbNm2tp1iwtQAoP1yKS6GhtemorBUjR0TByJFSvDv/3f1qA1KYNrFqlTQ7Zu3fpB0jG4KjDnA7cN+8+/jn3D872zoxqOYrIVyL5X7f/SYAkxB2ixEHSt99+y+jRo+nZsycJCQmmySO9vb35/PPPS3SuTZs20bt3b4KDg9HpdCxdutRs/8WLFxkyZAjBwcG4ubnRo0cPThRcCdyCOXPmmH5YC6ZM4/98hShCgEcATzd6WnvS9mPGb+yC+t+n2vOxY+G776xXuPJ2+LA29Cs4WOtbtGuX1hH7ySdhyxbYuxeefx6s1MR+/ry2flq1atpAuqwsaN9eW9lkyxbo3r1sao82ntlIxx870mVuFzZHbcbZ3pmRLUZy+pXTfNbjMwI9ymZwgRDCOkocJP3f//0f3333He+88w4ODvkzCDRr1oyDxlnZiiktLY3w8HC++uqrQvuUUvTt25fTp0+zbNky9u7dS2hoKPfddx9pxgWViuDl5UVMTIxZMo7EE+J6XmvzGnY6O7jnT/ac/4+5fqO1AAm0zsi//27dApaljAyYN0+LNurV04aEJSVpkchHH2mRyU8/lf7KriUQHa0FR9Wra52ys7Ph3nth3TrYuBG6dCmbom06u4lOP3ai448d2XR2E072TgxvPpxTL5/iy55fEuwZXPoXFUJYnyohFxcXdebMGaWUUh4eHurUqVNKKaWOHz+uXFxcSno6E0AtWbLE9PzYsWMKUP/9958pLzc3V/n4+KjvvvuuyPPMnj1b6fX6my6HUkolJSUpQCUlJd3SecStOX36tAIUoE6fPl1u133sl8cUE1H0HaT0eqXOnzMo9fzzSoFSTk5KXefv77Z04IBSr7yilLe3do+glL29Un37KvXXX0rl5Vm7hCo6WqmRI5Vyds4v4r33KrV+fdled/PZzarzj521v4eJKMf3HNWLK15UUYlRZXthIcRNKe3f7xLXJIWFhbFv375C+X/99Rd169a9tYitgKyrvS8L1gDZ29vj5OTEli1brvva1NRUQkNDqVy5Mr169WLv3r03vFZycrJZEnev19u8DoCu4c8kcZbnX9ChvvlWm/MnO1trZnr22fzhU7ejpCRtCFiLFtoaHF98AQkJ2iRCkydr01EvWaItOGvFkX0xMdoCs9Wq5fc5at9eqznasAE6diyb6247t41u87rRfnZ71kWuw9HOkaFNh3Ly5ZN888A3VNFXKZsLCyFsS0mjqlmzZqlKlSqphQsXKnd3d7VgwQI1efJk0+ObxTU1SdnZ2So0NFQ99thj6sqVKyorK0tNnTpVAapbt25Fnmfbtm1q3rx5at++fWrTpk3qkUceUa6urur48eNFvmbChAmmGouCSWqSrMtaNUlKKdXlxy6KiSi7RwYpUOqHH5RWo/LBB0rZ2WlVGU2aKFXO5bolublKrVmj1FNPKeXqml8l4+io1KOParVGubnWLqVSSqnYWKVGj1bKxSW/mG3bKrV2rVIGQ9ldd8f5HarHTz1MNUcO7zmoF5a/oM4knCm7iwohSk1p1ySVOEhSSqmZM2eqkJAQpdPplE6nU5UrV1bff//9rRXkmiBJKaV27dqlwsPDFaDs7e1V9+7dVc+ePVXPnj2Lfd68vDwVHh6uRo4cWeQxmZmZKikpyZTOnTsnQZINsGaQtDN6p2IiSjdRpwjcq7y8lIoytrBERCjl56f9cnt7K/Xnn+VathIxGJTau1eLOIKC8iMOUKpePaWmTVMqLs7apTSJi1Pq9dfNY7jWrbXYriyDoz0X9qheP/cyBUf2k+zVs8ueVaev3EZBsBCi1IOkEq/dBvD888/z/PPPc/nyZQwGA/7+ZTPctWnTpuzbt4+kpCSys7OpWLEiLVu2pFmzZsU+h52dHc2bN7/uqDhnZ2ecZTFTm+Pk5IT91dn/nJycyvXazYKb8UT9J1jw3wL0j75O0ldreO45HatWge6++2D3bnjsMfj3X3jgAS1NngyNGpVrOS1SCg4c0DqZ//abNlLNyMdHWz9t0CCrLRViyeXL2lRUX30FxnEZLVpoy+d161Z2xTwUd4gJGyaw+MhiAOx0dgxsOJBx946juk/1srmoEOL2cTORVU5OjoqIiFDTp09XycnJSimloqOjVUpKyk1Ha1ioSbrW8ePHlZ2dnVq9enWxz2swGFSzZs3U008/XezXSMdtoZRSkQmRyul9J63Dbp2/FCg1c2aBAzIzlXr5Za2Ts7Ha47HHlDpypPwLm5Oj1NatWjVM9ermNUbOzlpz2rJlSmVllX/ZriM+Xqm331bKwyO/uE2bapVzZVlzdPzycfXk4ie1msKrNYYDFg9Qxy4fK7uLCnEb2bhxo+rVq5cKCgqy+PucnZ2t3njjDVW/fn3l5uamgoKC1MCBA1V0dLTZcZmZmWrEiBHK19dXubm5qd69e6tz586ZHXPlyhX11FNPKS8vL+Xl5aWeeuoplZCQcFPltnpz25kzZ1Tt2rWVm5ubsre3N41ue+WVV9TQoUNLdK6UlBS1d+9etXfvXgWoadOmqb1796qzZ88qpZT65Zdf1Pr169WpU6fU0qVLVWhoqHr44YfNzjFw4ED11ltvmZ5PnDhRrVq1Sp06dUrt3btXPf3008rBwUHt2LGj2OWSIEkYvbb6NcVEVOB79RW6XOXhodSxa39Hjx1T6oknlNLptF95OzulHn9cqd9/Vyo1tWwKZjAodfSoUl99pY1C0+vNAyMXF6X69FFq7lylbvIfm7J05YpS48Yp5eWVX+TGjZVavrxsg6NzSefUc8ueU/aT7E1Na48sekT9d/G/G79YiLvIypUr1TvvvKMWL15sMUhKTExU9913n1q0aJE6evSo2rZtm2rZsqVq2rSp2XHDhg1TlSpVUhEREWrPnj2qU6dOKjw8XOUW6P/Yo0cPVb9+fbV161a1detWVb9+fdWrV6+bKrfVg6Q+ffqop556SmVlZZlNAbBhwwZVo0aNEp1r/fr1FjtMDx48WCml1BdffKEqV66sHB0dVUhIiHr33XdV1jX/E+7QoYPpeKWUGjVqlAoJCVFOTk6qYsWKqlu3bmrr1q0lKpcEScLoSvoV5f2ht2Iiqma/HxQoVaOGUpcvWzj4wAEtYLm2FueBB5SaMUOpU6durmO0waB1iFq6VKnx45Xq1atw/yJj/6j+/ZX65RelbqFWtywlJGi3UDA4Cg9XasmSsg2OLqddVmNWj1HO7zubgqP759+vdkXvKruLCttiMGj/abFGKsEfd4cOHdSIESPUK6+8oipUqKD8/f3VjBkzVGpqqhoyZIjy8PBQ1apVUytXrizDN8tccVp6lFLq33//VYCpoiMxMVE5OjqqhQsXmo6Jjo5WdnZ2atWqVUoppQ4fPqwAtX37dtMx27ZtU4A6evRoictq9SDJ19fXVPCCQVJkZKRydXUtlUJZmwRJtsGaHbcL+nTrp1pt0sfBqkr1VAVKdehwnZarXbuUGjVKqbCwwoGMo6NSNWsq1bOnUiNGKPXee0q9/75SkydrI+emTlXqrbeUGjhQqc6dlapVy7wtqmByctKOmTJFqX//tZmRaZYkJCg1caJ5hVeDBkr99lvZTsOUmpWqJm+crLymepmCo/az2qstZ7eU3UWFbUpNtfw9Ko9UghrlDh06KE9PT/X++++r48ePq/fff1/Z2dmpnj17qpkzZ6rjx4+rF198Ufn6+qq0tLQizzN06FDl7u5+3WQMZm6kuEFSRESE0ul0pt/Ov//+WwHqypUrZsc1bNhQjR8/Ximl1A8//GBxbkO9Xq9mzZpVrPIVZPWO2waDwbQUSUHnz5/H09OzpKcTwuYNbz6cr/79isjESEZM/Ywfn32XjRvhhRdg9mwLnYqbNtXStGlap+lly2D5cm0pj+xsOHFCSyXh4KDNgt2kSX5q1Ajc3ErrNstEQoK2tNsXX2hTMwHUrw8TJsDDD5fdFExKKX49/CuvrXmN88nnAQgPCGdql6n0qNEDnY10WBfCkvDwcN59910Axo4dy4cffoifnx/PP/88AOPHj+fbb7/lwIEDtGrVyuI53nvvPcaMGXPd6wQHl95M8ZmZmbz11lsMGDDAtLBsbGwsTk5OeHt7mx0bEBBAbGys6RhLg7/8/f1Nx1hTiYOkrl278vnnnzNz5kwAdDodqampTJgwgfvvv7/UCyiEtTk7ODOlyxSeWPwEc05+xIz5zzDooWB+/FFb19W4akkhOp0W2NSrB2+/DXl52roap07ByZPaNiHB/P+cBgN4eEClSvkpOFib5PE2WlonPh4++0xb2SQlRcurVw/Gj4dHHy3b+SkPxR1i5F8jWX9mPQBVK1RlSucp9K/fX1tyRtyd3NwgNdV61y6Bhg0bmh7b29vj6+tLgwYNTHkBAQEAxMXFFXkOf3//Mht5fq2cnBwef/xxDAYD33zzzQ2PV0qZ/UfF0n9arj3GWkocJH322Wd06tSJunXrkpmZyYABAzhx4gR+fn4sWLCgLMoohNX1r9efz7d/zo7oHSxIHcoXXyxnxAgdb78NNWtqP/w3ZG8PISFa6tSpzMtsDRcvasHR11/n/x41aKAFR2VZcwSQnJXMxA0T+XLHl+SpPFwcXBjbbiyvt3kdV0fXsruwuD3odFZbkLmkHB0dzZ7rdDqzPGPwYDAYijzHsGHD+Omnn657ncOHDxMSEnILJdUCpH79+hEZGcm6detMtUgAgYGBZGdnk5CQYFabFBcXR5s2bUzHXLx4sdB5L126ZAoGranEQVJwcDD79u1jwYIF7NmzB4PBwLPPPsuTTz6Jq6v8QyTuTDqdjh8e/IEmM5uw4vgKHunzIy+/PIQvv4SBA8HVVZsq6W517hx88gl89x1kZmp54eFacNS3b9mvbPLn8T8ZumIo0SnRADxU+yGmdZ9G1QpVy/bCQtio8mhuMwZIJ06cYP369fj6+prtb9q0KY6OjkRERNCvXz8AYmJi+O+///j4448BaN26NUlJSfz777+0aNECgB07dpCUlGQKpKzppiaTdHV15ZlnnuGZZ54p7fIIYbPq+dfjvY7v8dbfb/HKqlfYP6ELZ89WYdky6NMHZs3S5mi8mxw7pgVHc+dCTo6W16IFvPsu9OpV9nNVxqfH88qqV5h/cD4A1b2r8/X9X9O9RveyvbAQNu5Wm9tSU1M5efKk6XlkZCT79u3Dx8eHkJAQcnNzefTRR9mzZw8rVqwgLy/P1IfIx8cHJycn9Ho9zz77LK+99hq+vr74+PgwZswYGjRowH333QdAnTp16NGjB88//zwzZswA4IUXXqBXr17UqlXrFt6BUnIzvb2PHj2qhg8frjp37qy6dOmihg8fro5YYwK9MiKj22yDrYxuKyg3L1e1+r6VYiKq27xuKivLoAYOzO9U9PHHZTuU3VZs3arNdmCcGgqU6thRW7GlPO7fYDCoX/77Rfl/4q+tsTfJTr22+jWVll30aB8hbgcdOnRQr7zyilleaGio+uyzz8zyKOaIs5t1oyl6IiMjLe4H1Pr1603nycjIUCNGjFA+Pj7K1dVV9erVS0WZ1njSxMfHqyeffFJ5enoqT09P9eSTT9rMZJI6pZQqSVD122+/8cQTT9CsWTNat24NwPbt29m5cyc///wzjz32WKkEb9aUnJyMXq8nKSnJrH1VlK/o6GhTe3lUVBSVKlWycok0xy4fo9GMRmTmZjL9gek832Qob76pLasBMHq0VrtS1k1M5S0vD1as0O7tn3/y83v3hjffhLZty6ccl9Iu8dLKl/jt8G8A1K1Yl1kPzqJl5ZblUwAhhM0q7d/vEgdJ1apV46mnnuK9994zy58wYQLz5s3j9OnTt1woa5MgSdzI59s/59XVr+Lu6M7BFw8S5h3G//4Hr7+u7X/iCZg5UxuodrtLTNSaEr/+GoxfbycneOopGDMG6tQpv7L8fuR3hq0YxqX0SzjYOTC23Vjeaf8Ozg6y9qIQwgaCJDc3Nw4cOECNGjXM8k+cOEF4eDjp6em3XChrkyBJ3IhBGeg4pyObozbTIbQDfw/6G3s7e+bNg2eegdxcCAvT5lHq0MHapb05//2nLTg7bx4Yv9be3tr8UC+/rM1MUF6uZFxh5F8j+fngzwDU96/P3L5zaRzUuPwKIYSweaX9+13iBoGOHTuyefPmQvlbtmyhffv2t1wgIW4Hdjo7ZveZjZujGxvPbmTc+nGANtItIkIb5R8ZCR07agGFcWV7W5eSAt9/D23aaEP3Z8zQAqQGDbSasfPn4cMPyzdA+vP4n9T/pj4/H/wZO50dY9uNZdfzuyRAEkKUuRLXJE2fPp3x48fTr18/00yf27dv59dff2XSpElmQwoffPDB0i1tOZGaJNsQFRVFaGgoAGfPnr3l+TzKws8Hf+bJ358EYP7D8xnQYAAAycla09vVOVepXh1++ME2a5UMBq2P0axZ8Msv+bVG9vbaqL2RI7Vyl/e8bomZiYxaNYof9/8IQC3fWvzY90fpeySEKJLVm9vsitkbVafTWVy+5HYgQZJtiIyMpFq1agCcPn2asLAwK5fIsrfWvsVH/3yEi4MLm4Zsonml5qZ9q1fDc89pNTCgzSH55pvQrVv5Bx0FGQywdSv8+issXqxNBG5Uq5bWZDhoEAQGWqd8K0+s5Pk/nudCygV06Hi11atM7jxZJoUUQlyX1YOku4EESbbhdgmS8gx59F3UlxXHVxDsGczO53cS7Jlfo5qUBG+8odXU5OZqeY0aaXmPPaYty1YekpNh40YtcFuyBC5cyN/n5QWPPALPPqs1tVkrgEvMTGT06tHM3jcbgJo+NZndZzZtQ8pp6JwQ4rYmQVI5kCDJNtwuQRJoS2K0+r4VRy4foUWlFmwcshEXB/O11qKitCU7vvsuv49SUBD07An33w/33Qd6fSmWKVlbU3f9eq2f1I4d2jB+Iy8vrTntsce0mi1nKw4QU0qx+MhiRv41ktjUWFPt0fud38fN0bYX8RVC2A6rBUk7duzgypUr9OzZ05Q3d+5cJkyYQFpaGn379uX//u//cLbmv7SlRIIk23A7BUkAJ6+cpMV3LUjITOCphk8xt+9ciws0XrkC33yjLf566VJ+voODNtdQ+/ZQowZUq6b1ZQoKKrpmJztbWy/twgUtHT6sBUZ79+YP1y+oRg0tGHvgAeja1bqBkdH55PMMXzmc5ceWA1rfox8e/EFqj4QQJWa1IKlnz5507NiRN998E4CDBw/SpEkThgwZQp06dfjkk08YOnQoEydOvOVCWZsESbbhdguSAP4+/Tfdf+pOnspjaNOhfPPAN0WuPJ+VBZs2wV9/wcqV2hIflri6go+P1pHazk5LOp3WjHf58vXLExICrVppAdF990HVqrd2f6Upz5DH9F3TGfv3WFKyU3C0c2Rsu7GMbT+2UC2cEEIUh9WCpKCgIP744w+aNWsGwDvvvMPGjRvZsmULAL/++isTJkzg8OHDt1woa5MgyTbcjkESwNz9cxmydAgKxTONnmFm75nY29nf8HWnT2sB04EDcOqUlqKitE7W1+PoqNU2BQVpNUWNG2t9nho1gmvWm7QZW89t5eW/XmZ3zG4A2lRpw8xeM6nnX8/KJRNC3M6sNk9SQkICAQEBpucbN26kR48epufNmzfn3Llzt1wgIYzs7e3R6XTodDrs7W8cZNiKQeGDmPfQPOx0dszaN4unlz1NnuHGIz2rVYPhw7W5idau1eZZysyEEydg1y7YuVPrV7RtG2zZAvv3a811mZlw9ixs3w4//QSvvQZduthmgHQh5QIDlwyk7ay27I7Zjd5Zz9f3f83mpzdLgCSEDdm0aRO9e/cmODgYnU7H0qVLLR535MgRHnzwQfR6PZ6enrRq1YqoqCjT/qysLEaOHImfnx/u7u48+OCDnDcO970qISGBgQMHotfr0ev1DBw4kMTExDK8u+IrdpAUEBBAZGQkANnZ2ezZs8e0dhtASkoKjo6OpV9CcdcKCQnBYDBgMBhsco6k63my4ZMseGQB9jp75h2Yx1NLniLXkFvi8zg6arVDTZtCs2bQooXWfNa2LTRsCH5+t8cacZm5mXy05SPu+b97+OnAT+jQ8Vzj5zg+8jgvNX+pyCZJIYR1pKWlER4ezldffVXkMadOnaJdu3bUrl2bDRs2sH//fsaNG4eLS35z+ahRo1iyZAkLFy5ky5YtpKam0qtXL7MpggYMGMC+fftYtWoVq1atYt++fQwcOLBM76/YirsS7gsvvKBat26tNm3apEaPHq18fX1VVlaWaf9PP/2kmjVrdqsL7tqE0l5FWNy9Fh9erBzec1BMRD286OG7bpX67NxsNWPXDFV5WmXFRBQTUa2/b612Ru+0dtHEXcZgUCo11TrJYCh+OTt06KBGjBihXnnlFVWhQgXl7++vZsyYoVJTU9WQIUOUh4eHqlatmlq5cmXZvVnXANSSJUsK5ffv31899dRTRb4uMTFROTo6qoULF5ryoqOjlZ2dnVq1apVSSqnDhw8rQG3fvt10zLZt2xSgjh49WuKylvbvd7H/+zZ58mTs7e3p0KED3333Hd999x1OTk6m/bNmzaJbt26lHcMJcVt7uM7DLO63GEc7R34/8jstv2/JsctF9NC+g+QZ8ph/YD51vq7D0BVDOZ98nspelfmx749seWYLzYKbWbuI4i6Tnq4tOG2NVNIlTX/88Uf8/Pz4999/GTlyJC+++CKPPfYYbdq0Yc+ePXTv3p2BAwded63UYcOG4eHhcd1UsFmspAwGA3/++Sf33HMP3bt3x9/fn5YtW5o1y+3evZucnByz2CA4OJj69euzdetWALZt24Zer6dly/yZ9Fu1aoVerzcdY1UljaoSExNVbm5uofz4+HizmqXbmdQk2YazZ88qnU6ndDqdOnv2rLWLc0s2RG5QAZ8EKCaiPKZ4qEX/LbJ2kcpEdm62mrd/nqr/TX1TzZH/J/7q822fq4ycDGsXT9zFUlOVAuuk1NTil7NDhw6qXbt2pue5ubnK3d1dDRw40JQXExOjALVt27Yiz3Px4kV14sSJ66acnJxilQkLNUnGMri5ualp06apvXv3qqlTpyqdTqc2bNiglFJq/vz5ysnJqdD5unbtql544QWllFIffPCBqlmzZqFjatasqaZMmVKs8hVU2r/fJZ7rV1/EbHc+Pj63EqsJUUheXh7q6uDL23WJG6MOVTuwd+henlj8BBvPbqT/b/35J+ofPun2CU72Tjc+gY1LzEzku93f8cWOL4hO0dY4qeBSgdfbvM7LLV/Gw8nDyiUUdzs3N0hNtd61S6Jhw4amx/b29vj6+tKgQQNTnnEQVVxcXJHn8Pf3x9/fv2QXLgHD1WG3ffr04dVXXwWgUaNGbN26lenTp9PhOgtVKqXM5pCzNJ/ctcdYSzktiCCECPIMYu2gtYxbN44P//mQL//9kq3nt/L1/V/TolILaxfvphy5dISZu2fy/d7vSc3WfoECPQIZ2WIkLzZ7EW9XbyuXUAiNTgfu7tYuRfFcOwhKp9OZ5RmDB8N15gcZNmwYP/3003Wvc/jw4ZseFOPn54eDgwN169Y1y69Tp45paqDAwECys7NJSEjA2zv/34K4uDjatGljOubixYuFzn/p0iWzEfXWIkGSEOXIwc6BqfdNpW1IWwYuGciuC7to+X1LBjYcyNQuU6nkVcnaRbyhxMxEFv63kNn7ZvNv9L+m/Pr+9RndajQDGgzA2cEGpvIW4i723nvvMWbMmOseExwcfN391+Pk5ETz5s05ds0suMePHyc0NBSApk2b4ujoSEREBP369QMgJiaG//77j48//hiA1q1bk5SUxL///kuLFtp/Fnfs2EFSUpIpkLImCZKEsIJe9/Ti0EuHePvvt/lx/4/MOzCPxUcW81bbtxjTZozNrXafmp3K6pOrWXxkMUuOLiEzNxMAe509D9zzAC82e5Hu1bvbRPW4EOLWm9tSU1M5efKk6XlkZCT79u3Dx8fHVPv0+uuv079/f+699146derEqlWr+OOPP9iwYQOgdc959tlnee211/D19cXHx4cxY8bQoEED7rvvPkCreerRowfPP/88M2bMAOCFF16gV69e1KpV66bLX1okSBLCSoI9g5nTdw4jWoxg1KpR/HPuH8ZvGM/XO7/mmcbP8HyT5wnztt4s4xdTL/LH8T9YdmwZEaciyMrLMu2rV7EeTzd6mqcaPkWAh/WrxIUQpWvXrl106tTJ9Hz06NEADB48mDlz5gDw0EMPMX36dKZOncrLL79MrVq1WLx4Me3atTO97rPPPsPBwYF+/fqRkZFBly5dmDNnjtkEwfPnz+fll182jYJ78MEHrzs/U3kq9rIkdxNZlsQ23K7LktwMpRS/HPqFN9a+QVSSNixXh46u1bsytOlQet/TG0f7sp2sNTEzkU1nN7Euch3rItdxMO6g2f5q3tXoW6svj9d/nGbBzaTWSAhhc6y2dtvdRIIk2xAVFWVq2z579uxtN+v2zcjJy+GP438wY/cM1pxaY8r3cvaifUh7OlbtSMeqHWkU2AgHu5uvCM7Oy+a/uP/YfWE3u2N2s/PCTvbF7sOgzDuCNglqwkO1H6Jv7b7Uq1hPAiMhhE2TIKkcSJAkbMHphNN8v+d7Zu2dxcU089Efnk6ehAeGU8Wripb02tbDyQOFQimFQRkwKAOX0y9zPvk855PPcy75HFFJURy5fITsvOxC17zH9x46V+1Mp7BOdKzaEX/3shtCLIQQpU2CpHIgQZKwJXmGPPZf3M+GMxvYcGYDm85uIikr6ZbPW8GlAk2DmtIsuBlNg5rSpkqb22J0nRBCFEWCpHIgQZKwZXmGPA7GHeR4/HGikqI4l3SOc8layszNRIcOnU5n2vq6+lLZqzKVvSpTxasKlbwqUduvNtW9q0vzmRDijlLav98yuk3YrOjoaFM/pKioKCpVkloOAHs7exoFNqJRYCNrF0UIIe5oEiQJm5WdnW2aUTY7u3D/GSGEEKIs2Vm7AEIIIYQQtkiCJCGEEEIICyRIEkIIIYSwQIIkIYQQQpiZOnUqzZs3x9PTE39/f/r27VtoMVulFBMnTiQ4OBhXV1c6duzIoUOHzI7Jyspi5MiR+Pn54e7uzoMPPsj58+fNjklISGDgwIHo9Xr0ej0DBw4kMTGxrG+xWCRIEkIIIYSZjRs3Mnz4cLZv305ERAS5ubl069aNtLQ00zEff/wx06ZN46uvvmLnzp0EBgbStWtXUlJSTMeMGjWKJUuWsHDhQrZs2UJqaiq9evUiLy/PdMyAAQPYt28fq1atYtWqVezbt4+BAweW6/0WSVnRxo0bVa9evVRQUJAC1JIlS8z2x8bGqsGDB6ugoCDl6uqqunfvro4fP37D8/7222+qTp06ysnJSdWpU0f9/vvvJSpXUlKSAlRSUlKJXidK1+nTpxWgAHX69GlrF0cIIcpchw4d1IgRI9Qrr7yiKlSooPz9/dWMGTNUamqqGjJkiPLw8FDVqlVTK1euLNdyxcXFKUBt3LhRKaWUwWBQgYGB6sMPPzQdk5mZqfR6vZo+fbpSSqnExETl6OioFi5caDomOjpa2dnZqVWrVimllDp8+LAC1Pbt203HbNu2TQHq6NGjJS5naf9+W7UmKS0tjfDwcIur/Sql6Nu3L6dPn2bZsmXs3buX0NBQ7rvvPrNI9lrbtm2jf//+DBw4kP379zNw4ED69evHjh07yvJWRBkICwtDKW2JjTt5cVshRNlTSpGWnWaVpEo4Z/OPP/6In58f//77LyNHjuTFF1/kscceo02bNuzZs4fu3bszcOBA0tPTizzHsGHD8PDwuG6KiooqdpmSkrRZ/n18fABtAfLY2Fi6detmOsbZ2ZkOHTqwdetWAHbv3k1OTo7ZMcHBwdSvX990zLZt29Dr9bRs2dJ0TKtWrdDr9aZjrMmq8yT17NmTnj17Wtx34sQJtm/fzn///Ue9evUA+Oabb/D392fBggU899xzFl/3+eef07VrV8aOHQvA2LFj2bhxI59//jkLFiyw+JqsrCyysrJMz5OTk2/ltoQQQtiY9Jx0PKZ6WOXaqWNTcXdyL/bx4eHhvPvuu4D2G/bhhx/i5+fH888/D8D48eP59ttvOXDgAK1atbJ4jvfee48xY8Zc9zrBwcHFKo9SitGjR9OuXTvq168PQGxsLAABAQFmxwYEBHD27FnTMU5OTnh7exc6xvj62NhY/P0LrxHp7+9vOsaabHYySWPQ4uLiYsqzt7fHycmJLVu2FBkkbdu2jVdffdUsr3v37nz++edFXmvq1KlMmjTp1gsthBBC3KKGDRuaHtvb2+Pr60uDBg1MecbAJC4urshz+Pv7Www+bsaIESM4cOAAW7ZsKbTv2qWNlFI3XO7o2mMsHV+c85QHmw2SateuTWhoKGPHjmXGjBm4u7szbdo0YmNjiYmJKfJ1sbGxFiPb60WkY8eOZfTo0abnycnJVKlS5dZvQtyS6OhoQkNDATh79qwsSyKEuGlujm6kjk212rVLwtHR0ey5TqczyzMGD8YVCSwZNmwYP/3003Wvc/jwYdPST0UZOXIky5cvZ9OmTVSuXNmUHxgYCGi/uUFBQab8uLg4029wYGAg2dnZJCQkmNUmxcXF0aZNG9MxFy9eLHTdS5cuFfottwabDZIcHR1ZvHgxzz77LD4+Ptjb23PfffcV2TxXUEkjW2dnZ5ydnW+5zKJ0ZWdnm0ZAyLIkQohbodPpStTkdbu71eY2pRQjR45kyZIlbNiwoVC/0LCwMAIDA4mIiKBx48aA9u/0xo0b+eijjwBo2rQpjo6ORERE0K9fPwBiYmL477//+PjjjwFo3bo1SUlJ/Pvvv7Ro0QKAHTt2kJSUZAqkrMlmgyTQ3uB9+/aRlJREdnY2FStWpGXLljRr1qzI1wQGBhaqNSoY2QohhBB3ulttbhs+fDg///wzy5Ytw9PT0/S7qtfrcXV1RafTMWrUKKZMmULNmjWpWbMmU6ZMwc3NjQEDBpiOffbZZ3nttdfw9fXFx8eHMWPG0KBBA+677z4A6tSpQ48ePXj++eeZMWMGAC+88AK9evWiVq1at/gu3LrbYp4kvV5PxYoVOXHiBLt27aJPnz5FHtu6dWsiIiLM8tasWWMTEakQQghxO/j2229JSkqiY8eOBAUFmdKiRYtMx7zxxhuMGjWKl156iWbNmhEdHc2aNWvw9PQ0HfPZZ5/Rt29f+vXrR9u2bXFzc+OPP/7A3t7edMz8+fNp0KAB3bp1o1u3bjRs2JB58+aV6/0WRadKOjaxFKWmpnLy5EkAGjduzLRp0+jUqRM+Pj6EhITw66+/UrFiRUJCQjh48CCvvPIKTZs2ZfHixaZzDBo0iEqVKjF16lQAtm7dyr333ssHH3xAnz59WLZsGe+++y5btmwxG2J4PcnJyej1epKSkvDy8ir9GxfFEhkZSbVq1QA4ffq0TAMghBDiukr799uqzW27du2iU6dOpufGztODBw9mzpw5xMTEMHr0aC5evEhQUBCDBg1i3LhxZueIiorCzi6/QqxNmzYsXLiQd999l3HjxlG9enUWLVpU7ABJCCGEEAKsXJNkq6QmyTZITZIQQoiSKO3f79uiT5IQQgghRHmz6dFt4u5mXJZECCGEsAapSRJCCCGEsECCJCGEEEIICyRIEjYrNjbWNBu6LSx0KIQQ4u4ifZKEzcrIyDAtR5KRkWHl0gghhLjbSE2SEEIIIYQFEiQJIYQQQlggQZIQQgghhAUSJAkhhBBCWCBBkhBCCCGEBTK6zQLjLM/JyclWLsndLSUlxeyxfB5CCCGux/g7UVqrNUiQZEF8fDwAVapUsXJJhFF4eLi1iyCEEOI2ER8fj16vv+XzSJBkgY+PDwBRUVGl8iaLm5ecnEyVKlU4d+5cqazoLG6NfB62Qz4L2yGfhe1ISkoiJCTE9Dt+qyRIssDOTuuqpdfr5Q/eRnh5eclnYUPk87Ad8lnYDvksbIfxd/yWz1MqZxFCCCGEuMNIkCSEEEIIYYEESRY4OzszYcIEnJ2drV2Uu558FrZFPg/bIZ+F7ZDPwnaU9mehU6U1Tk4IIYQQ4g4iNUlCCCGEEBZIkCSEEEIIYYEESUIIIYQQFkiQJIQQQghhgQRJQgghhBAWSJBkwTfffENYWBguLi40bdqUzZs3W7tId52JEyei0+nMUmBgoLWLdVfYtGkTvXv3Jjg4GJ1Ox9KlS832K6WYOHEiwcHBuLq60rFjRw4dOmSdwt4FbvR5DBkypNB3pVWrVtYp7B1s6tSpNG/eHE9PT/z9/enbty/Hjh0zO0a+G+WjOJ9FaX0vJEi6xqJFixg1ahTvvPMOe/fupX379vTs2ZOoqChrF+2uU69ePWJiYkzp4MGD1i7SXSEtLY3w8HC++uori/s//vhjpk2bxldffcXOnTsJDAyka9eupKSklHNJ7w43+jwAevToYfZdWblyZTmW8O6wceNGhg8fzvbt24mIiCA3N5du3bqRlpZmOka+G+WjOJ8FlNL3QgkzLVq0UMOGDTPLq127tnrrrbesVKK704QJE1R4eLi1i3HXA9SSJUtMzw0GgwoMDFQffvihKS8zM1Pp9Xo1ffp0K5Tw7nLt56GUUoMHD1Z9+vSxSnnuZnFxcQpQGzduVErJd8Oarv0slCq974XUJBWQnZ3N7t276datm1l+t27d2Lp1q5VKdfc6ceIEwcHBhIWF8fjjj3P69GlrF+muFxkZSWxsrNl3xNnZmQ4dOsh3xIo2bNiAv78/99xzD88//zxxcXHWLtIdLykpCcC02rx8N6zn2s/CqDS+FxIkFXD58mXy8vIICAgwyw8ICCA2NtZKpbo7tWzZkrlz57J69Wq+++47YmNjadOmDfHx8dYu2l3N+D2Q74jt6NmzJ/Pnz2fdunV8+umn7Ny5k86dO5OVlWXtot2xlFKMHj2adu3aUb9+fUC+G9Zi6bOA0vteOJR2ge8EOp3O7LlSqlCeKFs9e/Y0PW7QoAGtW7emevXq/Pjjj4wePdqKJRMg3xFb0r9/f9Pj+vXr06xZM0JDQ/nzzz95+OGHrViyO9eIESM4cOAAW7ZsKbRPvhvlq6jPorS+F1KTVICfnx/29vaFov64uLhC/zsQ5cvd3Z0GDRpw4sQJaxflrmYcYSjfEdsVFBREaGiofFfKyMiRI1m+fDnr16+ncuXKpnz5bpS/oj4LS272eyFBUgFOTk40bdqUiIgIs/yIiAjatGljpVIJgKysLI4cOUJQUJC1i3JXCwsLIzAw0Ow7kp2dzcaNG+U7YiPi4+M5d+6cfFdKmVKKESNG8Pvvv7Nu3TrCwsLM9st3o/zc6LOw5Ga/F9Lcdo3Ro0czcOBAmjVrRuvWrZk5cyZRUVEMGzbM2kW7q4wZM4bevXsTEhJCXFwckydPJjk5mcGDB1u7aHe81NRUTp48aXoeGRnJvn378PHxISQkhFGjRjFlyhRq1qxJzZo1mTJlCm5ubgwYMMCKpb5zXe/z8PHxYeLEiTzyyCMEBQVx5swZ3n77bfz8/HjooYesWOo7z/Dhw/n5559ZtmwZnp6ephojvV6Pq6srOp1Ovhvl5EafRWpqaul9L255fNwd6Ouvv1ahoaHKyclJNWnSxGxYoSgf/fv3V0FBQcrR0VEFBwerhx9+WB06dMjaxborrF+/XgGF0uDBg5VS2lDnCRMmqMDAQOXs7KzuvfdedfDgQesW+g52vc8jPT1ddevWTVWsWFE5OjqqkJAQNXjwYBUVFWXtYt9xLH0GgJo9e7bpGPlulI8bfRal+b3QXb2gEEIIIYQoQPokCSGEEEJYIEGSEEIIIYQFEiQJIYQQQlggQZIQQgghhAUSJAkhhBBCWCBBkhBCCCGEBRIkCSGEEEJYYPNB0qZNm+jduzfBwcHodDqWLl16w9ds3LiRpk2b4uLiQrVq1Zg+fXrZF1QIIYQQdxSbD5LS0tIIDw/nq6++KtbxkZGR3H///bRv3569e/fy9ttv8/LLL7N48eIyLqkQQggh7iQ2HyT17NmTyZMn8/DDDxfr+OnTpxMSEsLnn39OnTp1eO6553jmmWf43//+V8YlFUKUlo4dOzJq1ChrF6NIHTt2RKfTodPp2LdvX7FeM2TIENNrilMjLoSwvjtugdtt27bRrVs3s7zu3bvzww8/kJOTg6OjY6HXZGVlkZWVZXpuMBi4cuUKvr6+6HS6Mi+zEHcTvV5/3f1PPPEEc+bMwdHRkeTk5HIqVb4333yTqKgoFixYUOQxubm5DB48mHfeeQdfX99ilfP999/nnXfe4Z577iE9Pd0q9ybEnU4pRUpKCsHBwdjZlUI9UGkuOlfWALVkyZLrHlOzZk31wQcfmOX9888/ClAXLlyw+JoJEyYUuWCeJEmSJEmSJOn2SufOnSuVuOOOq0kCCtX+qKtr+BZVKzR27FhGjx5tep6UlERISAjnzp3Dy8ur7AoqruvMmTOEh4cDsH//fqpWrWrdAgkhhLBpycnJVKlSBU9Pz1I53x0XJAUGBhIbG2uWFxcXh4ODA76+vhZf4+zsjLOzc6F8Ly8vCZKsKDQ0lPbt25sey2chhBCiOEqrq8wdFyS1bt2aP/74wyxvzZo1NGvWzGJ/JGG79Ho9mzZtsnYxhBBC3KVsfnRbamoq+/btM40giYyMZN++fURFRQFaU9mgQYNMxw8bNoyzZ88yevRojhw5wqxZs/jhhx8YM2aMNYovhBBCiNuUzQdJu3btonHjxjRu3BiA0aNH07hxY8aPHw9ATEyMKWACCAsLY+XKlWzYsIFGjRrx/vvv8+WXX/LII49Ypfzi5qWmpjJgwAAGDBhAamqqtYsjhBDiLqNTxl7NwiQ5ORm9Xk9SUpL0g7GiyMhIqlWrBsDp06cJCwuzcomEEELYstL+/bb5miQhhBBCCGu44zpuCyFuTwZlIDU7ldTsVPIMeRiUAYVCKYVC4WzvjLODs2nraOcok70KIcqUBElCiDKXlZvF4UuHiUyMJDIhkjOJZziTdIZzSedIyEwgKTOJ5KxkFMVv/dehw9XRFVcHV9wc3XB1dMXFwQUHOwdTstfZY6ezI0/lkWfIM20tXUeHzuy1DnYOONo74urgarqOq4Mr7k7ueDl74eXshd5Zj5ezF96u3vi5+eHn5oePqw8OdvJPqxB3AvkmCyFKlUEZOHDxADujd7Lrwi52xezi4MWD5BhyivV6e509DnYO2jpn6LDT2aFQZOdlk2vINR2nUKTnpJOek058RnxZ3U6J6dDh7eqNv7s/wZ7BWvLQtpW8KhGqDyW0QigV3SpKTZgQNk6CJCHELbuUdok1p9bw18m/WH1qNZfTLxc6xsfVh5o+NQnzDqOqvipVK1QltEIoPq4+6J316F306J31uDi4FBk8GJSBrNwsMnMzTSk9J52M3AwycjLIyM0gz5BHriGXPKVtDcqAvc4eezt709ZOV7g7pkEZTK81puy8bLNzZ+RkkJqdSnJWMsnZySRnJZOUmcSVjCvEZ8RzJeMKCsWVjCtcybjC0ctHi3zPXB1cCdGHUM27GjV8apilqhWq4mTvdPMfiBCiVEiQJIS4KbGpsSw4uICFhxayM3qnWROWp5MnLSq1oFlwM1MK1Yfecs2Jnc5Oa/pydL3V4peJXEMuVzKucCntEnFpcVxIuWBK0SnRnE8+z9mks8SkxJCRm8Gx+GMciz9W6Dz2OnuqeVejtl9tavvVppZvLepUrEPdinWp4FKh/G9MiLuUTAFggUwBYBuSkpLo1KkTAOvXr7/h6vGi7KVlp7H06FLmHZhHxOkIDMpg2hceEE7PGj3pUaMHbaq0wdFeZrgvSlZuFueTz3Mm8QyRiZGcvHKSk1dOcuLKCU5eOUl6TnqRrw32DKZuxbrU9atLPf961KtYj3r+9SR4EoLS//2WIMkCCZKEMHci/gRf7viSOfvnkJqdP7Fnq8qteKrBUzxU5yGCPYOtWMI7h1KKCykXOHr5KMfij3H08lGOXj7KkctHOJ98vsjXBXsGawHT1aCpbsW6UvMk7joSJJUDCZKE0H6s155eyxc7vuDPE3+a8qt5V2Ngw4E82eBJavrWtGIJ7z5JmUkcvXyUQ5cOcSjuEIcvH+ZQ3CHOJZ8r8jXBnsGmJjvjtpZfLap4VcHezr4cSy9E2ZMgqRxIkGQbMjIyeP311wH45JNPcHW1zX4od5o8Qx6LDi1iyuYpHLp0yJT/QM0HGNVqFF3CusioLBuTlJnE4UuHOXTpEIcvHTY9vl7Nk5O9E1UrVKWadzWqVahGNe9qVNFX0UbheVYiyDMIFweXcrwLIW6dBEnlQIIk2yDLkpSvXEMuCw4uYPLmyRyPPw6Ah5MHTzd6mpEtRkqt0W0oOSuZw5cOc+zyMVPT3bH4Y5yIP1GsKRl8XX0J8gwi0COQII8ggjyuPr6aZ8z3cvaSwFnYhNL+/ZbRbULc5fIMecw/OJ/JmyZz4soJQBuuP7rVaEa0GIHeRTrM3668nL1oVbkVrSq3MsvPM+RxPvk8pxNOczrhNJGJkZxOOM355PNEp0QTnRxNVl4W8RnxxGfE81/cf9e9jouDC4EegQS4B5iCp4LPAzzy890c3cryloUoVRIkCXEXW3NqDWPWjOFg3EFAqzl4rfVrjGgxAk9nTyuXTpQVezt7Qitok1p2CutUaL9SioTMBKKTo4lJjSE2NZaYlKvbq8+NKSkriczcTG0W9cQzN7y2u6M7AR4BBLgHmLb+7v6mrb+7PwEe2uMKLhUszmklRHmRIEmIu9CBiwd4PeJ11pxaA0AFlwq82fZNhjcfLsGRQKfT4ePqg4+rDw0CGlz32IycDGJTY7mYdtEseIpJiTHlGbeZuZmk5aSZarBuxMHOgYpuFfF396ei+9WtW0Utuedv/dz8qOhWEW9XbwmqRKmSIEmIu8jl9Mu8tfYtZu2dhULhaOfIiBYjePfed/Fx9bF28cRtyNXRlTDvMMK8r99nUClFSnYKF1MvcjHtotk2Li2OuPQ44tLiTPnJWcnkGnKJSY0hJjWmWGWx09nh4+pjWkfPz80PX1df09bXzdds6+Pqg7ert8xuLookQZIQdwGlFPMPzufV1a+algzpV68fUzpPobpPdSuXTtwNdDqdaWHg4gwCyMrN4nL6ZS2AupoupV/iUtolLqVfMj2/nH6ZS2mXSMpKwqAMXE6/bHFZnOvxcPIw1Zz5uPrg7eKNt4u3KYiq4FKBCi4V8HbJf1zBpQJ6F72MALzDSZAkxB0uMiGSF/98kdWnVgPQwL8B03tNp02VNlYumRBFc3ZwppJXJSp5VSrW8dl52cSnx3Mp/RLx6VqHc2PAdDn9stYJPT3etM5efHo8iZmJKBSp2amkZqcSlRRV8nLaO5vWHTRuvZy90Lvo8XLSgkJPZ09TgOjp5ImnsyceTh5mj90d3WXeKhskQZKwWXq9ntq1a5sei5IxKANfbP+Cd9e/S3pOOs72zozvMJ7X27wuS4aIO46TvRNBnkEEeQYV+zV5hjySspJMCxLHp8eTkJlAQkYCCZkJXMm4QkJmAomZiSRkXN1efZ6clQxAVl6WqabrVrk6uOLu5G4Kmtyd3M23Vx+7ObpZTK4OrtrW0RVXB1eLWwc7+dkvCZknyQKZJ0nc7mJSYhi0dBBrT68FoGPVjszoNYN7fO+xcsmEuDPkGfJIyU4hKTOJxMxEkrKSSM5KJinz6vbq85SsFJKzr26zkknJTiElK4XU7FTT4zyVV27lttfZ4+roiouDi8XkbO+sbR2cTc+d7Z1xdii8dbJ3wtn+6vbqc0vJ0c4x/7G9o+m58bFxWxpzbck8SUKI61p1chWDlgziUvol3Bzd+Kz7Zzzf5HmZ7E+IUmRvZ2/qmxRK6E2fRylFVl4Wadlppma/lOwU0rLTSMtJM9um56STlqNtjY8zcjJMzzNyM0jLTiMjN4OMnAzTNisvy3S9PJVnuo6tsdfZ42DnYAqajI8d7By0x3aO2NvZm54bj7e3s8deZ681V2bd+DolIUGSsFkZGRl8+OGHALz11luyLMkNZOdl8/bfb/Pptk8BaBjQkEWPLqK2X20rl0wIURSdTmeqxfF18y2TaxiUgazcLDJyM8jMzTQFUFm5WWTmZppSwbysvKvb3Cyy8rIKbbPzsvO3V/Ny8nLIzss221cwL8eQY8qzVHuWp/LIy8szC+pKLPMW3igLpLnNAmlusw2yLEnxnU8+z8OLHmbnhZ0AjGg+gk+6fSIjb4QQNsmgDOQacsnJyyHHkGNxm6fyyMnLIdeQqx1ryCHPkEeuIZc8lWfKzzPkmZ6nJqcytN1QaW4TQmh2nN9B30V9iU2NxcfVh1kPzqJP7T7WLpYQQhTJTmdn6qdUmpKTkxnK0FI7320xNek333xDWFgYLi4uNG3alM2bN1/3+Pnz5xMeHo6bmxtBQUE8/fTTxMfHl1NphSg/Px34iQ5zOhCbGksD/wbsfmG3BEhCCFFKbD5IWrRoEaNGjeKdd95h7969tG/fnp49exIVZXk+iy1btjBo0CCeffZZDh06xK+//srOnTt57rnnyrnkQpQdgzIwdu1YBi4ZSFZeFg/WepB/nvmHqhWqWrtoQghxx7D5IGnatGk8++yzPPfcc9SpU4fPP/+cKlWq8O2331o8fvv27VStWpWXX36ZsLAw2rVrx9ChQ9m1a1eR18jKyiI5OdksCWGrMnIyeOSXR/jwH61T+9h2Y1nSf4msuSaEEKXMpoOk7Oxsdu/eTbdu3czyu3XrxtatWy2+pk2bNpw/f56VK1eilOLixYv89ttvPPDAA0VeZ+rUqej1elOqUqVKqd6HEKUlOSuZHvN7sPToUpztnfnpoZ+Y0mWKLOophBBlwKb/Zb18+TJ5eXkEBASY5QcEBBAbG2vxNW3atGH+/Pn0798fJycnAgMDqVChAv/3f/9X5HXGjh1LUlKSKZ07d65U70OI0nA5/TKdf+zMprOb8HL2ImJgBE82fNLaxRJCiDuWTQdJRtdOgqeUKnJivMOHD/Pyyy8zfvx4du/ezapVq4iMjGTYsGFFnt/Z2RkvLy+zJKxPr9cTGhpKaGjoXb8sSXRyNPfOvpfdMbvxc/Nj/eD1tA9tb+1iCSHEHc2mpwDw8/PD3t6+UK1RXFxcodolo6lTp9K2bVtef/11ABo2bIi7uzvt27dn8uTJBAUVf10fYV0+Pj6cOXPG2sWwupNXTtJ1XlfOJJ6hsldlIgZGyASRQghRDmy6JsnJyYmmTZsSERFhlh8REUGbNpZXME9PT8fOzvy27O21lZVl3kxxuzl55ST3zr6XM4lnqOFTgy1Pb5EASQghyolN1yQBjB49moEDB9KsWTNat27NzJkziYqKMjWfjR07lujoaObOnQtA7969ef755/n222/p3r07MTExjBo1ihYtWhAcHGzNWxEllJ2dzYwZMwAYOnQoTk6lO+mYrYtKiqLL3C7EpMZQ378+EQMjCPQItHaxisVggKQkSEjIT4mJkJ6enzIytJSbq6W8vPxkZ2ee7O3ByQmcnfOTiwu4u2vJwyN/6+UFej14eoKDzf8LJ4SwZTb/T0j//v2Jj4/nvffeIyYmhvr167Ny5UpCQ7UFBWNiYszmTBoyZAgpKSl89dVXvPbaa1SoUIHOnTvz0UcfWesWxE2Kjo7m5ZdfBqBXr1531bIksamx3Df3PqKSorjH9x7WDlxLgIflJubyphTEx8PJk3DqlJaio+HCBYiJ0bYXL2qBkrW5u2tBk7c3+PhoW+NjPz/w9TXfVqyobSW4EkKArN1mkazdZhvu1rXbrmRcoeOcjhyMO0ioPpTNT2+mit4601IkJsKBA7BvH+zfrz0+cUKrJSoOV9f8wKRCBa2mx81NyzduHRy0miLj1s5OC8QMBi0Za5eysyErKz9lZkJamnlKTYXkZK2G6lZ4e2sBU8WK4O+vpYCAwo8DArT7KmIciRCinJX277f8f0kIG5KclUyPn3pwMO4ggR6BrB20ttwCJKXgyBHYsgU2b4Z//oHIyKKPr1wZqlfXUpUqEBwMQUH5W19frVnMGrKzISVFC+aMzX5XruRvr1zRasPi4+HyZfOtwZDfRHj8+I2v5eSUHzAZU2Cg+XNj8vGRgEqI24kESULYiKzcLB5c8CA7L+zE19WXtQPXUsOnRple88IFWLkS/vxTC4wsLXEYGgrh4fmpTh0IC9NqgWyVk5MWpPn6lux1eXlaAHXpkpbi4rTtxYva47g47bHxeXKyFpCdP6+lG3F0LDqgKhhYBQZqtVkSUAlhXRIkCWEDlFI898dzbDy7ES9nL1Y/tZp6/vXK4Dqwdy8sXw4rVsDu3eb7XV2hZUto3x7atYPmzbUf67uFvX1+M1txZGSYB07XSwkJkJOj9d+Kjr7xuS0FVAVTwX2+vlrZhRClS4IkIWzAB5s/4KcDP2Gvs+e3x36jaXDTUj3/2bMwfz7MmwdHj5rva9ECevWCrl2hSROtFkYUj6urVtN2dRzJdWVl5QdUsbHm24IpNlbrC1aSgMrOTutwXrDfVMG+U8a+VcYA0NNTaqmEKA4JkoSwsl8O/cK49eMA+Pr+r+lavWupnDcjAxYuhB9/hI0b8/NdXKBnT+jdG+6/X/shFWXP2Vnru1WcpSELBlTGwMlSjVVcXH4/KmNzYHHLYgyYjKP6jI+vTcZmSwmexd1IgiRhs/R6vWlm9Tt1WZId53cweOlgAF5t9SpDmw295XPGxsI338C332qdkUGrNejYEQYOhEce0YbFC9tVkoAqN1f7nI2Bk7EvlTGIMuYZ89PTtSCsuP2ojDw88gMmHx/zZBzBWHAko3Hr5aXVdAlxO5IpACyQKQBEeTibeJYW37cgLi2O3vf0Zkn/Jdjb3XzHkv37Ydo0WLBAa6oBCAmBYcPgqaeK94Mr7nxpaflBkzFdvpy/vTYlJNzanFc6Xf4EnxUqaFvjc2Py8rKcPD215OWlTRkhTYTiRmQKACHuAGnZafRe0Ju4tDjCA8L5+ZGfbzpAOnIExo2DxYvz89q0gVdfhb59ZWJEYc44S3nVqsU73mDQ+kgZp0yIjzefSiEhQctLTDSfXT0hQZvLSqn8qRgKzPtbYnZ2Wm2Wh0d+8GR8bMw3pmtnYTfec8Hk5qZtnZ0l+BJFk38+hc3Kzs5m2bJlAPTp0+eOWZZEKcVLK1/iYNxBAtwD+OOJP/Bw8ijxec6cgUmTYO5c7YdMp4N+/WD0aK0zthClwc4uv1mtZs2SvTYrSwuOEhPzU1KSNnWCMXAyPk9J0bbGfSkp+XnGyUWN+0uTTpcfMLm5FU6uruaTn16bXFzMHxdMxuVzCi6nY0zSBHl7kCBJ2Kzo6Gj69esH3Fkzbv+w9wfm7p+Lnc6ORY8uKvFkkYmJMGGC1ufI2KzWty+8/z7Ur1/qxRXipjk754+0u1lKaf2ojIFUamp+AJWSkj/Temqq9tiYZ8wvuC2YsrPzz2/MK0/29tr74+RkOTk6Ft5emxwczB8bnxfcFpWMs9xfO+O9cWtM1z4vmIzrKlrKK7iv4BqMBbe3Qw2eBElClKN9sfsYsXIEAB90/oAOVTsU+7VKwaJFWjNabKyWd9998MEHUnMk7lw6XX4TWVBQ6Z03J0cbAZqergVIxq0xz7gIszGvYEpP15oSMzLytxkZ+cvlGJMxz5gKysvLv87drGDQVDDpdNd/XFReafeyliBJiHKSlJnEo788SlZeFr3u6cUbbd8o9mtPnoSXXoKICO15rVrwf/+nzW0khCg5Yw1MeY3NUUqrvTKuQWjpcXa2FrxlZWlb4/NrHxdMubnm25wcLQDLzTXfVzDPmG9cF9G4v2DetfuuTQXXVbSUV1zGNRptlQRJQpQDpRTPLH+GUwmnCNWH8mPfH7HT3bhTQm4ufPSR1pSWlaVVz7/zDrzxhvXWRRNClJxOl98fydPT2qUpe0qZB04FF6w2Pi4YVBVc1NqYr1Thxa4L5lnapqZC9+6ldx8SJAlRDr7Y8QW/H/kdRztHfnnsF3xcfW74mqgoePJJbcFZ0JrWvvmm5J1nhRCivOl01hlZW9od+6V/vRBl7MDFA7wRoTWtTes+jRaVbtyBaPFibTHZLVu0/3XOnQtr1kiAJIQQ5UlqkoQoQ1m5WQxcMpAcQw59avVhePPh1z0+PV3rmD1zpva8RQttcshq1cqhsEIIIcxIkCRsloeHBz4+PqbHt6OJGyZy4OIBKrpVZGbvmeiuM+Y1MhIefBD++0+rqn7zTXjvPa1zqRBCiPJX5kFSZmYmLi4uZX0ZcQeqWLEi8fHx1i7GTdt6bisfb/0YgBm9ZuDvXvRkMVu3anMdXboEgYEwb57WB0kIIYT1lEmfJIPBwPvvv0+lSpXw8PDg9OnTAIwbN44ffvihLC4phE1Jy05j0JJBGJSBQeGDeKjOQ0UeO38+dOqkBUhNmsCuXRIgCSGELSiTIGny5MnMmTOHjz/+2GwpiQYNGvD999+XxSXFHSgvL49//vmHf/75h7ySTLxhA96IeINTCaeo4lWFL3p8YfEYgwHGj9cWn83Ohocegk2boFKlci6sEEIIi8okSJo7dy4zZ87kySefxN4+f9HOhg0bcvTo0bK4pLgDRUVF0a5dO9q1a0fUrayMWc7WnFrDN7u+AWB2n9lUcKlQ6JicHC04ev997fmbb8Jvv2mzCgshhLANZdInKTo6mho1ahTKNxgM5BgXmxLiDpSSlcKzy58FYETzEXSp1qXQMdnZ0L8/LF2qzSMycyY8/XQ5F1QIIcQNlUlNUr169di8eXOh/F9//ZXGjRuX+HzffPMNYWFhuLi40LRpU4vnLigrK4t33nmH0NBQnJ2dqV69OrNmzSrxdYUoqQkbJnA++TzVvKvxUdePCu3PyoJHHtECJGdnWL5cAiQhhLBVZVKTNGHCBAYOHEh0dDQGg4Hff/+dY8eOMXfuXFasWFGicy1atIhRo0bxzTff0LZtW2bMmEHPnj05fPgwISEhFl/Tr18/Ll68yA8//ECNGjWIi4sjNze3NG5NiCLtjdnLFzu0/kff3P8Nbo5uZvszMuDhh2HVKnBxgWXLoFs3a5RUCCFEceiUKu01czWrV69mypQp7N69G4PBQJMmTRg/fjzdSvir0LJlS5o0acK3335ryqtTpw59+/Zl6tSphY5ftWoVjz/+OKdPnzbNsVNSycnJ6PV6kpKS8Cqv1Q9FIZGRkVS7Oovi6dOnCQsLs3KJipZnyKP1D63ZeWEn/ev1Z+GjC832p6dDnz6wdi24ucEff0DnzlYqrBBC3KFK+/e7zOZJ6t69O91vcZW57Oxsdu/ezVtvvWWW361bN7Zu3WrxNcuXL6dZs2Z8/PHHzJs3D3d3dx588EHef/99XF1dLb4mKyuLrKws0/Pk0l78RdzxZuyewc4LO/Fy9uKz7p+Z7cvK0iaJ/PtvrWP2ypVw771WKqgQQohis+kZty9fvkxeXh4BAQFm+QEBAcTGxlp8zenTp9myZQsuLi4sWbKEy5cv89JLL3HlypUi+yVNnTqVSZMmlXr5xd0hJiWGsX+PBWBK5ykEeQaZ9hkMMGSIFiB5eGhNbW3bWqmgQgghSqTUgiRvb+/rLrlQ0JUrV0p07mvPq5Qq8loGgwGdTsf8+fPR6/UATJs2jUcffZSvv/7aYm3S2LFjGT16tOl5cnIyVapUKVEZRenz8PDA09PT9NhWvbr6VZKzkmke3JxhzYaZ7XvrLVi4UBvFtmSJjQZIBgNcuaKlpCRITMzfpqdrnakyM/O3OTmQl5efDAZtHRV7e7Czy09OToWTiwu4uuYnNzetes2YPDzyt87O1n5nhBB3uVILkj7//PPSOpWJn58f9vb2hWqN4uLiCtUuGQUFBVGpUiVTgARaHyalFOfPn6emhWXUnZ2dcZZ/kG1OxYoVbb7pc/XJ1Sw6tAg7nR0zes3A3i5/XrD/+z/45BPt8axZVppFOy8PLlzQFoaLjIQzZ7R04QJcvKilS5e042yNo6MWLHl4gKdn/vba5OWVvy0qublpgZwQQpRAqQVJgwcPLq1TmTg5OdG0aVMiIiJ46KH8ZR0iIiLo06ePxde0bduWX3/9ldTUVFPtw/Hjx7Gzs6Ny5cqlXkZx98rOy2bEXyMAeLnFyzQOyp/e4vff4ZVXtMcffAADB5ZDgS5ehH374ODB/HT4sNYpqji8vKBCBdDr87fu7ua1Py4uWrWYvX1+srs6k4jBkJ/y8rQap+zs/JSVpdVGFUzp6VpKTYW0NC0Zy5uTAwkJWrpV9vba/en1+dsbJeN7YEweHhJoCXGXKZM+Sfb29sTExODvb76gZ3x8PP7+/iVaYmL06NEMHDiQZs2a0bp1a2bOnElUVBTDhmnNGmPHjiU6Opq5c+cCMGDAAN5//32efvppJk2axOXLl3n99dd55plniuy4LWxTXl6eaabtkJAQs9nbbcHX/37NySsnCfQI5L1O75ny//kHnnwSlIJhw2Ds2DK4uFJw7Bhs2ZKfTp2yfKyDA4SGQtWqEBambStXhoCA/FSxolZzYwtycrRgKTVVSykpWir4uGBKTs7fWkpKaUHbrQZcBQMtS0HUtQHYtbVZxtouW3mfhRA3VCZBUlGzCmRlZZmt5VYc/fv3Jz4+nvfee4+YmBjq16/PypUrCQ0NBSAmJsZsyQoPDw8iIiIYOXIkzZo1w9fXl379+jF58uSbvyFhFVFRUTY7BcCVjCu8v0lbU2Ryp8l4Omt9p86dg759ta47vXtrTW6lVvmQnq71AF++HFasgGsHL+h0cM890KCBeQoL037gbxeOjloAUqHCrZ9LKS24MgZMSUn52+ulgv2ykpLy+1+VRs2Wk1PhJkNjs2LBPlnX9tMypoL9uIyP3dy0PlxS0yVEqSrVIOnLL78EtI7W33//vVln27y8PDZt2kTt2rVLfN6XXnqJl156yeK+OXPmFMqrXbs2ERERJb6OEMX13sb3SMhMoGFAQ4Y0GgJoLUr9+sHly9CoESxYoFXi3JLUVFi8WGu/i4jQmqiMXFygZUto105LrVqVTmBxJ9Hp8gORm105WCktQC0YNFkKqiwFYgVruIyfXXY2xMdrqTTZ2eUHTcZO8QVTwTzjY0vb4iQnJwnIxF2hVIOkzz7T5odRSjF9+nSz5hEnJyeqVq3K9OnTS/OSQpS74/HH+Xrn1wB82u1TU2ft11+H7du1OGXx4ltYrFYp2LEDfvhBGxqXmpq/LyREm5XywQe1yZZKWDMrboJOl19zExx88+fJybHcfGhsVizYvGjsn2Xsq2Xcpqfn70tL0wKv7Gzt/AZD/jnKmk6nBenXS87OWir42NlZ+5u9duvkpNUgGrc3Sg4O5o+Nz42PCyZjvzkJ6sRNKNUgKTIyEoBOnTrx+++/4+3tXZqnF8ImvLn2TXINuTxQ8wHuq6YNWVu0CK5WpDJ3LlxtJSyZ9HT4/nuYMUPrcG1Uo4bW87tPH2jYUP6xv105OoK3t5ZKU05Ofid4YyBVMBmDKeN0Dsb8a/Ou7VBf8LlxCgiDQbumUvn7bheWgqeC22vzrt1/K/sKpmvzinPMtcnOrui8622NwWLBx8Z0o+fGf3euzbOUintcUccWzDM+tpIy6ZPUqVMni0PqMzIy+OSTTxg/fnxZXFaIMrfhzAaWHl2Kvc6eT7pq4/uPHoXnntP2v/WW1hepRJKT4ZtvYNo0bTg+aE0ajz4Kzz6r1RhJYCSKYqxRKesllJTKD8gyM83nzsrI0EYlGvONIxmzsgon40jHglvjSMiCW2Mq+Dw313xrfFwwFeVG+8Xt4XoBVllcrizWbivN0W3WIGu32QZbW7vNoAw0/645e2L28FKzl/j6ga9JTdW6BR0+DJ06wZo1JeiHdOWKVv30xRdanxbQOlm/9ho89ZQ2QkoIUXzGkYx5eYWDpxvlGR9b2l6bVzDfUp6l1xf1/Nq8m0nGaTcKbq/NUyo/3/g+KZWfX3BbnGSjkgE92PbabUXNiL1///6bXnRWCGv76cBP7InZg5ezFxM7TgTgxRe1ACkoqAQdtXNztSa1d9/ND45q14a334YnniiF3t5C3KV0uvymM5kguHz8f3v3HldVlf9//HUOCAcvoICAeCFUdCzIvuKkaHaP0qlE6xt208Yuwy9NkWiSrBSn0bLJsYuXmrJyxszvlN1G56d8M+/plJJdhhovFKYwBBooIMhhf//YcobLQVHP4Rzh/Xw89oO911l77c9hu/Xj2nuvdSZJlSvKTrdeWgqxsS77ei7927h2ahKLxUK/fv3qJUp2u51jx445xjcSOZ2AgABsNptj3ZMqqyt5fP3jAMwYMYOuHbryzjvwl7+Yt/tXrjSHGzqtrVth0iTYvdvcjouDJ56AsWPPr9f0RUTArbe6zoqLZ2lwaZK0YMECDMNg4sSJZGZm1psapPbttoSEBFceUlqxiIgIKrzkwdDXv3idA6UHiOwUyZQhUygsNHuRwHwOacSI0zRQUAC//S38+c/mdpcu5lDcDzyg5EhExEu5NEmqnZokOjqaYcOG0U4jy0orUFldyZzNcwDIuCwDfx8bDz5ojodU2xF0Sh98ABMnms8gWSzmU95z5kBoqPuDFxGRs+aWhx+uuOIK7HY77777Ljk5OVgsFi688EJuvvlmr5taQuR06vYi3TfoPt5+2xwHydfXfN2/yUcfjh+H9HRYaI6pxKBBsGQJ/PKXLRa7iIicPbckSXv37mXUqFEcPHiQ/v37YxgG//rXv+jZsyerV6+mT58+7jistDLe8HZbw16kIz/ZmDTJ/OyJJ8yRtZ3KyYFx4+DLL83t9HTz9poGfxQROW9Y3dHolClT6NOnDwcOHGDXrl1kZ2eTl5dHdHQ0U6ZMccchRdxiafZSRy/Svf91H7/5jTl116BBp5i49s03YfBgM0EKC4O//x2efVYJkojIecYtPUkbN25k+/bt9V73DwkJ4emnn2b48OHuOKSIy1VWVzJny396kf66wsZHH5nj9r35ppPJ3A0DMjPNBeDaa80HtSMiWjZwERFxCbckSf7+/hw9erRR+bFjx/DT/6blPLE0eyk/lv5IZKdIxkTdx8UjzfLMTCfDcFRXQ0qKOd8awIwZMHu2ObS/iIicl9zyN/iNN97IAw88wI4dOzAMA8Mw2L59OykpKdx8883uOKSISzXsRXpqlo3Dh8232R55pEHlsjJISjITJKvVfDj7qaeUIImInOfc8rf4Cy+8QJ8+fUhISMBms2Gz2Rg+fDh9+/bl+eefd8chRVyqbi/SYOt9vPyyWf7iiw0GxP7pJ7j6ali92pztfNUq+M1vPBKziIi4lstvtxmGQUlJCStWrODQoUPk5ORgGAYXXnghffv2dfXhRFyuuqaaZ7Y+A8D04Rmkp9owDEhOhiuuqFOxqMgsyMmB4GD46CMYNswzQYuIiMu5JUmKiYnhm2++ISYmRomRnLWAgADHM2wtOS3JO/98hx9KfqBr+650+O5etm6F9u3hD3+oU+noURg1ykyQuneH//1fc/41ERFpNVyeJFmtVmJiYiguLiYmJsbVzUsbEhERQWVlZYse0zAMnt32LAD3D5zM4/eYydmMGdCjx8lKlZXmXGuffQYhIZCVpQRJRKQVcsszSfPmzeORRx7h66+/dkfzIm6z8YeN7Mrfhc3XRsn/Pkh+PvTpAw8/fLKC3Q533WX2HHXoAGvWwIABHo1ZRETcwy1DANx1112Ul5czcOBA/Pz8Gt0qOXz4sDsOK3LO/rDNvKc25oJf88qvzbnVFiw4OfWIYcCDD8I775iDJL3/Plx6qcdiFRER93JLkrRgwQJ3NCttTEtPS5LzUw6r96zGgoX8VdM4ccJ87OjGG09WmDkTXnnFnKT2rbfMwSJFRKTVckuSNGHCBHc0K+JW8z+dD8Dl4aPZsCoGHx/44x9Pfvjhh/C735nrS5bArbd6JkgREWkxbkmSAGpqati7dy+FhYXU1NTU++zyyy9312FFzkrBsQKWfbkMgBMb0wG4807o1w/IzYXaxH/qVHjgAQ9FKSIiLcktD25v376dvn37MmDAAC6//HKuvPJKx3LVVVedcXuLFi0iOjoam81GfHw8mzdvbtZ+W7duxdfXl0uanKpdxLTwHwupslcR12Uo294ehtVqvtHG8eNmr9HPP8PQoTBvnqdDFRGRFuKWJCklJYXBgwfz9ddfc/jwYY4cOeJYzvSh7ZUrV5KamsqMGTPIzs5mxIgRjBw5kry8vFPuV1JSwvjx47nmmmvO5atIG1BWVcaizxcBYNuZDli4/faTvUjTpsGuXear/itXguYeFBFpMyyGYRiubrRDhw7s3r3bJQNJDhkyhEGDBrF48WJH2YABA0hKSmLu3LlN7jdu3DhiYmLw8fHh/fff54svvmj2MUtLSwkKCqKkpITAwMBzCV/OQUs9uL3wHwuZ/PfJ9Gjfmx8f/RcWfPjnP+EXO5ebr/tbLOar/jfc4Jbji4iIa7j632+39CQNGTKEvXv3nnM7VVVV7Ny5k8TExHrliYmJbNu2rcn9Xn/9dfbt28fMmTObdZzKykpKS0vrLdI22GvszN9uPrAdsmcaGD4kJ8Mvav75n2ePHn9cCZKISBvksge3v/zyS8f6Qw89xMMPP0xBQQFxcXG0a9euXt2LL764WW0WFRVht9sJDw+vVx4eHk5BQYHTffbs2cP06dPZvHkzvr7N+3pz584lMzOzWXWl5fj5+eHj4+NYd4f3vn2P/Uf2E+QXzO43fo3FAo9Pr4Y77oDycrjmGvPVfxERaXNcliRdcsklWCwW6t69mzhxomO99jOLxYLdbj+jti0WS73t2nYastvt3HHHHWRmZtKvX79mt5+RkUFaWppju7S0lJ49e55RjOJ63bt3p7q62m3t152CJPLgg5Sc6MCt/w0XrX8Rdu82J61dvhxOJmoiItK2uCxJys3NdVVTDqGhofj4+DTqNSosLGzUuwRw9OhRPv/8c7Kzs5k8eTJgDkVgGAa+vr6sW7eOq6++utF+/v7++Pv7uzx+8W5b8rbwj4P/wM/qT86b5p+XJ+4vgLFPmhWeeQac/DkTEZG2wWVJUlRUFBMnTuT555+nU6dOLmnTz8+P+Ph4srKyGDNmjKM8KyuL0aNHN6ofGBjIV199Va9s0aJFrF+/nnfeecftIzbL+eUPn5pTkPQ8PJ59x8IZOxbiXnkIjh2DhASo0xMqIiJtj0sf3H7zzTepqKhwZZOkpaXx6quvsnTpUnJycpg2bRp5eXmkpKQA5q2y8ePHA2C1WomNja23hIWFYbPZiI2NpUOHDi6NTdwrNzcXi8WCxWJxeU/lt0Xf8uF3H2LBwv7l5uy1T1y91ZyXzcfHHFXb6pb3GkRE5Dzh0hG33TCaAMnJyRQXFzN79mzy8/OJjY1lzZo1REVFAZCfn3/aMZNEGnpu23MARB2/me9/6s/IRDuXzDeTbaZOhWa+XCAiIq2XS8dJslqt/Pvf/6Zr166uatIjNE6Sd3DXOEkFxwqIWhBFlb2Kdn/ezIl9l7Fx/Gtcvuw+6N4dcnLARbeMRUSk5bj632+Xz93Wr18/p2+e1XWmo26LuNJL/3iJKnsVkTVDObRvOAn/VcGIFQ+aHy5YoARJREQANyRJmZmZBAUFubpZEZcoqypj0WfmFCRHVptTkEy3zMNyosocMPKWWzwboIiIeA2XJ0njxo0jLCzM1c2KuMTS7KUcOX6EEEtfinclcVF0GTfuygRfX3jxRXMKEhEREVz8dtvpbrOJeFJldSXzts0z1zeYU5A86r8AK4b5ur8L5hoUEZHWw+vfbpO2y8/PD+vJ1/BdMS3Ja9mv8WPpjwRZIynZPJFeYRWM+3YW+PmZ87OJiIjU4dIkqaamxpXNSRvXvXv3M57CpinHq4/z+82/B8B32wyotpHe/jnaUQ0pU0DT0IiISAMaLU/ahFd2vsKho4cI8e1Jcda9hAZWcu/3T0BAAGRkeDo8ERHxQkqSpNWrOFHB3C1zAfDb/jjY/ZnS4TXaUwGTJ0NEhIcjFBERb6QkSbxWXl6eY1qScxlVfcnnSyg4VkCobxT5f7+Hzh2qeCj/MejYEX77WxdGLCIirYmSJPFadZ9HOttnk8qqynh669MAWDc/AXY/HumwmM6UwLRpEBrqklhFRKT1UZIkrdrizxdTWFZIV5/eFGaNJ7TTcaYUzoDOnSEtzdPhiYiIF1OSJK3WsapjPLP1GQDsnzwJNe3I8JtPR8ogPd1MlERERJqgJElarRd2vEBReRFdrTEc3nAnkUHH+H/Fv4PwcJg61dPhiYiIl3P5tCQi3iD3SK5jXKSqrJlQ48vj9tkEcBxmzjcf2hYRETkF9SRJq2MYBimrUyg/UU4f65WUbL6DqKCfuffYAnPqkfvu83SIIiJyHlBPkngtHx8fx3yAPj4+zd7vra/eYt2+dfj7+FP8xsuAhZnHM/DjBMyZA+3auSliERFpTZQkidfq1avXGU91U1ReROraVACG259g/b5+xAQVcnfJn2DwYLj1VjdEKiIirZFut0mr8vC6hykqLyImKJYtzzwCwO+OpuKLHZ55Bk72TImIiJyOkiRpNbL2ZbFs9zIsWPBf+ypVFX6M7JbNbTUr4Prr4eqrPR2iiIicR5QkidfKy8vDarVitVpPOy1J+YlyUlanAHCZ32S+/v9D6NTBzsv5N2MBePpp9wcsIiKtipIk8Vp2ux3DMDAM45TTkhiGwUNrHmL/kf1EtO/B5/PMV/+fDf8DPfkR7rwTLrmkhaIWEZHWQkmSnNcMw2DK36ew9IulWLAQtuNlKn7uxJW987h/fwZ06mS+0SYiInKGzoskadGiRURHR2Oz2YiPj2fz5s1N1l21ahXXXXcdXbt2JTAwkISEBNauXduC0UpLMQyDh9c9zEufvYQFCxM6v86X744iwFbDqweux4oBCxZAr16eDlVERM5DXp8krVy5ktTUVGbMmEF2djYjRoxg5MiRTT6jsmnTJq677jrWrFnDzp07ueqqq7jpppvIzs5u4cjFnQzDIOPjDP64/Y8APD38Zd59YgIAvw/5I31OfAu/+hX8+teeDFNERM5jFsMwDE8HcSpDhgxh0KBBLF682FE2YMAAkpKSmDt3brPauOiii0hOTubJJ59sVv3S0lKCgoIoKSkhMDDwrOKWc5ebm0vv3r0B2L9/P9HR0Y7PZn4yk9mbZgMw74qFvP3wg+zaBUN7HGDLjxfgE9wZvv4aunXzROgiIuIBrv7326sHk6yqqmLnzp1Mnz69XnliYiLbtm1rVhs1NTUcPXqU4ODgJutUVlZSWVnp2C4tLT27gMWtyqrKeO/b91i2exlZ+7MAeGr4ApanPsju3dC1ywnePJSIDzWwaJESJBEROSdenSQVFRVht9sJDw+vVx4eHk5BQUGz2njuuecoKyvjtttua7LO3LlzyczMPKdYxbUMw+B4zXHzhrAV0jels/bgWspOlAFgwcKTCc+yInUq33wD4eEG6zuMpd+Rb+G22yA52bNfQEREzntenSTVsjQYJdkwjEZlzqxYsYJZs2bxwQcfEBYW1mS9jIwM0tLSHNulpaX07NmTZ7c+i38Hf2qMGvNVdMzX0WuMGsd6U2UN92nOz9rvVu+zJuoDTZbVbcdZm7Vlddtw/G6dfF53u+E5sWDBarFisZz8WWe74bqz30+lvZLj1ceprDZ/lp8o53DFYYoriqmyV8HJO6Srvl8FQJ8ufbj74ru5LuIu7h3Th2+/hchIg/Xxv6X/R3+D8HCzF0lEROQceXWSFBoaio+PT6Neo8LCwka9Sw2tXLmSe++9l7/+9a9ce+21p6zr7++Pv79/o/KnNj0FtjOPW1zH38ef8I7hjOo7ivEDxzOk+1B27bJwx82wZw/07FHD+pgU+n70J/DxgaVLISTE02GLiEgr4NVJkp+fH/Hx8WRlZTFmzBhHeVZWFqNHj25yvxUrVjBx4kRWrFjBr371q7M+/viB47F1sDl6Qur2lpyurCV+Qv0enYbrDctq659u34b16tat1bAnqrYnrcaoqdeLVrteY9Q47W2y+drw9/HH5mtzLMEBwYS0DyEkIIT27dpjsVjIy4O//Bnu/Qvk5JgxRPW080nXZKI/eRdsNvif/4FRo876fIuIiNTl1UkSQFpaGnfffTeDBw8mISGBV155hby8PFJSzCkoMjIyOHjwIMuWLQPMBGn8+PE8//zzDB061NELFRAQQFBQ0BkdO77wRfz9A6mpAcOAmhoc67XbdX82XG+41KvXRB1nCzRdVvezMylrWH4m9eo6m3qnK6tdKioK+dvfQgALcBAwH7632SApsZx5OTfRc9d66NwZ/vY3GD68cYMiIiJnyeuTpOTkZIqLi5k9ezb5+fnExsayZs0aoqKiAMjPz683ZtLLL79MdXU1kyZNYtKkSY7yCRMm8MYbb5zRsadOdclXkHNS+9ZhNVdeCXf/dwW3dFhL0BNT4MABiIyEtWshNtaTQYqISCvk9eMkeULtOAujRpXg5xeI1QoWi7lYrf9Z6pbVrp+qzBULOF9vWOasXsOyhuWuKGv42ZnUq1tmsUBR0QEyM83RsrekL2D4N2vh44+hqsqs2L+/mSCdTJhFRKRtc/U4SUqSnHD8kpcvJ9Bm+899toZLc+7BNfde3Onut0Hz7481rH82ZadSmwHW/Wm1mg9OnyqDbPj7s9uhosJcjh83f5aVweHDUFRE7qFD9P73vwHYDziGkuzbF8aMgUcf1UPaIiLi0KYGk/S4O+/0dARS6+KLYdw4GD0aBgxw3gUlIiLiQkqSTuXSS8HPr37vSFP325oqO9N7cND8e2y1zuVe2KnKnGmqx8xur99D5Kxew94mqxUCAuov7dtDcDCEhpq31ZKSzOO+/z7UmZZERETE3ZQknUpWFmjuNs/JzfV0BCIi0oZZPR2AiIiIiDdST5J4rejo6EbToYiIiLQU9SSJiIiIOKEkSURERMQJJUnitQ4ePIivry++vr4cPHjQ0+GIiEgbo2eSxGtVVVVht9sd6yIiIi1JPUkiIiIiTihJEhEREXFCSZKIiIiIE0qSRERERJxQkiQiIiLihJIkERERESc0BIB4LU1LIiIinqSeJBEREREnlCSJiIiIOKEkSbxWQUEB/v7++Pv7U1BQ4OlwRESkjdEzSeK1KioqHNORVFRUeDgaERFpa9STJCIiIuKEkiQRERERJ86LJGnRokVER0djs9mIj49n8+bNp6y/ceNG4uPjsdls9O7dmyVLlrRQpCIiItJaeH2StHLlSlJTU5kxYwbZ2dmMGDGCkSNHkpeX57R+bm4uo0aNYsSIEWRnZ/PYY48xZcoU3n333RaOXERERM5nFsPLR+sbMmQIgwYNYvHixY6yAQMGkJSUxNy5cxvVf/TRR/nwww/JyclxlKWkpLB7924+/fTTZh2ztLSUoKAgSkpKCAwMPPcvIWclNzeX3r17A7B//36io6M9HJGIiHgzV//77dVvt1VVVbFz506mT59erzwxMZFt27Y53efTTz8lMTGxXtn111/Pa6+9xokTJ2jXrl2jfSorK6msrHRsl5SUAOYvWzzn6NGj9dZ1PkRE5FRq/51wVf+PVydJRUVF2O12wsPD65WHh4c3OW5OQUGB0/rV1dUUFRXRrVu3RvvMnTuXzMzMRuU9e/Y8h+jFlQYOHOjpEERE5DxRXFxMUFDQObfj1UlSLYvFUm/bMIxGZaer76y8VkZGBmlpaY7tn3/+maioKPLy8lzyS5azV1paSs+ePTlw4IBufXoBnQ/voXPhPXQuvEdJSQm9evUiODjYJe15dZIUGhqKj49Po16jwsLCRr1FtSIiIpzW9/X1JSQkxOk+taM6NxQUFKQ/8F4iMDBQ58KL6Hx4D50L76Fz4T2sVte8l+bVb7f5+fkRHx9PVlZWvfKsrCyGDRvmdJ+EhIRG9detW8fgwYOdPo8kIiIi4oxXJ0kAaWlpvPrqqyxdupScnBymTZtGXl4eKSkpgHmrbPz48Y76KSkp/PDDD6SlpZGTk8PSpUt57bXXSE9P99RXEBERkfOQV99uA0hOTqa4uJjZs2eTn59PbGwsa9asISoqCoD8/Px6YyZFR0ezZs0apk2bxsKFC4mMjOSFF17glltuafYx/f39mTlzptNbcNKydC68i86H99C58B46F97D1efC68dJEhEREfEEr7/dJiIiIuIJSpJEREREnFCSJCIiIuKEkiQRERERJ5QkObFo0SKio6Ox2WzEx8ezefNmT4fU5syaNQuLxVJviYiI8HRYbcKmTZu46aabiIyMxGKx8P7779f73DAMZs2aRWRkJAEBAVx55ZV88803ngm2DTjd+bjnnnsaXStDhw71TLCt2Ny5c/nlL39Jp06dCAsLIykpie+++65eHV0bLaM558JV14WSpAZWrlxJamoqM2bMIDs7mxEjRjBy5Mh6wwxIy7jooovIz893LF999ZWnQ2oTysrKGDhwIC+99JLTz+fNm8f8+fN56aWX+Oyzz4iIiOC6666rNyGxuM7pzgfADTfcUO9aWbNmTQtG2DZs3LiRSZMmsX37drKysqiuriYxMZGysjJHHV0bLaM55wJcdF0YUs+ll15qpKSk1Cv7xS9+YUyfPt1DEbVNM2fONAYOHOjpMNo8wHjvvfcc2zU1NUZERITx9NNPO8qOHz9uBAUFGUuWLPFAhG1Lw/NhGIYxYcIEY/To0R6Jpy0rLCw0AGPjxo2GYeja8KSG58IwXHddqCepjqqqKnbu3EliYmK98sTERLZt2+ahqNquPXv2EBkZSXR0NOPGjWP//v2eDqnNy83NpaCgoN414u/vzxVXXKFrxIM2bNhAWFgY/fr14/7776ewsNDTIbV6JSUlAI6JVHVteE7Dc1HLFdeFkqQ6ioqKsNvtjSbPDQ8PbzRprrjXkCFDWLZsGWvXruVPf/oTBQUFDBs2jOLiYk+H1qbVXge6RrzHyJEjWb58OevXr+e5557js88+4+qrr6aystLTobVahmGQlpbGZZddRmxsLKBrw1OcnQtw3XXh9dOSeILFYqm3bRhGozJxr5EjRzrW4+LiSEhIoE+fPrz55pukpaV5MDIBXSPeJDk52bEeGxvL4MGDiYqKYvXq1YwdO9aDkbVekydP5ssvv2TLli2NPtO10bKaOheuui7Uk1RHaGgoPj4+jbL+wsLCRv87kJbVoUMH4uLi2LNnj6dDadNq3zDUNeK9unXrRlRUlK4VN3nooYf48MMP+eSTT+jRo4ejXNdGy2vqXDhztteFkqQ6/Pz8iI+PJysrq155VlYWw4YN81BUAlBZWUlOTg7dunXzdChtWnR0NBEREfWukaqqKjZu3KhrxEsUFxdz4MABXSsuZhgGkydPZtWqVaxfv57o6Oh6n+vaaDmnOxfOnO11odttDaSlpXH33XczePBgEhISeOWVV8jLyyMlJcXTobUp6enp3HTTTfTq1YvCwkKeeuopSktLmTBhgqdDa/WOHTvG3r17Hdu5ubl88cUXBAcH06tXL1JTU5kzZw4xMTHExMQwZ84c2rdvzx133OHBqFuvU52P4OBgZs2axS233EK3bt34/vvveeyxxwgNDWXMmDEejLr1mTRpEm+99RYffPABnTp1cvQYBQUFERAQgMVi0bXRQk53Lo4dO+a66+Kc349rhRYuXGhERUUZfn5+xqBBg+q9VigtIzk52ejWrZvRrl07IzIy0hg7dqzxzTffeDqsNuGTTz4xgEbLhAkTDMMwX3WeOXOmERERYfj7+xuXX3658dVXX3k26FbsVOejvLzcSExMNLp27Wq0a9fO6NWrlzFhwgQjLy/P02G3Os7OAWC8/vrrjjq6NlrG6c6FK68Ly8kDioiIiEgdeiZJRERExAklSSIiIiJOKEkSERERcUJJkoiIiIgTSpJEREREnFCSJCIiIuKEkiQRERERJ5QkiYiIiDihJElEzguzZs3ikksuafHjbtiwAYvFgsViISkpqVn7zJo1y7HPggUL3BqfiLiPkiQR8bjahKKp5Z577iE9PZ2PP/7YYzF+9913vPHGG82qm56eTn5+/mlnJhcR76YJbkXE4/Lz8x3rK1eu5Mknn+S7775zlAUEBNCxY0c6duzoifAACAsLo3Pnzs2qWxurj4+Pe4MSEbdST5KIeFxERIRjCQoKwmKxNCpreLvtnnvuISkpiTlz5hAeHk7nzp3JzMykurqaRx55hODgYHr06MHSpUvrHevgwYMkJyfTpUsXQkJCGD16NN9///0Zx/zOO+8QFxdHQEAAISEhXHvttZSVlZ3jb0JEvImSJBE5b61fv55Dhw6xadMm5s+fz6xZs7jxxhvp0qULO3bsICUlhZSUFA4cOABAeXk5V111FR07dmTTpk1s2bKFjh07csMNN1BVVdXs4+bn53P77bczceJEcnJy2LBhA2PHjkXzhYu0LkqSROS8FRwczAsvvED//v2ZOHEi/fv3p7y8nMcee4yYmBgyMjLw8/Nj69atALz99ttYrVZeffVV4uLiGDBgAK+//jp5eXls2LCh2cfNz8+nurqasWPHcsEFFxAXF8eDDz7o0duBIuJ6eiZJRM5bF110EVbrf/6vFx4eTmxsrGPbx8eHkJAQCgsLAdi5cyd79+6lU6dO9do5fvw4+/bta/ZxBw4cyDXXXENcXBzXX389iYmJ3HrrrXTp0uUcv5GIeBMlSSJy3mrXrl29bYvF4rSspqYGgJqaGuLj41m+fHmjtrp27drs4/r4+JCVlcW2bdtYt24dL774IjNmzGDHjh1ER0efxTcREW+k220i0mYMGjSIPXv2EBYWRt++festQUFBZ9SWxWJh+PDhZGZmkp2djZ+fH++9956bIhcRT1CSJCJtxp133kloaCijR49m8+bN5ObmsnHjRqZOncqPP/7Y7HZ27NjBnDlz+Pzzz8nLy2PVqlX89NNPDBgwwI3Ri0hL0+02EWkz2rdvz6ZNm3j00UcZO3YsR48epXv37lxzzTUEBgY2u53AwEA2bdrEggULKC0tJSoqiueee46RI0e6MXoRaWkWQ++siog0acOGDVx11VUcOXKk2YNJ1rrgggtITU0lNTXVLbGJiHvpdpuISDP06NGD22+/vVl158yZQ8eOHcnLy3NzVCLiTupJEhE5hYqKCg4ePAiY041EREScdp/Dhw9z+PBhwHxr7kwfChcR76AkSURERMQJ3W4TERERcUJJkoiIiIgTSpJEREREnFCSJCIiIuKEkiQRERERJ5QkiYiIiDihJElERETECSVJIiIiIk78H3vP1+cpuiDYAAAAAElFTkSuQmCC", "text/plain": [ "
" ] @@ -791,7 +759,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "
" ] @@ -804,7 +772,7 @@ "# Compute the equilibrium throttle setting for the desired speed\n", "X0, U0, Y0 = ct.find_eqpt(\n", " cruise_pi, [vref[0], 0], [vref[0], gear[0], theta0[0]],\n", - " y0=[0, vref[0]], iu=[1, 2], iy=[1], return_y=True)\n", + " y0=[0, vref[0]], iu=[1, 2], iy=[1], return_outputs=True)\n", "\n", "# Now simulate the effect of a hill at t = 5 seconds\n", "plt.figure()\n", @@ -834,7 +802,7 @@ "outputs": [ { "data": { - "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", + "image/png": "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", "text/plain": [ "
" ] @@ -875,7 +843,7 @@ "outputs": [ { "data": { - "image/png": "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KtIxici02KeJiMo9Hx8fKJVKREVFoU6dOjpLjRo18t3v/PnzOi1ahSVJEtq1a4dZs2YhPDwclpaW2Lp1a5GPR0SmxZYmIir37OzsMGnSJEycOBEajQbt27dHYmIijh49CltbWwwdOjTP/TQaDc6dO4c7d+7AxsamUEMEnDhxAvv27UNAQACqVq2KEydO4N69e2jQoIGhXhYRGRlbmoioQpg9ezamT5+OoKAgNGjQAD169MDOnTsLvFT2+eefY9OmTahWrRo+++yzQp3P3t4eBw8eRK9evVCvXj1MmzYN33zzDXr27Fncl0JEJiIJ3v9KRFQsnTt3RtOmTfHdd98Vel9JkrB161a9Rh0nItNiSxMRkQEsWbIEtra2OH/+vF7lR44cCVtb2xKOiogMiS1NRETFdPv2baSkpAAAPDw8YGlp+dx94uLikJiYCABwc3ODjY1NicZIRMXHpImIiIhID7w8R0RERKQHJk1EREREemDSRERERKQHJk1EREREemDSRERERKQHJk1EREREemDSRERERKQHJk1EREREemDSRERERKQHJk1EREREevh/yZyV8OmKCtcAAAAASUVORK5CYII=\n", + "image/png": "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CE5ERGRgS5YsQVZWFlq1aoXg4GBcvnwZFy9exMKFC+Hv749u3bqhSZMmePPNN3H27FmcPHkSQ4YMQadOndCiRQujx1unTh1s2bIFERER+Pvvv/HGG2/kar16njfeeANmZmZ4++23ceHCBfz555/4+uuvdcqMGTMGDx8+xMCBA3Hy5Elcu3YNe/bswfDhw5GVlQVbW1u8/fbb+PDDD7Fv3z78888/GDZsmM7lSFMqHVEQERGVI15eXjh79iy6dOmCDz74AI0aNUL37t2xb98+LF26FJIkYdu2bahcuTI6duyIbt26oVatWti0aZNJ4v32229RuXJltG3bFn379kWPHj3QvHnzQh3D1tYWO3fuxIULF9CsWTNMnTo112U4d3d3HDlyBFlZWejRowcaNWqE8ePHw8HBQZsYffXVV+jYsSP+97//oVu3bmjfvj38/PwM9lqLQxL6XISs4BITE+Hg4ICEhATY29ubOpwiSU9Px4IFCwAA48eP51QqRERU7hn6+5tJkx7KQ9JERERU0Rj6+5uX54iIiIj0wLvnKoisrCycPXsWgHz3gvmzt+USERFRgZg0VRCpqalo1aoVAPlW0ryG9iciIqL88fIcERERkR6YNBERERHpgUkTERERkR6YNBERERHpgUkTERERkR6YNBEREZVBM2fORNOmTbXrw4YNQ79+/Yp1zNDQUEiShPj4+GIdp7zikAMVhEKhwIwZM7SPiYioZB09ehQdOnRA9+7dsXv37hI/34IFC8BJPkoWk6YKwtLSEjNnzjR1GEREFcaqVaswbtw4/Pjjj4iKioKHh0eJns/BwaFEj0+8PEdERGRwarUav/76K0aNGoU+ffpgzZo12ueyL4H98ccf8PX1hZWVFVq3bo3z589ry6xZswaVKlXCtm3bUK9ePVhZWaF79+6Ijo7O95zPXp4TQmDevHmoVasWVCoVfH198dtvv+ns8+eff6JevXpQqVTo0qULbty4Yai3oFwqc0nTwYMH0bdvX7i7u0OSJGzbtq3A8tkfzmeXf//91zgBlxIajQaRkZGIjIyERqMxdThERIUmBKBWm2Yp7FWvTZs2wdvbG97e3hg0aBBWr16d69LZhx9+iK+//hqnTp1C1apV8b///Q8ZGRna55OTk/HFF1/gp59+wpEjR5CYmIjXX39d7ximTZuG1atXY+nSpYiMjMTEiRMx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8irSMYnItNiniYjKPR8fHyiVSkRFRaFOnTo6S40aNfLd7/z58zotWoUlSRLatWuHWbNmITw8HJaWlti6dWuRj0dEpsWWJiIq9+zs7DBp0iRMnDgRGo0G7du3R2JiIo4ePQpbW1sMHTo0z/00Gg3OnTuHO3fuwMbGplBDBJw4cQL79u1DQEAAqlatihMnTuDevXto0KCBoV4WERkZW5qIqEKYPXs2pk+fjqCgIDRo0AA9evTAzp07C7xU9vnnn2PTpk2oVq0aPvvss0Kdz97eHgcPHkSvXr1Qr149TJs2Dd988w169uxZ3JdCRCYiCd7/SkRULJ07d0bTpk3x3XffFXpfSZKwdetWvUYdJyLTYksTEZEBLFmyBLa2tjh//rxe5UeOHAlbW9sSjoqIDIktTURExXT79m2kpKQAADw8PGBpafncfeLi4pCYmAgAcHNzg42NTYnGSETFx6SJiIiISA+8PEdERESkByZNRERERHpg0kRERESkByZNRERERHpg0kRERESkByZNRERERHpg0kRERESkByZNRERERHpg0kRERESkByZNRERERHr4f8mclfDpigrXAAAAAElFTkSuQmCC", "text/plain": [ "
" ] @@ -918,9 +886,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.6" + "version": "3.13.1" } }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 4 } diff --git a/examples/describing_functions.ipynb b/examples/describing_functions.ipynb index fc7185901..617920e8e 100644 --- a/examples/describing_functions.ipynb +++ b/examples/describing_functions.ipynb @@ -46,7 +46,7 @@ "outputs": [ { "data": { - "image/png": "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M7y9vZV9IiIiYGVlhf79++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", + "image/png": "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", "text/plain": [ "
" ] @@ -69,17 +69,9 @@ "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": "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16+fTi5zTkxMRHh4OC5evIjffvsN8+fPx/jx4zWa19HREebm5ti+fTtu376NjIwMAECnTp2wZcsWbNmyBRcuXMCYMWPUChdvb29069YNb731Fg4fPozjx49j5MiRMDc3V03TpUsXBAYGIiwsDDt27EB8fDwOHDiA//73vzh27FiJeSIiItCjRw80bdpU7XfVt29fODg44Ndffy37L4qInonFDRFpJCIiAl26dIG1tXWx1/r27YuTJ0/ixIkTL7SOwYMH48GDB2jZsiXeffddvPfee3j77bc1mtfExATz5s3Djz/+CFdXV/Tp0wcAMHz4cAwZMgSDBw9GcHAwPD09VUdtHlu+fDnc3NwQHByMV155RXXJ92OSJGHr1q1o3749hg8fjvr162PAgAGIj4+Hk5NTsSy3b9/Gli1b0Ldv32KvSZKEV155hWPeEJUjSTxrEAkiogrSoUMHNGvWjLc8IKIXxiM3REREZFBY3BAREZFB4WkpIiIiMig8ckNEREQGhcUNERERGRQWN0RERGRQWNwQERGRQWFxQ0RERAaFxQ0REREZFBY3REREZFBY3BAREZFBYXFDREREBuX/AH1t7d300a9EAAAAAElFTkSuQmCC", "text/plain": [ "
" ] @@ -90,7 +82,7 @@ ], "source": [ "amp_range = np.linspace(0, 2, 50)\n", - "plt.plot(amp_range, ct.describing_function(saturation, amp_range))\n", + "plt.plot(amp_range, ct.describing_function(saturation, amp_range).real)\n", "plt.xlabel(\"Amplitude A\")\n", "plt.ylabel(\"Describing function, N(A)\")\n", "plt.title(\"Describing function for a saturation nonlinearity\");" @@ -111,7 +103,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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C9evX8/V+Bs2bIh58+bBxsYGkZGRiIyMxDfffJOrYfv164d27dqhT58+SE9PR2BgIBYvXoyAgABYWlpqPa9EJC0MVUQkKTVq1MDEiRNRvnx59OvXD/Xq1cPhw4c1+nTr1g2DBw9GhQoV8NNPP6FevXr4448/cjV+ExMTyOVyyGQyODk5wcnJCVZWVrmub/HixYiMjMSIESPg7++PiRMnon79+lrNIxFJk5G+CyAi0kaNGjU0npcsWRLR0dEabd7e3lmeX7x4Ma9LAwAUL14cy5cvR5s2bdCwYUOMHTs2X6ZLRPrHPVVEJCnGxsYaz2UyGZRK5TuHk8lkAAADA9VmTwihfi0tLU2HFQInTpyAoaEhHj9+zHOpiIoQhioiKnSCg4OzPK9UqRIAoESJEgCAyMhI9etv7sUyMTGBQqF4r2mfOnUKM2fOxO7du2FjY4OvvvrqvcZDRNLDw39EVOhs3rwZ9erVQ+PGjREQEIDTp09j+fLlAIBy5crB1dUVkyZNws8//4zbt2/j119/1Rje3d0dL168wOHDh1GzZk1YWFjAwsLindNNTEyEn58fvvrqK7Rt2xalS5dGvXr10KFDB3Tr1i1P5pWICg7uqSKiQmfy5MnYuHEjatSogdWrVyMgIABVqlQBoDp8uGHDBty4cQM1a9bEjBkz8PPPP2sM37BhQwwbNgw9evRAiRIlMHPmTADApEmT4O7unuN0R44cCUtLS0ydOhUAULVqVcyYMQPDhg3Do0eP8mZmiajAkInXTywgIpI4mUyG7du358md2P39/QGo7rhORPQmHv4jIsql48eP48SJE/oug4gKKIYqIqJcCgsL03cJRFSAMVQRUaHCMxqISF94ojoRERGRDjBUEREREekAQxURERGRDjBUEREREekAQxURERGRDjBUEREREekAQxURERGRDjBUEREREekAQxURERGRDvwf293kY8JX47gAAAAASUVORK5CYII=", "text/plain": [ "
" ] @@ -137,7 +129,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHFCAYAAAAOmtghAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAABnaklEQVR4nO3dd1hTZ/sH8G+YYSN7KSAqoDjBgXsPnFXreN2rWqvWaof+qnXUVmtbbbV1tahvW7W0tba2Wi3WXXDjRsWBILL3Hsn5/YHkNTLMgUAgfD/XlQvy5Dkn9yE5yc0zziMRBEEAERERkZbQ0XQAREREROrE5IaIiIi0CpMbIiIi0ipMboiIiEirMLkhIiIircLkhoiIiLQKkxsiIiLSKkxuiIiISKswuSEiIiKtwuRGi+zevRsSiURxk0qlcHBwQK9evbB27VokJCRoOsQKrVy5EhKJRKnMzc0NQ4YMeem2kZGRkEgk2L17dzVFV7GwsDD06NEDFhYWkEgk+OKLLzQSBwA8ffoUK1euxNWrV0s9VtbfuKakpKRg3LhxsLOzg0QiwYgRIzQShypKzqVLly7Vyuet7tdR1fOuNnJzc8PUqVMV9zX92SBGWa/rli1b6kTstY2epgMg9du1axe8vLxQWFiIhIQEnD17Fp988gk+++wzBAUFoW/fvpoOsUwzZ87EwIEDK7Wto6MjQkND4eHhoeaoVDN9+nRkZ2fjxx9/RIMGDeDm5qaROIDi5GbVqlVwc3NDmzZtlB6ryt+4qj788EMcOHAAO3fuhIeHB6ysrDQSB9Uvmv5sEKOs83PLli2wsbFRStjo5ZjcaCEfHx/4+fkp7o8aNQpvvfUWunbtipEjRyIiIgL29vYajFBZTk4OjI2N4eLiAhcXl0rtw9DQEJ06dVJzZKq7efMmZs2ahUGDBmksBlVU5W9cVTdv3oSHhwcmTJiglv0JgoC8vDwYGRmpZX+knTT92aAKdXwGkjJ2S9UTjRo1wueff47MzExs375d6bFLly5h2LBhsLKyglQqRdu2bfHTTz8p1cnJycHbb78Nd3d3SKVSWFlZwc/PD/v27VOqd/78eQwdOhTW1taQSqXw8PDAwoULFY+XNLteuXIFo0ePRoMGDRT/UVXU1H7gwAG0atUKUqkUjRs3xqZNm5QeL6vpuWR/t27dwvjx42FhYQF7e3tMnz4d6enpStunpaVhxowZsLKygqmpKQYPHoyHDx9CIpFg5cqV5f5dS7oRioqKsHXrVkWXYEXHU7JNZGSkoqykG+DIkSNo164djIyM4OXlhZ07d5baPiYmBq+99hoaNmwIAwMDODk5YfTo0YiPj8fJkyfRvn17AMC0adMU8ZQcQ1kxyeVyrF+/Hl5eXjA0NISdnR0mT56MJ0+eKNXr2bMnfHx8cPHiRXTr1g3GxsZo3Lgx1q1bB7lcXu7fqOS1OXbsGMLDwxUxnTx5EkBxd9XcuXPh7OwMAwMDNG7cGO+//z7y8/OV9iORSDBv3jxs27YN3t7eMDQ0xH//+99ynzcoKAj9+/eHo6MjjIyM4O3tjSVLliA7O7vcbV6UmpqKadOmwcrKCiYmJhg6dCgePnyoVCc4OBjDhw+Hi4sLpFIpmjRpgtmzZyMpKanU/u7cuYPx48fD3t4ehoaGaNSoESZPnlzqWJ8XGxsLX19fNG3aFBEREVU+3ocPH2LcuHFwcnKCoaEh7O3t0adPnzK7MVV5P76o5PX+7LPPsGHDBri7u8PU1BT+/v44d+5cqfoHDx6Ev78/jI2NYWZmhn79+iE0NFSpjphzubx4KvvZIAgCtmzZgjZt2sDIyAgNGjTA6NGjK/0+EPMZ6Obmhlu3buHUqVOK88bNzQ1ZWVmwtLTE7NmzyzxeXV1dfPrppxX+XbQdW27qkYCAAOjq6uL06dOKshMnTmDgwIHo2LEjtm3bBgsLC/z4448YO3YscnJyFE2hixYtwvfff481a9agbdu2yM7Oxs2bN5GcnKzY19GjRzF06FB4e3tjw4YNaNSoESIjI/H333+XimXkyJEYN24c5syZ89Ivm6tXr2LhwoVYuXIlHBwcsGfPHrz55psoKCjA22+//dLjHjVqFMaOHYsZM2bgxo0bWLp0KQAoPqjlcjmGDh2KS5cuYeXKlWjXrh1CQ0NV6r4ZPHgwQkND4e/vj9GjR2Px4sUv3aY8165dw+LFi7FkyRLY29vj22+/xYwZM9CkSRN0794dQHFi0759exQWFuL//u//0KpVKyQnJ+Po0aNITU1Fu3btsGvXLkybNg3Lli3D4MGDAaDC/wZff/117NixA/PmzcOQIUMQGRmJ5cuX4+TJk7hy5QpsbGwUdePi4jBhwgQsXrwYK1aswIEDB7B06VI4OTlh8uTJZe6/pFtg7ty5SE9Px549ewAAzZs3R15eHnr16oUHDx5g1apVaNWqFc6cOYO1a9fi6tWrOHTokNK+fvvtN5w5cwYffPABHBwcYGdnV+5xRUREICAgAAsXLoSJiQnu3LmDTz75BBcuXMDx48dVek1mzJiBfv36Ye/evYiOjsayZcvQs2dPXL9+HZaWlgCABw8ewN/fHzNnzoSFhQUiIyOxYcMGdO3aFTdu3IC+vj6A4te3a9eusLGxwerVq9G0aVPExsbi4MGDKCgogKGhYannv3nzJgICAuDi4oLQ0FCl16KyxxsQEACZTIb169ejUaNGSEpKQkhICNLS0pT2p8r7sSJff/01vLy8FOPPli9fjoCAADx69AgWFhYAgL1792LChAno378/9u3bh/z8fKxfvx49e/bEP//8g65duyrt82Xnsliq7G/27NnYvXs3FixYgE8++QQpKSlYvXo1OnfujGvXrilawVV9H5RQ5TPwwIEDGD16NCwsLLBlyxYAxS1RpqammD59Onbs2IH169cr/p5AcTeWgYEBpk+fXqm/idYQSGvs2rVLACBcvHix3Dr29vaCt7e34r6Xl5fQtm1bobCwUKnekCFDBEdHR0EmkwmCIAg+Pj7CiBEjKnx+Dw8PwcPDQ8jNzS23zooVKwQAwgcffFDuY89zdXUVJBKJcPXqVaXyfv36Cebm5kJ2drYgCILw6NEjAYCwa9euUvtbv3690rZz584VpFKpIJfLBUEQhEOHDgkAhK1btyrVW7t2rQBAWLFiRYXHLQiCAEB44403Xno8gvC/1+nRo0dKxymVSoXHjx8rynJzcwUrKyth9uzZirLp06cL+vr6wu3bt8uN5eLFi6X+FuXFFB4eLgAQ5s6dq1Tv/PnzAgDh//7v/xRlPXr0EAAI58+fV6rbvHlzYcCAAeXG8/z2LVq0UCrbtm2bAED46aeflMo/+eQTAYDw999/K8oACBYWFkJKSspLn+tFcrlcKCwsFE6dOiUAEK5du1Zh/ZLX6JVXXlEq//fffwUAwpo1ayp8nsePHwsAhN9//13xWO/evQVLS0shISHhpc978eJFITg4WDA3NxdGjx5d6pwq7731suNNSkoSAAhffPFFhcev6vuxLCXnYsuWLYWioiJF+YULFwQAwr59+wRBEASZTCY4OTkJLVu2VHzOCIIgZGZmCnZ2dkLnzp1LHe/LzuWS2KdMmVIqnsp8NoSGhgoAhM8//1ypXnR0tGBkZCS8++67Zf4NKnofiP0MbNGihdCjR49SdR88eCDo6OgIGzduVJTl5uYK1tbWwrRp08qMqz5ht1Q9IwiC4vf79+/jzp07ijEQRUVFiltAQABiY2Nx9+5dAECHDh3w119/YcmSJTh58iRyc3OV9nvv3j08ePAAM2bMgFQqfWkco0aNUjnmFi1aoHXr1kpl//nPf5CRkYErV668dPthw4Yp3W/VqhXy8vIUs8dOnToFABgzZoxSvfHjx6scozq0adMGjRo1UtyXSqVo1qwZHj9+rCj766+/0KtXL3h7e6vlOU+cOAEApQYrdujQAd7e3vjnn3+Uyh0cHNChQwelslatWinFKMbx48dhYmKC0aNHK5WXxPPi8/fu3RsNGjRQad8PHz7Ef/7zHzg4OEBXVxf6+vro0aMHACA8PFylfbw4Pqhz585wdXVV/N0AICEhAXPmzEHDhg2hp6cHfX19uLq6Kj1PTk4OTp06hTFjxsDW1valz/vf//4XAQEBmDlzJn766SeVzilVjtfKygoeHh749NNPsWHDBoSFhZXbpajK+7EigwcPhq6uruJ+q1atAECx/d27d/H06VNMmjQJOjr/+yoyNTXFqFGjcO7cOeTk5Cjt82Xnslgv29+ff/4JiUSCiRMnKn0+Ojg4oHXr1oquVUC198HzxHwGlqVx48YYMmQItmzZovhc37t3L5KTkzFv3rwq7VsbsFuqHsnOzkZycjJatmwJAIiPjwcAvP322+V275T0F2/atAkuLi4ICgrCJ598AqlUigEDBuDTTz9F06ZNkZiYCKDi7o/nOTo6qhy3g4NDuWXPd4uVx9raWul+SfN/SYKWnJwMPT29UrN3anrQ9YtxAsWxPp9IJiYmqnXAYcnfr6zXw8nJqdQXmSoxin1+BweHUuOA7OzsoKenV+r1VfV9k5WVhW7dukEqlWLNmjVo1qwZjI2NER0djZEjR6ocb3nvvZK45HI5+vfvj6dPn2L58uVo2bIlTExMIJfL0alTJ8XzpKamQiaTqfza/fjjjzAyMsLMmTNVmvKt6vFKJBL8888/WL16NdavX4/FixfDysoKEyZMwEcffQQzMzPFPqv6Wqty3gHlv/fkcjlSU1NhbGys8j7Fetn+4uPjIQhCuZ8FjRs3BqD6++B5Yj4Dy/Pmm2+iT58+CA4ORv/+/fH111/D398f7dq1q/K+6zomN/XIoUOHIJPJ0LNnTwBQ9N8vXboUI0eOLHMbT09PAICJiQlWrVqFVatWIT4+XtGKM3ToUNy5c0fx3+iLg1DLI+YaHXFxceWWlfUBLJa1tTWKioqQkpKilOCU9bxilPy3nZ+frzSeoqyBpqqytbVV+W+sipK/X2xsbKkv3qdPn1Y4xkNdz3/+/HkIgqD0nkhISEBRUVGp51f1fXP8+HE8ffoUJ0+eVLReACg1ruRlynvvNWnSBEDxmJhr165h9+7dmDJliqLO/fv3lbaxsrKCrq6uyq/dnj17sHz5cvTo0QN///13qSn9LxJzvK6urggMDARQ3OL6008/YeXKlSgoKMC2bdtUik8dnn/vvejp06fQ0dFRuZWuutjY2EAikeDMmTNljokqKVP1ffA8dVynqHfv3vDx8cFXX30FU1NTXLlyBT/88EOV96sN2C1VT0RFReHtt9+GhYWFYoS9p6cnmjZtimvXrsHPz6/M2/P/yZWwt7fH1KlTMX78eNy9exc5OTlo1qwZPDw8sHPnzgpnflTGrVu3cO3aNaWyvXv3wszMTC3/oZR8GQQFBSmV//jjj1Xab8m1bq5fv65U/scff1R6n4MGDcKJEycU3YVlEfPfbO/evQGg1AfixYsXER4ejj59+lQ6VlX06dMHWVlZ+O2335TKv/vuO8XjlVHyxfHiF9KLMwVfpmTwc4mQkBA8fvxY8Q+Cqs9jZGSEHj164Oeff1YpubWyssKxY8fg7e2NXr16lTnL6HmVPd5mzZph2bJlaNmypUpdvOrk6ekJZ2dn7N27V6m7PDs7G/v371fMoNKkIUOGQBAExMTElPn5WNIKrq73W1le1lq2YMECHDp0CEuXLoW9vT1effXVKj+nNmDLjRa6efOmom84ISEBZ86cwa5du6Crq4sDBw4o9flv374dgwYNwoABAzB16lQ4OzsjJSUF4eHhuHLlCn7++WcAQMeOHTFkyBC0atUKDRo0QHh4OL7//nulD6Cvv/4aQ4cORadOnfDWW2+hUaNGiIqKwtGjR0t9SYjh5OSEYcOGYeXKlXB0dMQPP/yA4OBgfPLJJ2r58Bs4cCC6dOmCxYsXIyMjA76+vggNDVV8wT4/HkCMgIAAWFlZYcaMGVi9ejX09PSwe/duREdHVzrW1atX46+//kL37t3xf//3f2jZsiXS0tJw5MgRLFq0CF5eXvDw8ICRkRH27NkDb29vmJqawsnJCU5OTqX25+npiddeew2bN2+Gjo4OBg0apJgt1bBhQ7z11luVjlUVkydPxtdff40pU6YgMjISLVu2xNmzZ/Hxxx8jICCg0hec7Ny5Mxo0aIA5c+ZgxYoV0NfXx549e0olyS9z6dIlzJw5E6+++iqio6Px/vvvw9nZGXPnzgUAxd97yZIlEAQBVlZW+OOPPxAcHFxqXyUzZzp27IglS5agSZMmiI+Px8GDB7F9+/ZS/0iYmZnhyJEjGDlyJPr164eDBw+iV69eVTre69evY968eXj11VfRtGlTGBgY4Pjx47h+/TqWLFki6m9TVTo6Oli/fj0mTJiAIUOGYPbs2cjPz8enn36KtLQ0rFu3rkbjKUuXLl3w2muvYdq0abh06RK6d+8OExMTxMbG4uzZs2jZsiVef/11Ue8DsVq2bIkff/wRQUFBaNy4MaRSqSKpAoCJEydi6dKlOH36NJYtWwYDA4MqP6c2YHKjhaZNmwYAMDAwgKWlJby9vfHee+9h5syZpQYz9urVCxcuXMBHH32EhQsXIjU1FdbW1mjevLnSANvevXvj4MGD2LhxI3JycuDs7IzJkyfj/fffV9QZMGAATp8+jdWrV2PBggXIy8uDi4tLqUF7YrVp0wbTpk3DihUrEBERAScnJ2zYsEFtX7w6Ojr4448/sHjxYqxbtw4FBQXo0qULfvjhB3Tq1Ekx5Vcsc3NzHDlyBAsXLsTEiRNhaWmJmTNnYtCgQZg5c2al9uns7IwLFy5gxYoVWLduHZKTk2Fra4uuXbsqutSMjY2xc+dOrFq1Cv3790dhYSFWrFhR7vV6tm7dCg8PDwQGBuLrr7+GhYUFBg4ciLVr16ql268iUqkUJ06cwPvvv49PP/0UiYmJcHZ2xttvv40VK1ZUer/W1tY4dOgQFi9ejIkTJ8LExATDhw9HUFCQqNa+wMBAfP/99xg3bhzy8/PRq1cvfPnll4q/tb6+Pv744w+8+eabmD17NvT09NC3b18cO3ZMaTAuALRu3Vrx2i1duhSZmZlwcHBA7969y/1CMjIywu+//47//Oc/CAgIwP79+xEQEFDp43VwcICHhwe2bNmC6OhoSCQSNG7cGJ9//jnmz5+v8t9FXf7zn//AxMQEa9euxdixY6Grq4tOnTrhxIkT6Ny5c43HU5bt27ejU6dO2L59O7Zs2QK5XA4nJyd06dJFMbhezPtArFWrViE2NhazZs1CZmYmXF1dla6RZWRkhKFDh+KHH37AnDlzqvRc2kQiPN8eSEQKJdfg+Pfff2vNBy0R0fMKCgrg5uaGrl27lrr4an3GlhsiAPv27UNMTAxatmwJHR0dnDt3Dp9++im6d+/OxIaIap3ExETcvXsXu3btQnx8fI13K9Z2TG6IUDy+4ccff8SaNWuQnZ0NR0dHTJ06FWvWrNF0aEREpRw6dAjTpk2Do6MjtmzZwunfL2C3FBEREWkVTgUnIiIircLkhoiIiLQKkxsiIiLSKvVuQLFcLsfTp09hZmamlstfExERUfUTBAGZmZlwcnJ66cVV611y8/TpUzRs2FDTYRAREVElREdHv3QR2nqX3JRc4jw6Ohrm5uYajoaIiIhUkZGRgYYNG5a55uGL6l1yU9IVZW5uzuSGiIiojlFlSAkHFBMREZFWYXJDREREWoXJDREREWkVJjdERESkVZjcEBERkVZhckNERERahckNERERaRUmN0RERKRVmNwQERGRVmFyQ0RERFqFyQ0RERFpFSY3REREpFWY3BAREZFa5BXKEJ+Rh8fJ2RqNo96tCk5EREQVKyiSIy2nAKk5hUjNKVD8npZTiLTcAqQ/93taTiHSc4vr5RXKAQAuDYxw9r3eGoufyQ0REZEWKyiSIzWnACnZBUjNLkBKzrOf2cUJieKxnAKkZhciLacA2QWySj+fjgSQSNR4AJXA5IaIiKgOySuUISW7AMlZBUjKzkdyVgFSsvORnF2AlKziRCXlWcKSklWAzPyiSj2PjgSwMNJHA2MDWBoX/7R49tPSSB+WJs9+GuvD0qi4joWxPkwN9KCjo9nshskNERGRBgmCgKz8IiRlFSApKx9JmflIfPYzKbsAyVnFCUzSs5+VSVZ0dSRo8CwxaWBiAKtnPxsY68PKxOBZuT4sjZ/9bqwPc6m+xpOUymJyQ0REVA0KiuRIyspHQmY+EjPzkZCZh4SM4sQl8VlZ0rPf84vkovatpyOBtakBrE0Mn/00gNWz361Mim/Wip+GMDfSg0TTfUU1iMkNERGRCAVFciRm5SM+Iw8JGXmIzyj+PT6jOIGJz8hDYmY+UnMKRe3XxEAXNmaGsDE1hK2pIWzMDGBjaghrU0PYmBjA2rQ4ebGph8mKWExuiIiInsnMK0Rceh7iMvIQm56n+D3u2e/xGXlIzi5QeX96OhLYmhnCzswQtmbS534vvj2fyBgb8CtZXfiXJCKieiG3QIan6bl4mpaL2LQ8PE3/38+nabmIS89TeZaQvq4EdmZS2Jkbwt5MCntzQ9iZS2FvLoWdmSHszYsTGUujujtupS5jckNERHWeIAhIyS5ATFouYlJzEZOWiyfPfsak5uJpei7SVOwmMpfqwcFCCgcLIziYGz77KYWjRXEy42AuRQNjAyYttRiTGyIiqvUEQUBaTiGiU3MQnZL77GcOnqTm4klqDp6m5SG38OWtLiYGunCyNIKjpRGcLKTFvz/76WBRnMCwe6ju4ytIRES1Qn6RDE9ScxGVnIPHydl4nFKcyDxJLU5islSYAm1nZgjnBkZwtjSCcwMjuDz7WZzEGMFcyoG49QGTGyIiqjE5BUWITMpBZHI2HifnICql+Ofj5Bw8Tc+FIFS8vZ2ZIRpaGaNhAyO4NDBGQ6vin86WRnC0lMJQT7dmDoRqNSY3RESkVgVFckSl5OBRUjYik7Lx8NnPR0nZiMvIq3BbI31duFobw9XaGI2sim8uVsZo2MAYLg2MINVn8kIvx+SGiIgqJTW7AA8Ss3A/IQsPErPwIDEbDxKzEJ2SA3kFLTCWxvpwszaBm7UxGlmbwNXqWTJjbQxbU0N2G1GVMbkhIqJyCYKA2PQ83IvPRER8SRJTnMikVHC9FxMDXbjZmMD9uZubjQncrU3QwMSgBo+A6iMmN0REBEEQEJeRh4j4LEUicy8hE/fjsypcy8jZ0ggedqbwsDWBh63ps5sJbM3YAkOaw+SGiKieySkowt24TITHZuJOXAbuxGYiPC4DmXllJzF6OhK42Zigmb0pmtiZKRKZxrYmnDZNtRLflUREWkoQBDxJzcXt2AyExxYnMXfiMvA4JafMWUm6OhK4WhujmZ0Zmtmboqm9GZrZm8HdxgQGejo1fwBElcTkhohIC8jkAh4lZePW03TcepqBmzHFP9Nzy74qr62ZIbwczODtaA4vBzN4OZjDw86EU6lJKzC5ISKqY2RyAQ8Ts3DtSTpuPEnDzafFLTM5ZayLpK8rQVM7MzR3MlckM54OZrAxNdRA5EQ1g8kNEVEtJggCYtJycf1JOq5Fp+HakzTceJJe5gKPUn0dNHc0RwsnC/g4F/9sZm/GLiWqd5jcEBHVIln5RbgWnYbLj1NxNToN15+kISmr9JRrI31dtHS2QEsXC7R0Lk5m3G1MocvFHImY3BARaUrJgN/Lj1MVtztxGaUugKenI4GngxlaN7REaxcLtG5oiSa2ptDTZYsMUVmY3BAR1ZAimRy3nmbgwqOU4mQmKhWJmfml6jlbGqGdawO0bWiJ1g0t0cLJnMsOEInA5IaIqJoUFMlxIyYN5x6mKBKaF1e21teVoIWTBXxdG8DXtQHaNWoABwuphiIm0g5MboiI1CS/SIawqDScf5iC84+ScSUqFXmFcqU65lI9dHC3gp+bFXxdG6ClswVbZYjUjMkNEVElyeUC7sRl4uz9RJy9n4wLj5JLJTNWJgbo4GaFjo2t0MHdCl4O5hz0S1TNmNwQEYnwJDUH/95Pwtn7yQi5n4TkFxaPtDE1QKfG1ujY2Bod3a3Q1M6UaywR1TAmN0REFcgrlCH0YTJO3knAqXuJiEzOUXrc2EAXHd2t0KWJDbo1tUUzeyYzRJrG5IaI6AXRKTk4eTcBJ+4mIuRBklJXk66OBG0aWqJLExt0bWKDNg0teZE8olqGyQ0R1XuFMjkuRqbg5N1EHL+TgPsJWUqPO1pI0dPTDj09bdHZwxpmUn0NRUpEqmByQ0T1Uk5BEU7fS8TRW/E4Fh6PzLz/TdHW1ZHAt1ED9PSyRW8vO3jam7GriagOYXJDRPVGWk4B/glPwJFbcTgTkajU3WRtYoAenrbo5WmH7k1tYWHM1hmiuorJDRFptfiMPBy9FYejt+Jw7mEKZM+tbeDSwAgDWjhgoI8D2jVqwCnaRFqCyQ0RaZ3U7AL8dTMOB6/F4PyjFAjPrdXkaW+GAT4OGNDCHs0dzdndRKSFmNwQkVbIzi9C8O14HLz2FKfvJaLouRaato0sMbCFAwa0cICbjYkGoySimsDkhojqrPwiGU7dTcTBa09xLDxeaQyNt6M5hrV2wtDWjnBpYKzBKImoplUpucnPz4ehoaG6YiEieilBEHDraQZ+uhSN368+RXpuoeIxN2tjDGvthGFtnNDEzkyDURKRJolKbo4ePYp9+/bhzJkziIqKglwuh7GxMdq1a4f+/ftj2rRpcHJyqq5YiageS80uwG9XY/DTpScIj81QlNubG2JIKycMa+2EVi4WHENDRJAIwvND7cr222+/4b333kN6ejoCAgLQoUMHODs7w8jICCkpKbh58ybOnDmD0NBQTJ06FR9++CFsbW1rIn7RMjIyYGFhgfT0dJibm2s6HCKqgEwu4Oz9JPx0MRrBt+NRICvudjLQ1cEAHweM8XNBZw8bznIiqgfEfH+rlNx06NABy5cvx+DBg6GjU/5lxmNiYvDll1/C3t4eixcvFh95DWByQ1T7xaTl4scLUfjl8hPEpucpyls4mWOMX0MMb+MES2MDDUZIRDVN7cmNNmFyQ1Q7CYKA0IfJ+C7kMf6+HYeSyU4WRvp4pa0zRvu6wMfZQrNBEpHGiPn+VttsqRs3biAwMBBffPGFunZJRPVATkERfr0Sg+9CI3Ev/n9rOvk3tsaETo3Q19seUn1dDUZIRHVNlZKbjIwM7Nu3D4GBgbh06RJatWqlrriISMtFJmXj+3OP8dOlaMW6Tkb6uhjZzhlTOruhmT1nOxFR5VQquTl16hQCAwOxf/9+5OXl4Z133sHevXvRpEkTdcdHRFpEEASEPEjGt2ce4uS9RMWVg92sjTHJ3w2jfV1gYcQ1nYioalRObmJjY7Fr1y7s3LkT2dnZGD9+PE6dOgV/f39MnjyZiQ0RlUsuF/D37ThsPfkA156kK8p7etpiSmc39GhqCx3OeCIiNSl/6tML3N3dER4ejq+//hoxMTHYsGED/Pz8qhzAli1b4O7uDqlUCl9fX5w5c6bC+nv27EHr1q1hbGwMR0dHTJs2DcnJyVWOg4jUr6BIjp8uRaPvxlOY88MVXHuSDkM9HUz2d8XJt3ti97QO6OVpx8SGiNRK5ZYbV1dXnD17Fo0aNYKrqyu8vLyq/ORBQUFYuHAhtmzZgi5dumD79u0YNGgQbt++jUaNGpWqf/bsWUyePBkbN27E0KFDERMTgzlz5mDmzJk4cOBAleMhIvXIKSjCvgvR+PbMQ8VUbnOpHib7u2FqFzfYmPLK5kRUfVRObu7evYt///0XgYGBaN++PZo1a4aJEycCQKWvCLphwwbMmDEDM2fOBAB88cUXOHr0KLZu3Yq1a9eWqn/u3Dm4ublhwYIFAIpbk2bPno3169dX6vmJSL3ScgqwOyQSu0MikZZTvCyCnZkhZnZzx/gOjWAm5XgaIqp+KndLAUCXLl2wc+dOxMbGYs6cOfjpp58gk8kwd+5cfPPNN0hMTFR5XwUFBbh8+TL69++vVN6/f3+EhISUuU3nzp3x5MkTHD58GIIgID4+Hr/88gsGDx5c7vPk5+cjIyND6UZE6pWdX4TN/0Sg2ycn8MWxCKTlFMLN2hhrR7bE6Xd74bXuHkxsiKjGiEpuSpiammLWrFkIDQ3FrVu34Ovri2XLlolaVyopKQkymQz29vZK5fb29oiLiytzm86dO2PPnj0YO3YsDAwM4ODgAEtLS2zevLnc51m7di0sLCwUt4YNG6ocIxFVLK9Qhp1nH6H7+hP4PPgeMvOL4OVghs3j2+KfxT0xvkMjXqOGiGpcpZKb53l7e+Ozzz5DTEwMgoKCRG//YpeWIAjldnPdvn0bCxYswAcffIDLly/jyJEjePToEebMmVPu/pcuXYr09HTFLTo6WnSMRKSsSCbHTxej0fuzk1j9520kZxfAzdoYm8a3xeEF3TC0tRPXeyIijVFpzE12djZMTEwq3pGeHkaOHKlyfRsbG+jq6pZqpUlISCjVmlNi7dq16NKlC9555x0AQKtWrWBiYoJu3bphzZo1cHR0LLWNoaEhDA05eJFIHeRyAX/djMPnwXfxMDEbAOBgLsWbfZtitK8L9HWr/P8SEVGVqfRJ1KRJE3z88cd4+vRpuXUEQUBwcDAGDRqETZs2vXSfBgYG8PX1RXBwsFJ5cHAwOnfuXOY2OTk5pRbu1NXVVTw/EVWf0/cSMfSrs3hj7xU8TMxGA2N9LBvsjZPvFHc/MbEhotpCpZabkydPYtmyZVi1ahXatGkDPz8/ODk5QSqVIjU1Fbdv30ZoaCj09fWxdOlSvPbaayo9+aJFizBp0iT4+fnB398fO3bsQFRUlKKbaenSpYiJicF3330HABg6dChmzZqFrVu3YsCAAYiNjcXChQvRoUMHUeN9iEh1Uck5WP3nbRwLjwcAmBjoYma3xpjZzZ2DhImoVlIpufH09MTPP/+MJ0+e4Oeff8bp06cREhKC3Nxc2NjYoG3btvjmm28QEBBQqmWlImPHjkVycjJWr16N2NhY+Pj44PDhw3B1dQVQfFXkqKgoRf2pU6ciMzMTX331FRYvXgxLS0v07t0bn3zyicjDJqKXyS2QYcvJ+9h++iEKiuTQ05Fgsr8b5vVuAisTA02HR0RULolQz/pzxCyZTlQfCYKAwzfi8NGh23j67AJ8XZvYYOWw5mhix8UsiUgzxHx/V2lVcCLSLvfiM7Hi91sIfVi8pImzpRGWD/HGgBYOlb5YJxFRTVM5uVm9erVK9T744INKB0NEmpGeW4gvjt3Dd6GPIZMLMNTTwZweHpjTwwNGBrxODRHVLSp3S7Vt27b8nUgkuHv3LvLy8iCTydQWXHVgtxSRsr9uxGL57zeRlFUAABjQwh7LBjdHQytjDUdGRPQ/1dItFRYWVmb51atXsWTJEty8eROzZs0SFykRaUxyVj4+OHgLh67HAgA8bE2wclgLdGtqq+HIiIiqptJjbh49eoTly5cjKCgII0eOxK1bt9C0aVN1xkZE1eTwjVgs/+0mkrMLoKsjwdyeHpjXuwkM9dgFRUR1n+jkJikpCatWrcKOHTvQtWtXhISEoH379tURGxGpWXJWPj74/RYO3ShurfFyMMOno1ujpYuFhiMjIlIflZOb7OxsfPbZZ9iwYQOaNGmCP/74o9SK3kRUex26Xjy2JuW51pr5vZvCQI9XFiYi7aJycuPh4YHMzEzMnz8f48ePh0QiwfXr10vVa9WqlVoDJKKqScrKx4oXWms+e7U1fJzZWkNE2knl2VLPX3lYIpEoreVUcl8ikXC2FFEtcvxOPN7++bqiteaNnh6Yx9YaIqqDqmW21KNHj6ocGBHVjCKZHJ/9fQ/bTj0AwNYaIqpfVE5uStZ7IqLaLS49D/P3XcHFyFQAwNTOblga4MWZUERUb3D5BSItcvpeIhYGXUVKdgFMDfWwfnQrBLR01HRYREQ1iskNkRaQyQV8+U8ENh+PgCAAzR3NsWVCO7jZmGg6NCKiGsfkhqiOS8zMx5s/hiHkQfFil+M7NMKKoc0h1Wc3FBHVT0xuiOqw0AfJWPBjGBIz82FsoIuPX2mJEW2dNR0WEZFGMbkhqoMEQcC3Zx5h7V/hkAtAM3tTbJnQDk3szDQdGhGRxqn1Yhe9e/fGhx9+iJycHHXuloieUySTY/nvN/HR4eLEZmQ7Z/z2RhcmNkREz6g1uXF1dcXx48fh7e2tzt0S0TNZ+UWY9d0l/HAuChIJsHxIc3z+amsYG7ARloiohFo/EXft2gUAyMrKUuduiQjF16+ZvvsibsdmQKqvgy/GtsVAHwdNh0VEVOtUy797pqam1bFbonorPDYD03dfRGx6HqxNDPDtFD+0bdRA02EREdVKlUpu/vnnH/zzzz9ISEiAXC5Xemznzp1qCYyIip26l4g39lxBVn4RPGxNsGtqBzSyNtZ0WEREtZbo5GbVqlVYvXo1/Pz84OjoCIlEUh1xERGAfReisOy3m5DJBXRqbIXtE/1gYayv6bCIiGo10cnNtm3bsHv3bkyaNKk64iEiAHK5gE//voutJ4sXvnylrTPWjWrJ9aGIiFQgOrkpKChA586dqyMWIkLxVO+3f76G364+BQAs6NMUb/VtylZSIiIViZ4KPnPmTOzdu7c6YiGq94pkciz6qTix0dOR4LNXW2NRv2ZMbIiIRBDdcpOXl4cdO3bg2LFjaNWqFfT1lfv/N2zYoLbgiOqTksTm4LXixGbLhHbo34JTvYmIxBKd3Fy/fh1t2rQBANy8eVPpMf53SVQ5TGyIiNRHdHJz4sSJ6oiDqN5iYkNEpF5VWn7hyZMniImJUVcsRPUOExsiIvUTndzI5XKsXr0aFhYWcHV1RaNGjWBpaYkPP/yw1AX9iKh8TGyIiKqH6G6p999/H4GBgVi3bh26dOkCQRDw77//YuXKlcjLy8NHH31UHXESaRUmNkRE1UciCIIgZgMnJyds27YNw4YNUyr//fffMXfu3FrfTZWRkQELCwukp6fD3Nxc0+FQPcTEhohIPDHf36K7pVJSUuDl5VWq3MvLCykpKWJ3R1SvyOUCFv/MxIaIqDqJTm5at26Nr776qlT5V199hdatW6slKCJt9cmRO/j9KhMbIqLqJHrMzfr16zF48GAcO3YM/v7+kEgkCAkJQXR0NA4fPlwdMRJphT3nH2P76YcAgM9ebc3EhoiomohuuenRowfu3buHV155BWlpaUhJScHIkSNx9+5ddOvWrTpiJKrzTt1LxAe/3wIALOrXDCPaOms4IiIi7SV6QHFdxwHFVNPuxGVg9NZQZOUXYWQ7Z3z+amtezZuISCQx398qdUtdv34dPj4+0NHRwfXr1yus26pVK9UjJdJyCRl5mL7rIrLyi9CpsRXWjWzFxIaIqJqplNy0adMGcXFxsLOzQ5s2bSCRSFBWg49EIoFMJlN7kER1UU5BEWb89xKepuehsa0Jtk30hYFelS4KTkREKlApuXn06BFsbW0VvxNRxWRyAW/+eBU3YtJhZWKAXVPbw9LYQNNhERHVCyolN66urorfHz9+jM6dO0NPT3nToqIihISEKNUlqq8+PhyO4NvxMNDTwTeTfeFqbaLpkIiI6g3RbeS9evUq82J96enp6NWrl1qCIqrLvguNRODZ4hbOz15tDV9XKw1HRERUv4hObgRBKHNAZHJyMkxM+N8p1W8n7iRg5cHiKd/vDPDEsNZOGo6IiKj+UfkifiNHjgRQPGh46tSpMDQ0VDwmk8lw/fp1dO7cWf0REtUR9xMyMW/vFcgF4FVfF8zt6aHpkIiI6iWVkxsLCwsAxS03ZmZmMDIyUjxmYGCATp06YdasWeqPkKgOyCuUYd7eMGQXyNCpsRU+eqUlp3wTEWmIysnNrl27AABubm545513YGxsXG1BEdU1Hx8Ox524TNiYGmDT+Lac8k1EpEGiP4EnT56MmJiYUuURERGIjIxUR0xEdcrRW3H4LvQxgOIBxHZmUg1HRERUv4lObqZOnYqQkJBS5efPn8fUqVPVERNRnfE0LRfv/lJ81e5Z3dzR09NOwxEREZHo5CYsLAxdunQpVd6pUydcvXpVHTER1QlFMjkW/ngV6bmFaOVigXcGeGk6JCIiQiWSG4lEgszMzFLl6enpXHqB6pWvTtzHhcgUmBjoYtM4jrMhIqotRH8ad+vWDWvXrlVKZGQyGdauXYuuXbuqNTii2ur8w2Rs+icCAPDRKy3hZsNrPBER1RYqz5YqsX79enTv3h2enp7o1q0bAODMmTPIyMjA8ePH1R4gUW2Tml2AhUFXIReAUe1cMKKts6ZDIiKi54huuWnevDmuX7+OMWPGICEhAZmZmZg8eTLu3LkDHx+f6oiRqNYQBAHv7r+O2PQ8uNuYYPXwFpoOiYiIXiC65QYAnJyc8PHHH6s7FqJa7/tzjxF8Ox76uhJsHt8WJoaVOoWIiKgaVeqTOS0tDRcuXEBCQgLkcrnSY5MnT1ZLYES1ze2nGVhzKBwAsGSQN3ycLTQcERERlUV0cvPHH39gwoQJyM7OhpmZmdIl5iUSCZMb0ko5BUWYv+8KCork6O1lh+ld3DQdEhERlUP0mJvFixdj+vTpyMzMRFpaGlJTUxW3lJSU6oiRSOM+//seHiRmw87MEJ+ObsV1o4iIajHRyU1MTAwWLFjAtaWo3rj9NAO7QyIBAJ+MbgVrU0PNBkRERBUSndwMGDAAly5dqo5YiGoduVzAst9uQCYXENDSAb24vAIRUa0neszN4MGD8c477+D27dto2bIl9PX1lR4fNmyY2oIj0rSgS9G4EpUGEwNdfDCE076JiOoCiSAIgpgNdHTKb+yRSCS1fgmGjIwMWFhYID09Hebm5poOh2qx5Kx89P78FNJzC7FssDdmdmus6ZCIiOotMd/forul5HJ5ubfKJDZbtmyBu7s7pFIpfH19cebMmQrr5+fn4/3334erqysMDQ3h4eGBnTt3in5eopdZ99cdpOcWwsvBDFM7u2k6HCIiUpFGr0AWFBSEhQsXYsuWLejSpQu2b9+OQYMG4fbt22jUqFGZ24wZMwbx8fEIDAxEkyZNkJCQgKKiohqOnLTdxcgU/Hz5CQDgo1d8oKfLRTGJiOoK0d1Sq1evrvDxDz74QOV9dezYEe3atcPWrVsVZd7e3hgxYgTWrl1bqv6RI0cwbtw4PHz4EFZWVqoH/Rx2S9HLFMrkGLLpLO7GZ2Jc+4ZYN6qVpkMiIqr3xHx/i265OXDggNL9wsJCPHr0CHp6evDw8FA5uSkoKMDly5exZMkSpfL+/fsjJCSkzG0OHjwIPz8/rF+/Ht9//z1MTEwwbNgwfPjhhzAyMipzm/z8fOTn5yvuZ2RkqBQf1V+7/n2Eu/GZsDIxwHsDvTQdDhERiSQ6uQkLCytVlpGRgalTp+KVV15ReT9JSUmQyWSwt7dXKre3t0dcXFyZ2zx8+BBnz56FVCrFgQMHkJSUhLlz5yIlJaXccTdr167FqlWrVI6L6renabn44lgEAGDJIC80MDHQcERERCSWWgYSmJubY/Xq1Vi+fLnobV+80qsgCOVe/VUul0MikWDPnj3o0KEDAgICsGHDBuzevRu5ubllbrN06VKkp6crbtHR0aJjpPpj1R+3kFMgQ3u3BhjdzkXT4RARUSWobUBxWloa0tPTVa5vY2MDXV3dUq00CQkJpVpzSjg6OsLZ2RkWFv9bsNDb2xuCIODJkydo2rRpqW0MDQ1haMgrytLLHb8Tj6O34qGrI8GaES2ho8MlFoiI6iLRyc2mTZuU7guCgNjYWHz//fcYOHCgyvsxMDCAr68vgoODlbqzgoODMXz48DK36dKlC37++WdkZWXB1NQUAHDv3j3o6OjAxYX/ZVPl5RbI8MHvtwAAM7q6w9PBTMMRERFRZYmeLeXu7q50X0dHB7a2tujduzeWLl0KMzPVvxSCgoIwadIkbNu2Df7+/tixYwe++eYb3Lp1C66urli6dCliYmLw3XffAQCysrLg7e2NTp06YdWqVUhKSsLMmTPRo0cPfPPNNyo9J2dLUVk+O3oXX524DycLKYIX9YCJoUavkkBERC9Q+2yp69evw8fHBzo6Onj06JFaggSAsWPHIjk5GatXr0ZsbCx8fHxw+PBhuLq6AgBiY2MRFRWlqG9qaorg4GDMnz8ffn5+sLa2xpgxY7BmzRq1xUT1z/2ELGw//QAA8MHQFkxsiIjqOJVabnR1dREbGws7Ozs0btwYFy9ehLW1dU3Ep3ZsuaEXTd99EcfvJKC3lx0Cp/iVO6CdiIg0R+3LL1haWipabCIjIyGXy6seJVEtEBaViuN3EqCrI8HyIc2Z2BARaQGV2t9HjRqFHj16wNHRERKJBH5+ftDV1S2z7sOHD9UaIFF12vjsmjYj2zrD3cZEw9EQEZE6qJTc7NixAyNHjsT9+/exYMECzJo1S9TAYaLa6FJkCk7fS4SejgTze5e+jAAREdVNKo+cLJnmffnyZbz55ptMbqjO23jsHgDgVT8XNLI21nA0RESkLqKnhezatas64iCqUecfJuPf+8nQ15XgjV5NNB0OERGpkVqWXyCqa0pabcb4NYRLA7baEBFpEyY3VO+EPEjCuYcpMNDVYasNEZEWYnJD9YogCPgiuHiG1LgODeFkaaThiIiISN2Y3FC98u/9ZFyITIGBng7m9mSrDRGRNhI9oPjgwYNllkskEkilUjRp0qTU+lNEtYEgCNgQfBcAMKFjIzhYSDUcERERVQfRyc2IESMgkUjw4qoNJWUSiQRdu3bFb7/9hgYNGqgtUKKqOh2RhCtRaZDq6+D1nh6aDoeIiKqJ6G6p4OBgtG/fHsHBwUhPT0d6ejqCg4PRoUMH/Pnnnzh9+jSSk5Px9ttvV0e8RJVS3GpTPENqYkdX2Jmx1YaISFuJbrl58803sWPHDnTu3FlR1qdPH0ilUrz22mu4desWvvjiC0yfPl2tgRJVxYm7CbgWnQYjfV3M7sFWGyIibSa65ebBgwdlrsZpbm6uWFeqadOmSEpKqnp0RGogCAI2PpshNbmzK2zNDDUcERERVSfRyY2vry/eeecdJCYmKsoSExPx7rvvon379gCAiIgIuLi4qC9Koio4Fp6AGzHpMDbQxezubLUhItJ2orulAgMDMXz4cLi4uKBhw4aQSCSIiopC48aN8fvvvwMAsrKysHz5crUHSySWXP6/sTZTO7vBysRAwxEREVF1E53ceHp6Ijw8HEePHsW9e/cgCAK8vLzQr18/6OgUNwSNGDFC3XESVcrft+MQHpsBU0M9zOrWWNPhEBFRDRCd3ADF074HDhyoWCmcqDYSBAGb/rkPAJjexQ0N2GpDRFQvVCq5+eeff/DPP/8gISEBcrlc6bGdO3eqJTCiqrr8OBW3YzMg1dfB9K68sCQRUX0hOrlZtWoVVq9eDT8/Pzg6OkIikVRHXERV9sO5xwCAYa2dYGnMVhsiovpCdHKzbds27N69G5MmTaqOeIjUIjkrH4dvxAEAJnVy02wwRERUo0RPBS8oKFC6gB9RbfTTpScokMnR2sUCLV0sNB0OERHVINHJzcyZM7F3797qiIVILWRyAXvOF3dJTezkquFoiIioponulsrLy8OOHTtw7NgxtGrVCvr6+kqPb9iwQW3BEVXG6XuJeJKaCwsjfQxt7aTpcIiIqIaJTm6uX7+ONm3aAABu3ryp9BgHF1Nt8P2zgcSv+rpAqq+r4WiIiKimiU5uTpw4UR1xEKlFdEoOTtxNAABMYJcUEVG9JHrMDVFttvdCFAQB6NbUBu42JpoOh4iINECllpuRI0di9+7dMDc3x8iRIyus++uvv6olMCKx8otkCLoYDYADiYmI6jOVkhsLCwvFeBoLC06rpdrpyM04pGQXwNFCij5edpoOh4iINESl5GbXrl1l/k5Um3wfWjyQeHyHRtDTZY8rEVF9Vam1pQAgISEBd+/ehUQiQbNmzWBnx/+USXPCYzNw6XEq9HQkGNe+oabDISIiDRL9721GRgYmTZoEZ2dn9OjRA927d4ezszMmTpyI9PT06oiR6KVK1pEa0MIBduZSDUdDRESaVKkrFJ8/fx5//vkn0tLSkJ6ejj///BOXLl3CrFmzqiNGogpl5hXiQFgMAGBCp0YajoaIiDRNdLfUoUOHcPToUXTt2lVRNmDAAHzzzTcYOHCgWoMjUsVvYTHIKZDBw9YE/o2tNR0OERFpmOiWG2tr6zJnTFlYWKBBgwZqCYpIVYIgKK5IPLGTK6+STURE4pObZcuWYdGiRYiNjVWUxcXF4Z133sHy5cvVGhzRy1yMTMW9+CwY6etiZDsXTYdDRES1gErdUm3btlX6jzgiIgKurq5o1Kh4fENUVBQMDQ2RmJiI2bNnV0+kRGUoabUZ3sYJFkb6L6lNRET1gUrJzYgRI6o5DCLxEjPzceRmcQsir0hMREQlVEpuVqxYUd1xEIn206VoFMoEtG1kCR9nXjmbiIiK8TKuVCfJ5AL2no8CAEzsyFYbIiL6H5VabqysrHDv3j3Y2NigQYMGFc5ISUlJUVtwROW5FJmCmLRcmEv1MLiVo6bDISKiWkSl5Gbjxo0wMzMDAHzxxRfVGQ+RSv66GQcA6NfcAVJ9XQ1HQ0REtYlKyc2UKVMAAEVFRQCKL9rn4OBQfVERVUAuF/DXs4HEAS35PiQiImWixtzo6enh9ddfR35+fnXFQ/RSV6JSEZ+RDzNDPXRtaqPpcIiIqJYRPaC4Y8eOCAsLq45YiFRy+EZxl1Tf5vYw1GOXFBERKRO9ttTcuXOxePFiPHnyBL6+vjAxMVF6vFWrVmoLjuhFz3dJDfJhlxQREZUmOrkZO3YsAGDBggWKMolEAkEQIJFIIJPJ1Bcd0QuuPUlDbHoeTAx00b2ZrabDISKiWkh0cvPo0aPqiINIJSWzpHp723OWFBERlUl0cuPqygumkWYIgoDDN4q7pAZzlhQREZVD9IDitWvXYufOnaXKd+7ciU8++UQtQRGV5WZMBp6k5sJIXxc9mtlpOhwiIqqlRCc327dvh5eXV6nyFi1aYNu2bWoJiqgsh5612vT2soORAbukiIiobKKTm7i4ODg6lr7cva2tLWJjY9USFNGLBOG5WVLskiIiogqITm4aNmyIf//9t1T5v//+CycnJ7UERfSi27EZeJycA0M9HfTyZJcUERGVT/SA4pkzZ2LhwoUoLCxE7969AQD//PMP3n33XSxevFjtARIBwF/PLtzXy9MOJoai37ZERFSPiP6WePfdd5GSkoK5c+eioKAAACCVSvHee+9h6dKlag+Q6PlZUuySIiKil5EIgiBUZsOsrCyEh4fDyMgITZs2haGhobpjqxYZGRmwsLBAeno6zM3NNR0OqeBuXCYGfHEaBno6uLysL8yk+poOiYiIapiY72/RY25KmJqaon379mjUqBH++usvhIeHV3ZXRBUqmSXVvaktExsiInop0cnNmDFj8NVXXwEAcnNz4efnhzFjxqBVq1bYv3+/2gMk+utZchPALikiIlKB6OTm9OnT6NatGwDgwIEDEAQBaWlp2LRpE9asWaP2AKl+i4jPRERCFvR1Jejjba/pcIiIqA4Qndykp6fDysoKAHDkyBGMGjUKxsbGGDx4MCIiItQeINVvJWtJdWtqCwsjdkkREdHLVeo6N6GhocjOzsaRI0fQv39/AEBqaiqkUqnoALZs2QJ3d3dIpVL4+vrizJkzKm3377//Qk9PD23atBH9nFR3KGZJ+bBLioiIVCM6uVm4cCEmTJgAFxcXODo6omfPngCKu6tatmwpal9BQUFYuHAh3n//fYSFhaFbt24YNGgQoqKiKtwuPT0dkydPRp8+fcSGT3XIw8Qs3InLhJ6OBP2as0uKiIhUU6mp4JcuXUJ0dDT69esHU1NTAMChQ4dgaWmJLl26qLyfjh07ol27dti6dauizNvbGyNGjMDatWvL3W7cuHFo2rQpdHV18dtvv+Hq1asqPyengtcdX5+4j0+P3kX3Zrb4bnoHTYdDREQaVO1Twf38/DB48GDExMSgqKgIADB48GBRiU1BQQEuX76s6NYq0b9/f4SEhJS73a5du/DgwQOsWLGiMqFTHVLSJRXALikiIhJBdHKTk5ODGTNmwNjYGC1atFB0IS1YsADr1q1TeT9JSUmQyWSwt1fubrC3t0dcXFyZ20RERGDJkiXYs2cP9PRUu7hyfn4+MjIylG5U+z1OzsatpxnQ1ZGgfwsmN0REpDrRyc3SpUtx7do1nDx5UmkAcd++fREUFCQ6AIlEonRfEIRSZQAgk8nwn//8B6tWrUKzZs1U3v/atWthYWGhuDVs2FB0jFTzSmZJ+Te2hpWJgYajISKiukT02lK//fYbgoKC0KlTJ6UkpHnz5njw4IHK+7GxsYGurm6pVpqEhIRSrTkAkJmZiUuXLiEsLAzz5s0DAMjlcgiCAD09Pfz999+KhTyft3TpUixatEhxPyMjgwlOHfAX15IiIqJKEp3cJCYmws7OrlR5dnZ2mS0u5TEwMICvry+Cg4PxyiuvKMqDg4MxfPjwUvXNzc1x48YNpbItW7bg+PHj+OWXX+Du7l7m8xgaGtaZda+o2JPUHFx7kg4dCdC/OZMbIiISR3Ry0759exw6dAjz588H8L9upW+++Qb+/v6i9rVo0SJMmjQJfn5+8Pf3x44dOxAVFYU5c+YAKG51iYmJwXfffQcdHR34+PgobW9nZwepVFqqnOq20/eSAAB+rlawNWNiSkRE4ohObtauXYuBAwfi9u3bKCoqwpdffolbt24hNDQUp06dErWvsWPHIjk5GatXr0ZsbCx8fHxw+PBhuLq6AgBiY2Nfes0b0j4hD4qTm85NrDUcCRER1UWVus7NjRs38Nlnn+Hy5cuQy+Vo164d3nvvPdEX8dMEXuemdhMEAe0/OoakrAL8NNsfHdytNB0SERHVAmK+v0W33ABAy5Yt8d///rdSwRFVJCIhC0lZBZDq66B1QwtNh0NERHWQSsmNmGvDsDWEqiLkfnGXVHs3Kxjq6Wo4GiIiqotUSm4sLS1Vngklk8mqFBDVb6EPkwEAnRpzvA0REVWOSsnNiRMnFL9HRkZiyZIlmDp1qmJ2VGhoKP773/9WuB4U0cvI5QLOPUwBAHT2YHJDRESVo1Jy06NHD8Xvq1evxoYNGzB+/HhF2bBhw9CyZUvs2LEDU6ZMUX+UVC/cjs1Aem4hTA310NKZ422IiKhyRC+/EBoaCj8/v1Llfn5+uHDhglqCovop9EFxl1QHdyvo6VZqTVciIiLxyU3Dhg2xbdu2UuXbt2/nsgZUJSXjbdglRUREVSF6KvjGjRsxatQoHD16FJ06dQIAnDt3Dg8ePMD+/fvVHiDVD0UyOS48Kh5vw8HERERUFaJbbgICAhAREYHhw4cjJSUFycnJGD58OO7du4eAgIDqiJHqgRsx6cjKL4KFkT6aO/JyAkREVHmVuoifi4sLPvroI3XHQvVYyIOSKeBW0NFRfQFWIiKiF3HUJtUK5xTjbWw0HAkREdV1TG5I4/KLZLgYWTzexp+DiYmIqIqY3JDGXYtOR16hHDamBmhqZ6rpcIiIqI5TKbk5ePAgCgsLqzsWqqdCHhSvJ9WpsbXKy3wQERGVR6Xk5pVXXkFaWhoAQFdXFwkJCdUZE9UzJRfv43gbIiJSB5WSG1tbW5w7dw4AIAgC/7smtckrlCEsKg0Ax9sQEZF6qDQVfM6cORg+fDgkEgkkEgkcHBzKrctVwUmMy49TUSCTw9FCCjdrY02HQ0REWkCl5GblypUYN24c7t+/j2HDhmHXrl2wtLSs5tCoPigZb+PP8TZERKQmKl/Ez8vLC15eXlixYgVeffVVGBvzv2yqupLxNuySIiIidRF9heIVK1YAABITE3H37l1IJBI0a9YMtra2ag+OtFtWfhGuPUkHwOSGiIjUR/R1bnJycjB9+nQ4OTmhe/fu6NatG5ycnDBjxgzk5ORUR4ykpS5GpkAmF9DIyhguDdgSSERE6iE6uXnrrbdw6tQpHDx4EGlpaUhLS8Pvv/+OU6dOYfHixdURI2kpRZcUVwEnIiI1Et0ttX//fvzyyy/o2bOnoiwgIABGRkYYM2YMtm7dqs74SIsprm/ThMkNERGpT6W6pezt7UuV29nZsVuKVJaeU4ibT5+Nt2HLDRERqZHo5Mbf3x8rVqxAXl6eoiw3NxerVq2Cv7+/WoMj7XX+UTIEAfCwNYGduVTT4RARkRYR3S315ZdfYuDAgXBxcUHr1q0hkUhw9epVSKVSHD16tDpiJC0UwingRERUTUQnNz4+PoiIiMAPP/yAO3fuQBAEjBs3DhMmTICRkVF1xEha6NxDridFRETVQ3RyAwBGRkaYNWuWumOheiI5Kx934jIBFK8ETkREpE6ix9wQVdW5hykAAC8HM1iZGGg4GiIi0jZMbqjGKdaT4ngbIiKqBkxuqMaFcrwNERFVIyY3VKPiM/LwMDEbOhKgg7uVpsMhIiItVKnkJi0tDd9++y2WLl2KlJTi8RNXrlxBTEyMWoMj7VNyVWIfZwtYGOlrOBoiItJGomdLXb9+HX379oWFhQUiIyMxa9YsWFlZ4cCBA3j8+DG+++676oiTtERYVCoAoL0bW22IiKh6iG65WbRoEaZOnYqIiAhIpf+7suygQYNw+vRptQZH2ufW0wwAQEtnCw1HQkRE2kp0cnPx4kXMnj27VLmzszPi4uLUEhRpJ5lcwO3Y4uTGx9lcw9EQEZG2Ep3cSKVSZGRklCq/e/cubG1t1RIUaafI5GzkFMhgpK8LdxtTTYdDRERaSnRyM3z4cKxevRqFhYUAAIlEgqioKCxZsgSjRo1Se4CkPUq6pLwczaCrI9FwNEREpK1EJzefffYZEhMTYWdnh9zcXPTo0QNNmjSBmZkZPvroo+qIkbTErZh0AICPE8fbEBFR9RE9W8rc3Bxnz57F8ePHceXKFcjlcrRr1w59+/atjvhIi5S03LRw4ngbIiKqPpVaOBMAevfujd69e6szFtJigiDg5tNnLTecKUVERNVIpeRm06ZNKu9wwYIFlQ6GtNfT9Dyk5RRCT0eCpvYcTExERNVHpeRm48aNSvcTExORk5MDS0tLAMVXLDY2NoadnR2TGyrTzWfjbZrZm8FQT1fD0RARkTZTaUDxo0ePFLePPvoIbdq0QXh4OFJSUpCSkoLw8HC0a9cOH374YXXHS3UUx9sQEVFNET1bavny5di8eTM8PT0VZZ6enti4cSOWLVum1uBIe9x+Nt6GyQ0REVU30clNbGys4ho3z5PJZIiPj1dLUKR9bsaUXJmYg4mJiKh6iU5u+vTpg1mzZuHSpUsQBAEAcOnSJcyePZvTwalMSVn5iMvIg0QCeDuy5YaIiKqX6ORm586dcHZ2RocOHSCVSmFoaIiOHTvC0dER3377bXXESHVcyXgbdxsTmBhW+uoDREREKhH9TWNra4vDhw/j3r17uHPnDgRBgLe3N5o1a1Yd8ZEWuKUYb8MuKSIiqn6V/je6WbNmTGhIJbdiOFOKiIhqjujkZvr06RU+vnPnzkoHQ9qppOWGa0oREVFNEJ3cpKamKt0vLCzEzZs3kZaWxuUYqJSMvEJEJucAYMsNERHVDNHJzYEDB0qVyeVyzJ07F40bN1ZLUKQ9wp8NJna2NEIDEwMNR0NERPWB6NlSZe5ERwdvvfVWqWUaiEpmSjVnqw0REdUQtSQ3APDgwQMUFRWpa3ekJW5yvA0REdUw0d1SixYtUrovCAJiY2Nx6NAhTJkyRW2BkXa4zTWliIioholObsLCwpTu6+jowNbWFp9//vlLZ1JR/ZJXKENEQhYAoIUzkxsiIqoZopObEydOVEccpIXuxmVCJhdgbWIAB3OppsMhIqJ6QvSYm969eyMtLa1UeUZGBqeCk5KS8TbNncwhkUg0HA0REdUXopObkydPoqCgoFR5Xl4ezpw5o5agSDuUzJTiSuBERFSTVO6Wun79uuL327dvIy4uTnFfJpPhyJEjcHZ2Vm90VKfd4mBiIiLSAJVbbtq0aYO2bdtCIpGgd+/eaNOmjeLm6+uLNWvW4IMPPhAdwJYtW+Du7g6pVApfX98KW39+/fVX9OvXD7a2tjA3N4e/vz+OHj0q+jmp+hXJ5LgT+6zlhtPAiYioBqnccvPo0SMIgoDGjRvjwoULsLW1VTxmYGAAOzs76OrqinryoKAgLFy4EFu2bEGXLl2wfft2DBo0CLdv30ajRo1K1T99+jT69euHjz/+GJaWlti1axeGDh2K8+fPo23btqKem6rXg8Rs5BfJYWqoh0ZWxpoOh4iI6hGJIAiCpp68Y8eOaNeuHbZu3aoo8/b2xogRI7B27VqV9tGiRQuMHTtW5VajjIwMWFhYID09Hebm7C6pLvsvP8Hin6+hg5sVfprjr+lwiIiojhPz/a1Sy83BgwcxaNAg6Ovr4+DBgxXWHTZsmEpBFhQU4PLly1iyZIlSef/+/RESEqLSPuRyOTIzM2FlZVVunfz8fOTn5yvuZ2RkqLRvqhrFeBte34aIiGqYSsnNiBEjEBcXBzs7O4wYMaLcehKJBDKZTKUnTkpKgkwmg729vVK5vb290mDlinz++efIzs7GmDFjyq2zdu1arFq1SqX9kfqUTANvwfE2RERUw1QaUCyXy2FnZ6f4vbybqonN8168/okgCCpdE2Xfvn1YuXIlgoKCFLGVZenSpUhPT1fcoqOjRcdI4sjlgmI1cB+23BARUQ0TfYVidbGxsYGurm6pVpqEhIRSrTkvCgoKwowZM/Dzzz+jb9++FdY1NDSEoaFhleMl1UWn5iAzvwgGejrwsDXVdDhERFTPqJTcbNq0SeUdLliwQKV6BgYG8PX1RXBwMF555RVFeXBwMIYPH17udvv27cP06dOxb98+DB48WOW4qObcjClutfF2MIO+rtoWniciIlKJSsnNxo0bVdqZRCJRObkBilcYnzRpEvz8/ODv748dO3YgKioKc+bMAVDcpRQTE4PvvvsOQHFiM3nyZHz55Zfo1KmTotXHyMgIFhYc21Fb3FIsu8DXhIiIap5Kyc2jR4+q5cnHjh2L5ORkrF69GrGxsfDx8cHhw4fh6uoKAIiNjUVUVJSi/vbt21FUVIQ33ngDb7zxhqJ8ypQp2L17d7XESOLd5JWJiYhIg6p0nZuSTevSooi8zk31EgQBfmuOITm7AL+90QVtGlpqOiQiItICYr6/KzUgIjAwED4+PpBKpZBKpfDx8cG3335bqWBJu8Rn5CM5uwC6OhJ4OZhpOhwiIqqHRM+WWr58OTZu3Ij58+fD37/4yrOhoaF46623EBkZiTVr1qg9SKo7SsbbNLE1hVRf3HIcRERE6iA6udm6dSu++eYbjB8/XlE2bNgwtGrVCvPnz2dyU8+VzJTieBsiItIU0d1SMpkMfn5+pcp9fX1RVFSklqCo7vrfTCkmN0REpBmik5uJEycqLXRZYseOHZgwYYJagqK665biysScBk5ERJpRqSsUBwYG4u+//0anTp0AAOfOnUN0dDQmT56MRYsWKept2LBBPVFSnZCaXYCYtFwAbLkhIiLNEZ3c3Lx5E+3atQMAPHjwAABga2sLW1tb3Lx5U1GvLk0PJ/W4HVvcauNqbQxzqb6GoyEiovpKdHJz4sSJ6oiDtMDNmJKVwNlqQ0REmsOFf0htSlpuWnDZBSIi0iDRLTd5eXnYvHkzTpw4gYSEBMjlcqXHr1y5orbgqG65F58FALx4HxERaZTo5Gb69OkIDg7G6NGj0aFDB46tIQCATC7gQWJxctPUjskNERFpjujk5tChQzh8+DC6dOlSHfFQHRWdkoOCIjmk+jpwbmCk6XCIiKgeEz3mxtnZGWZm/M+clEUkFLfaeNiaQleHrXlERKQ5opObzz//HO+99x4eP35cHfFQHRWRkAkAaGpnquFIiIiovhPdLeXn54e8vDw0btwYxsbG0NdXvp5JSkqK2oKjuuP+s8HETe3ZqkdERJolOrkZP348YmJi8PHHH8Pe3p4DignA/7qlmrDlhoiINEx0chMSEoLQ0FC0bt26OuKhOkguF3A/oWSmFJMbIiLSLNFjbry8vJCbm1sdsVAdFZOWi9xCGQx0ddDIyljT4RARUT0nOrlZt24dFi9ejJMnTyI5ORkZGRlKN6p/SlptGtuaQE+XF70mIiLNEt0tNXDgQABAnz59lMoFQYBEIoFMJlNPZFRnlMyU8mCXFBER1QJcOJOqLCKe422IiKj2EJ3c9OjRo9zHrl69WpVYqI6KSOCyC0REVHtUeYBEeno6tmzZgnbt2sHX11cdMVEdIgjPzZSyZ8sNERFpXqWTm+PHj2PixIlwdHTE5s2bERAQgEuXLqkzNqoD4jLykJVfBF0dCdysTTQdDhERkbhuqSdPnmD37t3YuXMnsrOzMWbMGBQWFmL//v1o3rx5dcVItVjJeBs3a2MY6HGmFBERaZ7K30YBAQFo3rw5bt++jc2bN+Pp06fYvHlzdcZGdQDH2xARUW2jcsvN33//jQULFuD1119H06ZNqzMmqkPulyyYyfE2RERUS6jccnPmzBlkZmbCz88PHTt2xFdffYXExMTqjI3qgPtcU4qIiGoZlZMbf39/fPPNN4iNjcXs2bPx448/wtnZGXK5HMHBwcjMzKzOOKkWEgQB9+LZLUVERLWL6BGgxsbGmD59Os6ePYsbN25g8eLFWLduHezs7DBs2LDqiJFqqaSsAqTnFkJHUrz0AhERUW1Qpektnp6eWL9+PZ48eYJ9+/apKyaqI0qWXWhkZQypvq6GoyEiIiqmlrm7urq6GDFiBA4ePKiO3VEd8b/xNuySIiKi2oMXJqFKU6wpxZlSRERUizC5oUor6ZbigplERFSbMLmhSrvPC/gREVEtxOSGKiUluwBJWQUAAA87zpQiIqLag8kNVUpJq42zpRGMDUQtUUZERFStmNxQpURw2QUiIqqlmNxQpShmSnEwMRER1TJMbqhSOJiYiIhqKyY3VCkl3VJN2C1FRES1DJMbEi09txDxGfkAuBo4ERHVPkxuSLSSLikHcynMpfoajoaIiEgZkxsS7T5nShERUS3G5IZEK5kpxS4pIiKqjZjckGgRnClFRES1GJMbEk0xDZzdUkREVAsxuSFRsvOLEJOWCwBoYsvkhoiIah8mNyTKg8TiVhsbU0M0MDHQcDRERESlMbkhUbjsAhER1XZMbkiUCI63ISKiWo7JDYmiuMYNW26IiKiWYnJDopS03HgwuSEiolqKyQ2pLK9QhqiUHAC8xg0REdVeTG5IZQ8SsyAIgKWxPmxMOVOKiIhqJyY3pDLFxfvsTCGRSDQcDRERUdmY3JDK/remFLukiIio9mJyQyqL4EwpIiKqA5jckMp4jRsiIqoLmNyQSvKLZHiczJlSRERU+zG5IZVEJuVAJhdgZqgHe3NDTYdDRERULo0nN1u2bIG7uzukUil8fX1x5syZCuufOnUKvr6+kEqlaNy4MbZt21ZDkdZvJeNtmthzphQREdVuGk1ugoKCsHDhQrz//vsICwtDt27dMGjQIERFRZVZ/9GjRwgICEC3bt0QFhaG//u//8OCBQuwf//+Go68/uGCmUREVFdIBEEQNPXkHTt2RLt27bB161ZFmbe3N0aMGIG1a9eWqv/ee+/h4MGDCA8PV5TNmTMH165dQ2hoqErPmZGRAQsLC6Snp8Pc3LzqB/GMTC4gNj1XbfurbVYevIVj4Ql4P8Abs7o31nQ4RERUz4j5/taroZhKKSgowOXLl7FkyRKl8v79+yMkJKTMbUJDQ9G/f3+lsgEDBiAwMBCFhYXQ19cvtU1+fj7y8/MV9zMyMtQQfWnJ2fno+smJatl3bdKEM6WIiKiW01hyk5SUBJlMBnt7e6Vye3t7xMXFlblNXFxcmfWLioqQlJQER0fHUtusXbsWq1atUl/gFTDU0/gQpmrlbmOC9m5Wmg6DiIioQhpLbkq8ODhVEIQKB6yWVb+s8hJLly7FokWLFPczMjLQsGHDyoZbLjszKe6uGaT2/RIREZE4GktubGxsoKurW6qVJiEhoVTrTAkHB4cy6+vp6cHa2rrMbQwNDWFoyKnLRERE9YXG+lEMDAzg6+uL4OBgpfLg4GB07ty5zG38/f1L1f/777/h5+dX5ngbIiIiqn80Okhk0aJF+Pbbb7Fz506Eh4fjrbfeQlRUFObMmQOguEtp8uTJivpz5szB48ePsWjRIoSHh2Pnzp0IDAzE22+/ralDICIiolpGo2Nuxo4di+TkZKxevRqxsbHw8fHB4cOH4erqCgCIjY1VuuaNu7s7Dh8+jLfeegtff/01nJycsGnTJowaNUpTh0BERES1jEavc6MJ1XWdGyIiIqo+Yr6/tXvuMhEREdU7TG6IiIhIqzC5ISIiIq3C5IaIiIi0CpMbIiIi0ipMboiIiEirMLkhIiIircLkhoiIiLQKkxsiIiLSKhpdfkETSi7InJGRoeFIiIiISFUl39uqLKxQ75KbzMxMAEDDhg01HAkRERGJlZmZCQsLiwrr1Lu1peRyOZ4+fQozMzNIJBK17jsjIwMNGzZEdHS0Vq5bpe3HB2j/MfL46j5tP0YeX91XXccoCAIyMzPh5OQEHZ2KR9XUu5YbHR0duLi4VOtzmJuba+2bFtD+4wO0/xh5fHWfth8jj6/uq45jfFmLTQkOKCYiIiKtwuSGiIiItAqTGzUyNDTEihUrYGhoqOlQqoW2Hx+g/cfI46v7tP0YeXx1X204xno3oJiIiIi0G1tuiIiISKswuSEiIiKtwuSGiIiItAqTGyIiItIqTG4qsGXLFri7u0MqlcLX1xdnzpypsP6pU6fg6+sLqVSKxo0bY9u2baXq7N+/H82bN4ehoSGaN2+OAwcOVFf4KhFzjL/++iv69esHW1tbmJubw9/fH0ePHlWqs3v3bkgkklK3vLy86j6UMok5vpMnT5YZ+507d5Tq1abXUMzxTZ06tczja9GihaJObXr9Tp8+jaFDh8LJyQkSiQS//fbbS7epa+eg2GOsa+eg2OOri+eg2GOsS+fh2rVr0b59e5iZmcHOzg4jRozA3bt3X7pdbTgPmdyUIygoCAsXLsT777+PsLAwdOvWDYMGDUJUVFSZ9R89eoSAgAB069YNYWFh+L//+z8sWLAA+/fvV9QJDQ3F2LFjMWnSJFy7dg2TJk3CmDFjcP78+Zo6LCVij/H06dPo168fDh8+jMuXL6NXr14YOnQowsLClOqZm5sjNjZW6SaVSmvikJSIPb4Sd+/eVYq9adOmisdq02so9vi+/PJLpeOKjo6GlZUVXn31VaV6teX1y87ORuvWrfHVV1+pVL8unoNij7GunYNij69EXTkHAfHHWJfOw1OnTuGNN97AuXPnEBwcjKKiIvTv3x/Z2dnlblNrzkOBytShQwdhzpw5SmVeXl7CkiVLyqz/7rvvCl5eXkpls2fPFjp16qS4P2bMGGHgwIFKdQYMGCCMGzdOTVGLI/YYy9K8eXNh1apVivu7du0SLCws1BVilYg9vhMnTggAhNTU1HL3WZtew6q+fgcOHBAkEokQGRmpKKtNr9/zAAgHDhyosE5dPAefp8oxlqU2n4PPU+X46to5+KLKvIZ16TxMSEgQAAinTp0qt05tOQ/ZclOGgoICXL58Gf3791cq79+/P0JCQsrcJjQ0tFT9AQMG4NKlSygsLKywTnn7rE6VOcYXyeVyZGZmwsrKSqk8KysLrq6ucHFxwZAhQ0r9V1kTqnJ8bdu2haOjI/r06YMTJ04oPVZbXkN1vH6BgYHo27cvXF1dlcprw+tXGXXtHFSH2nwOVkVdOAfVpS6dh+np6QBQ6v32vNpyHjK5KUNSUhJkMhns7e2Vyu3t7REXF1fmNnFxcWXWLyoqQlJSUoV1yttndarMMb7o888/R3Z2NsaMGaMo8/Lywu7du3Hw4EHs27cPUqkUXbp0QUREhFrjf5nKHJ+joyN27NiB/fv349dff4Wnpyf69OmD06dPK+rUltewqq9fbGws/vrrL8ycOVOpvLa8fpVR185BdajN52Bl1KVzUB3q0nkoCAIWLVqErl27wsfHp9x6teU8rHergoshkUiU7guCUKrsZfVfLBe7z+pW2Xj27duHlStX4vfff4ednZ2ivFOnTujUqZPifpcuXdCuXTts3rwZmzZtUl/gKhJzfJ6envD09FTc9/f3R3R0ND777DN07969UvusbpWNZffu3bC0tMSIESOUymvb6ydWXTwHK6uunINi1MVzsCrq0nk4b948XL9+HWfPnn1p3dpwHrLlpgw2NjbQ1dUtlUUmJCSUyjZLODg4lFlfT08P1tbWFdYpb5/VqTLHWCIoKAgzZszATz/9hL59+1ZYV0dHB+3bt6/x/ziqcnzP69Spk1LsteU1rMrxCYKAnTt3YtKkSTAwMKiwrqZev8qoa+dgVdSFc1Bdaus5WFV16TycP38+Dh48iBMnTsDFxaXCurXlPGRyUwYDAwP4+voiODhYqTw4OBidO3cucxt/f/9S9f/++2/4+flBX1+/wjrl7bM6VeYYgeL/FqdOnYq9e/di8ODBL30eQRBw9epVODo6VjlmMSp7fC8KCwtTir22vIZVOb5Tp07h/v37mDFjxkufR1OvX2XUtXOwsurKOagutfUcrKq6cB4KgoB58+bh119/xfHjx+Hu7v7SbWrNeai2ocla5scffxT09fWFwMBA4fbt28LChQsFExMTxYj2JUuWCJMmTVLUf/jwoWBsbCy89dZbwu3bt4XAwEBBX19f+OWXXxR1/v33X0FXV1dYt26dEB4eLqxbt07Q09MTzp07V+PHJwjij3Hv3r2Cnp6e8PXXXwuxsbGKW1pamqLOypUrhSNHjggPHjwQwsLChGnTpgl6enrC+fPna/3xbdy4UThw4IBw79494ebNm8KSJUsEAML+/fsVdWrTayj2+EpMnDhR6NixY5n7rE2vX2ZmphAWFiaEhYUJAIQNGzYIYWFhwuPHjwVB0I5zUOwx1rVzUOzx1bVzUBDEH2OJunAevv7664KFhYVw8uRJpfdbTk6Ook5tPQ+Z3FTg66+/FlxdXQUDAwOhXbt2StPfpkyZIvTo0UOp/smTJ4W2bdsKBgYGgpubm7B169ZS+/z5558FT09PQV9fX/Dy8lI6aTVBzDH26NFDAFDqNmXKFEWdhQsXCo0aNRIMDAwEW1tboX///kJISEgNHpEyMcf3ySefCB4eHoJUKhUaNGggdO3aVTh06FCpfdam11DsezQtLU0wMjISduzYUeb+atPrVzItuLz3mzacg2KPsa6dg2KPry6eg5V5n9aV87Cs4wIg7Nq1S1Gntp6HkmcHQERERKQVOOaGiIiItAqTGyIiItIqTG6IiIhIqzC5ISIiIq3C5IaIiIi0CpMbIiIi0ipMboiIiEirMLkhojrDzc0NX3zxheK+RCLBb7/9ViPPRUR1B5MbIhItJCQEurq6GDhwoEbjiI2NxaBBgwAAkZGRkEgkuHr1qkZjKstrr70GXV1d/Pjjj5oOhaheYHJDRKLt3LkT8+fPx9mzZxEVFaWxOBwcHGBoaKix51dFTk4OgoKC8M477yAwMFDT4RDVC0xuiEiU7Oxs/PTTT3j99dcxZMgQ7N69W+nxkydPQiKR4OjRo2jbti2MjIzQu3dvJCQk4K+//oK3tzfMzc0xfvx45OTkKLbr2bMn5s2bh3nz5sHS0hLW1tZYtmwZKloh5vluqZIVi9u2bQuJRIKePXsq9rtw4UKl7UaMGIGpU6cq7ickJGDo0KEwMjKCu7s79uzZU+q50tPT8dprr8HOzg7m5ubo3bs3rl279tK/188//4zmzZtj6dKl+PfffxEZGfnSbYioapjcEJEoQUFB8PT0hKenJyZOnIhdu3aVmYCsXLkSX331FUJCQhAdHY0xY8bgiy++wN69e3Ho0CEEBwdj8+bNStv897//hZ6eHs6fP49NmzZh48aN+Pbbb1WK68KFCwCAY8eOITY2Fr/++qvKxzR16lRERkbi+PHj+OWXX7BlyxYkJCQoHhcEAYMHD0ZcXBwOHz6My5cvo127dujTpw9SUlIq3HdgYCAmTpwICwsLBAQEYNeuXSrHRUSVw+SGiEQp+bIGgIEDByIrKwv//PNPqXpr1qxBly5d0LZtW8yYMQOnTp3C1q1b0bZtW3Tr1g2jR4/GiRMnlLZp2LAhNm7cCE9PT0yYMAHz58/Hxo0bVYrL1tYWAGBtbQ0HBwdYWVmptN29e/fw119/4dtvv4W/vz98fX0RGBiI3NxcRZ0TJ07gxo0b+Pnnn+Hn54emTZvis88+g6WlJX755Zdy9x0REYFz585h7NixAKBIBuVyuUqxEVHlMLkhIpXdvXsXFy5cwLhx4wAAenp6GDt2LHbu3FmqbqtWrRS/29vbw9jYGI0bN1Yqe751BAA6deoEiUSiuO/v74+IiAjIZDJ1H4pCeHg49PT04Ofnpyjz8vKCpaWl4v7ly5eRlZUFa2trmJqaKm6PHj3CgwcPyt13YGAgBgwYABsbGwBAQEAAsrOzcezYsWo7HiIC9DQdABHVHYGBgSgqKoKzs7OiTBAE6OvrIzU1FQ0aNFCU6+vrK36XSCRK90vKaqIFQ0dHp1S3WWFhoeL3kseeT6peJJfL4ejoiJMnT5Z67Pkk6HkymQzfffcd4uLioKenp1QeGBiI/v37izgKIhKDyQ0RqaSoqAjfffcdPv/881JfzKNGjcKePXswb968Kj3HuXPnSt1v2rQpdHV1X7qtgYEBAJRq5bG1tUVsbKzivkwmw82bN9GrVy8AgLe3N4qKinDp0iV06NABQHELVVpammKbdu3aKZIUNzc3lY7l8OHDyMzMRFhYmFL8d+7cwYQJE5CcnAxra2uV9kVE4rBbiohU8ueffyI1NRUzZsyAj4+P0m306NFqmeYcHR2NRYsW4e7du9i3bx82b96MN998U6Vt7ezsYGRkhCNHjiA+Ph7p6ekAgN69e+PQoUM4dOgQ7ty5g7lz5yolLp6enhg4cCBmzZqF8+fP4/Lly5g5cyaMjIwUdfr27Qt/f3+MGDECR48eRWRkJEJCQrBs2TJcunSpzHgCAwMxePBgtG7dWulvNWrUKNja2uKHH36o/B+KiCrE5IaIVBIYGIi+ffvCwsKi1GOjRo3C1atXceXKlSo9x+TJk5Gbm4sOHTrgjTfewPz58/Haa6+ptK2enh42bdqE7du3w8nJCcOHDwcATJ8+HVOmTMHkyZPRo0cPuLu7K1ptSuzatQsNGzZEjx49MHLkSMWU7xISiQSHDx9G9+7dMX36dDRr1gzjxo1DZGQk7O3tS8USHx+PQ4cOYdSoUaUek0gkGDlyJK95Q1SNJEJFF5EgIqohPXv2RJs2bbjkARFVGVtuiIiISKswuSEiIiKtwm4pIiIi0ipsuSEiIiKtwuSGiIiItAqTGyIiItIqTG6IiIhIqzC5ISIiIq3C5IaIiIi0CpMbIiIi0ipMboiIiEirMLkhIiIirfL/VK8hXhHAvRwAAAAASUVORK5CYII=\n", + "image/png": "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", "text/plain": [ "
" ] @@ -147,7 +139,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "
" ] @@ -189,7 +181,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "
" ] @@ -232,7 +224,7 @@ "$$\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. " + "The `describing_function_plot` function plots $H(j\\omega)$ and $-1/N(a)$ and prints out the amplitudes and frequencies corresponding to intersections of these curves. " ] }, { @@ -243,7 +235,7 @@ { "data": { "text/plain": [ - "[(3.343977839541308, 1.4142156916816762)]" + "" ] }, "execution_count": 7, @@ -252,7 +244,7 @@ }, { "data": { - "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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAHbCAYAAABGPtdUAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAjT5JREFUeJzs3Xd809X+x/FXkqbpSPdetLRQ9t4gSxEQB4gDt6CI8+e+et2gXq/eq173vAjucVWcqKiAbNllUyile680HWmTfH9/BAKVMgppv2n6eT4efbT55ptvPz209N1zvuccjaIoCkIIIYQQot3Tql2AEEIIIYRwDQl2QgghhBAeQoKdEEIIIYSHkGAnhBBCCOEhJNgJIYQQQngICXZCCCGEEB5Cgp0QQgghhIeQYCeEEEII4SEk2AkhhBBCeAgJdkIItzd37lz69+/f5p933Lhx3H333a1y7XfeeYeEhAS0Wi0vvfRSq3wOV1u4cCEajQaNRtPidklKSnK+trKyslXqE0JIsBNCNGPmzJloNBqeffbZJse/+eYbNBpNm9dz//338/vvv5/SuWqFQHAEn+Dg4JOeZzKZuOOOO3jwwQfJy8tjzpw5rV+ciwQGBlJQUMBTTz3lPKYoCnPnziU2NhZfX1/GjRvHzp07m7xuw4YNfPXVV21drhAdjgQ7IUSzfHx8eO6556ioqFC7FIxGI2FhYWqX4TLZ2dk0NjZy/vnnExMTg5+f32ldp7Gx0cWVnZxGoyE6OpqAgADnsX/961+8+OKLvPbaa2zYsIHo6GjOPfdcqqurnedEREQQGhra5vUK0dFIsBNCNGvChAlER0fzz3/+s9nna2pqCAwM5Msvv2xy/Pvvv8ff39/5S339+vUMGDAAHx8fBg8ezKJFi9BoNGzduhVovpfrrz2Df+2FW758OUOHDsXf35/g4GBGjRpFVlYWCxcuZN68eaSlpTmH/RYuXNhs/TNnzmTatGnMmzePyMhIAgMDufnmm2loaDhum1RUVHDdddcREhKCn58f5513Hvv27XPWNGvWLKqqqpyfe+7cucdcY+HChfTp0weA5ORkNBoNBw8eBODNN98kJSUFb29vunXrxocfftjktRqNhrfeeoupU6fi7+/P008/3Wydb7zxBl27dsXHx4eoqCguvfRSAD744APCwsKwWCxNzr/kkku47rrrAEhLS2P8+PEEBAQQGBjIoEGD2Lhx43HbRFEUXnrpJR555BGmT59O7969ef/996mtreWTTz457uuEEK1Dgp0Qolk6nY5nnnmGV199ldzc3GOe9/f354orrmDBggVNji9YsIBLL72UgIAAampquOCCC+jWrRubNm1i7ty53H///WdUl9VqZdq0aYwdO5Zt27axdu1a5syZg0ajYcaMGdx333306tWLgoICCgoKmDFjxnGv9fvvv7N7926WLVvGp59+yqJFi5g3b95xz585cyYbN27ku+++Y+3atSiKwpQpU2hsbGTkyJG89NJLzqHKgoKCZr/WGTNm8NtvvwGO0FtQUEBCQgKLFi3irrvu4r777mPHjh3cfPPNzJo1i2XLljV5/RNPPMHUqVPZvn07N9xwwzHX37hxI3feeSdPPvkke/fu5eeff2bMmDEAXHbZZdhsNr777jvn+aWlpfzwww/MmjULgKuvvpr4+Hg2bNjApk2b+Pvf/45erz9um2RmZlJYWMjEiROdxwwGA2PHjmXNmjXHfZ0QonV4qV2AEMJ9XXzxxfTv358nnniC+fPnH/P87NmzGTlyJPn5+cTGxjpDwq+//grAxx9/jM1m47333sPPz49evXqRm5vLrbfeeto1mUwmqqqquOCCC0hJSQGgR48ezueNRiNeXl5ER0ef9Fre3t5NanvyySf529/+xlNPPYVW2/Tv3n379vHdd9+xevVqRo4c6fz6EhIS+Oabb7jssssICgpyDlUej6+vr3NYOSIiwnnu888/z8yZM7ntttsAuPfee1m3bh3PP/8848ePd77+qquuajbQHZadnY2/vz8XXHABAQEBJCYmMmDAAOfnvuqqq1iwYAGXXXaZ82uIj49n3Lhxztf/7W9/o3v37gB07dr1hG1YWFgIQFRUVJPjUVFRZGVlnfC1QgjXkx47IcQJPffcc7z//vvs2rXrmOeGDh1Kr169+OCDDwD48MMP6dSpk7OHaPfu3fTr16/JPWQjRow4o3pCQ0OZOXMmkyZN4sILL+Tll1+moKDgtK7VXG1ms5mcnJxjzt29ezdeXl4MGzbMeSwsLIxu3bqxe/fu0/r8f73+qFGjmhwbNWrUMdcePHjwCa9z7rnnkpiYSHJyMtdeey0ff/wxtbW1zudvuukmlixZQl5eHuDoYT08WQYcgXL27NlMmDCBZ599loyMjFOq/6+TahRFUWWijRAdnQQ7IcQJjRkzhkmTJvHwww83+/zs2bOdw7ELFixg1qxZzl/oiqKc9PparfaY8042KWDBggWsXbuWkSNH8vnnn5Oamsq6detO5cs5Jc0FkuN9La4MMKcSjvz9/U94jYCAADZv3synn35KTEwMjz/+OP369XMuMTJgwAD69evHBx98wObNm9m+fTszZ850vn7u3Lns3LmT888/n6VLl9KzZ08WLVp03M93uMfxcM/dYcXFxcf04gkhWp8EOyHEST377LN8//33zd4zdc0115Cdnc0rr7zCzp07uf76653P9ezZk7S0NOrq6pzH/hrAIiIiqK6upqamxnns8MSKExkwYAAPPfQQa9asoXfv3s4b9b29vbHZbKf0dTVXm9FoJD4+/phze/bsidVq5c8//3QeKysrIz093TkU3JLP/Vc9evRg1apVTY6tWbOmyTDzqfLy8mLChAn861//Ytu2bRw8eJClS5c6nz8cxt977z0mTJhAQkJCk9enpqZyzz33sGTJEqZPn37MfZRH69y5M9HR0c7hd4CGhgb++OMP55C1EKLtSLATQpxUnz59uPrqq3n11VePeS4kJITp06fzt7/9jYkTJzYJRVdddRVarZYbb7yRXbt2sXjxYp5//vkmrx82bBh+fn48/PDD7N+/n08++eS4M1nBcbP+Qw89xNq1a8nKymLJkiVNwlVSUhKZmZls3bqV0tLSY2aAHq2hocFZ208//cQTTzzBHXfcccz9deC412zq1KncdNNNrFq1irS0NK655hri4uKYOnWq83ObzWZ+//13SktLmwyBnszf/vY3Fi5cyFtvvcW+fft48cUX+frrr1s82eSHH37glVdeYevWrWRlZfHBBx9gt9vp1q2b85yrr76avLw83n333Sb369XV1XHHHXewfPlysrKyWL16NRs2bDhhuDy8WPEzzzzDokWL2LFjBzNnzsTPz4+rrrqqRbULIVxAEUKIv7j++uuVqVOnNjl28OBBxWAwKM39t/H7778rgPLFF18c89zatWuVfv36Kd7e3kr//v2Vr776SgGULVu2OM9ZtGiR0qVLF8XHx0e54IILlHfeeafJ53niiSeUfv36KYqiKIWFhcq0adOUmJgYxdvbW0lMTFQef/xxxWazKYqiKPX19coll1yiBAcHK4CyYMGCE36Njz/+uBIWFqYYjUZl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", "text/plain": [ "
" ] @@ -288,7 +280,7 @@ "outputs": [ { "data": { - "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", + "image/png": "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", "text/plain": [ "
" ] @@ -328,8 +320,7 @@ { "data": { "text/plain": [ - "[(0.6260158833534124, 0.3102619497970334),\n", - " (0.8741930326860968, 1.2156410944770426)]" + "" ] }, "execution_count": 9, @@ -338,7 +329,7 @@ }, { "data": { - "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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAHbCAYAAABGPtdUAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAr4dJREFUeJzs3Xd4U2X7wPFvRtO9N7QUCi2bAmVPB6KCCk4QQUABtyjq6+vCPV/1594KooALQQVUEJC9V9mF0k33nmmTnN8fgQqyWmh6kub+XFevniQn59zPSZreeaZGURQFIYQQQgjh8LRqByCEEEIIIRqHJHZCCCGEEM2EJHZCCCGEEM2EJHZCCCGEEM2EJHZCCCGEEM2EJHZCCCGEEM2EJHZCCCGEEM2EJHZCCCGEEM2EJHZCCCGEEM2EJHZCCLvy3HPP0b179yY/7yWXXMJDDz1kk2N/9tlnREZGotVqeeedd2xyjsY2e/ZsNBoNGo3GJtflxLH9/Pwa/dhCODNJ7IRwcpMmTUKj0fDaa6+dcv+iRYvQaDRNHs+jjz7KihUr6rWvWkkgWBOf+iQlpaWl3H///Tz++ONkZmYybdo02wfXSHx8fMjKyuLFF1+su+/nn3/myiuvJCgoCI1Gw65du0573l133UXbtm1xd3cnODiYUaNGcfDgwVP2ycrKcpgkVwhHIomdEAI3Nzdef/11ioqK1A4FLy8vAgMD1Q6j0aSlpVFbW8vIkSMJDw/Hw8Pjgo5TW1vbyJGdn0ajISwsDG9v77r7KioqGDhw4GlfBE4WHx/PrFmzOHDgAH/++SeKojB8+HDMZnPdPmFhYfj6+to0fiGckSR2QgiGDRtGWFgYr7766hkfr6iowMfHh59++umU+3/77Tc8PT0pKysDYMuWLfTo0QM3Nzd69erFwoULT6nVOVMt179rBv9dC/f333/Tp08fPD098fPzY+DAgaSmpjJ79myef/55du/eXdesN3v27DPGP2nSJEaPHs3zzz9PSEgIPj4+3HXXXdTU1Jz1mhQVFXH77bfj7++Ph4cHV199NYcPH66LafLkyZSUlNSd+7nnnjvtGLNnz6Zr164AREdHo9FoSElJAeDjjz+mbdu2GAwG2rdvzzfffHPKczUaDZ988gmjRo3C09OTl1566YxxfvTRR8TExODm5kZoaCg33XQTAHPmzCEwMBCj0XjK/jfeeCO33347ALt37+bSSy/F29sbHx8f4uPj2bZt21mvCcCECROYOXMmw4YNO+s+06ZNY8iQIbRu3ZqePXvy0ksvkZ6eXld2IYTtSGInhECn0/HKK6/w/vvvk5GRcdrjnp6ejB07llmzZp1y/6xZs7jpppvw9vamoqKCa665hvbt27N9+3aee+45Hn300YuKy2QyMXr0aIYOHUpCQgIbN25k2rRpaDQaxowZwyOPPELnzp3JysoiKyuLMWPGnPVYK1as4MCBA6xatYr58+ezcOFCnn/++bPuP2nSJLZt28avv/7Kxo0bURSFESNGUFtby4ABA3jnnXfqmiqzsrLOWNYxY8bw119/AdakNysri8jISBYuXMj06dN55JFH2Lt3L3fddReTJ09m1apVpzz/2WefZdSoUezZs4c77rjjtONv27aNBx98kBdeeIFDhw7xxx9/MGTIEABuvvlmzGYzv/76a93++fn5LF68mMmTJwNw2223ERERwdatW9m+fTv//e9/cXFxOccr0nAVFRXMmjWLNm3aEBkZ2ajHFkKcgSKEcGoTJ05URo0apSiKovTr10+54447FEVRlIULFyonf0Rs3rxZ0el0SmZmpqIoipKXl6e4uLgof//9t6IoivLpp58qAQEBSkVFRd1zPv74YwVQdu7cqSiKosyaNUvx9fU95fz/Ps+zzz6rxMXFKYqiKAUFBQpQd45/O3nf85XxTLF5eXkpZrNZURRFGTp0qDJ9+nRFURQlMTFRAZT169fX7Z+fn6+4u7srP/zww1nLciY7d+5UACU5ObnuvgEDBihTp049Zb+bb75ZGTFiRN1tQHnooYfOeewFCxYoPj4+Smlp6Rkfv+eee5Srr7667vY777yjREdHKxaLRVEURfH29lZmz559xueer3zJycmnvLb/9uGHHyqenp4KoHTo0EE5cuRIg88hhGg4qbETQtR5/fXX+frrr9m/f/9pj/Xp04fOnTszZ84cAL755htatWpVV0N04MAB4uLiTulD1r9//4uKJyAggEmTJnHllVdy7bXX8u6775KVlXVBxzpTbOXl5aSnp5+274EDB9Dr9fTt27fuvsDAQNq3b8+BAwcu6Pz/Pv7AgQNPuW/gwIGnHbtXr17nPM4VV1xBVFQU0dHRTJgwgblz51JZWVn3+NSpU1m2bBmZmZmAtYb1xGAZgBkzZjBlyhSGDRvGa6+9RlJS0kWX7YTbbruNnTt3snr1amJiYrjllluorq5utOMLIc5MEjshRJ0hQ4Zw5ZVX8uSTT57x8SlTptQ1x86aNYvJkyfXJQmKopz3+Fqt9rT9zjcoYNasWWzcuJEBAwbw/fffExsby6ZNm+pTnHo508jfs5VFUZRGGyn87+Oc6dienp7nPIa3tzc7duxg/vz5hIeHM3PmTOLi4iguLgagR48exMXFMWfOHHbs2MGePXuYNGlS3fOfe+459u3bx8iRI1m5ciWdOnVi4cKFjVI+X19fYmJiGDJkCD/99BMHDx5stGMLIc5OEjshxClee+01fvvtNzZs2HDaY+PHjyctLY333nuPffv2MXHixLrHOnXqxO7du6mqqqq7798JWHBwMGVlZVRUVNTdd6bpMv6tR48ePPHEE2zYsIEuXbowb948AAwGwykjLc/lTLF5eXkRERFx2r6dOnXCZDKxefPmuvsKCgpITEykY8eODT73v3Xs2JF169adct+GDRvqjt0Qer2eYcOG8cYbb5CQkEBKSgorV66se/xEMv7VV18xbNiw0/q5xcbG8vDDD7Ns2TJuuOGG0/pRNhZFUU4byCGEaHyS2AkhTtG1a1duu+023n///dMe8/f354YbbuCxxx5j+PDhpyRF48aNQ6vVcuedd7J//36WLl3Km2++ecrz+/bti4eHB08++SRHjhxh3rx5Zx3JCpCcnMwTTzzBxo0bSU1NZdmyZackV61btyY5OZldu3aRn59/zsShpqamLrbff/+dZ599lvvvvx+t9vSPwZiYGEaNGsXUqVNZt24du3fvZvz48bRs2ZJRo0bVnbu8vJwVK1aQn59/ShPo+Tz22GPMnj2bTz75hMOHD/P222/z888/N3iwyeLFi3nvvffYtWsXqampzJkzB4vFQvv27ev2ue2228jMzOTzzz8/ZQBGVVUV999/P3///TepqamsX7+erVu3nje5LCwsZNeuXXXN9YcOHWLXrl1kZ2cDcPToUV599VW2b99OWloaGzdu5JZbbsHd3Z0RI0Y0qHxCiAugZgc/IYT6Th48cUJKSori6uqqnOkjYsWKFQpQN4jgZBs3blTi4uIUg8GgdO/eXVmwYMFpHewXLlyotGvXTnFzc1OuueYa5bPPPjvr4Ins7Gxl9OjRSnh4uGIwGJSoqChl5syZdQMeqqurlRtvvFHx8/NTAGXWrFnnLOPMmTOVwMBAxcvLS5kyZYpSXV1dt8/JgycURVEKCwuVCRMmKL6+voq7u7ty5ZVXKomJiacc9+6771YCAwMVQHn22WfPeO4zDZ5QFEX56KOPlOjoaMXFxUWJjY1V5syZc8rjgLJw4cIzHvOEtWvXKkOHDlX8/f0Vd3d3pVu3bsr3339/2n4TJkxQAgICTimv0WhUxo4dq0RGRioGg0Fp0aKFcv/99ytVVVWKopx9YMOsWbMU4LSfE+XPzMxUrr76aiUkJERxcXFRIiIilHHjxikHDx4847Fk8IQQjUujKPXoGCOEEMfNnTuX6dOnc+zYMQwGwzn3TUlJoU2bNuzcuVO1FSLAOnVJcXExixYtUi0GNV1xxRV07NiR9957r97PmT17Ng899FBdfz1baIpzCOFs9GoHIIRwDJWVlSQnJ/Pqq69y1113nTepE+orLCxk2bJlrFy5kg8++KDBzy8pKcHLy4v77ruP119/vVFj8/LywmQy4ebm1qjHFcLZSWInhKiXN954g5dffpkhQ4bwxBNPqB2OqIeePXtSVFTE66+/fkq/u/q48cYbGTRoEEC91sRtqBODZnQ6XaMfWwhnJk2xQgghhBDNhIyKFUIIIYRoJiSxE0IIIYRoJiSxE0IIIYRoJiSxE0IIIYRoJiSxE0IIIYRoJiSxE0IIIYRoJiSxE0IIIYRoJiSxE0IIIYRoJiSxE0IIIYRoJiSxE0IIIYRoJiSxE0IIIYRoJiSxE0IIIYRoJiSxE0IIIYRoJiSxE0IIIYRoJiSxE0IIIYRoJiSxE0IIIYRoJiSxE0IIIYRoJiSxE0IIIYRoJvRqB2ArFouFY8eO4e3tjUajUTscIYQQQogLoigKZWVltGjRAq323HVyzTaxO3bsGJGRkWqHIYQQQgjRKNLT04mIiDjnPs02sfP29gasF8HHx8cm5zCbzRw6dIj27duj0+lscg575uzlB7kGUn4pvzOXH+QaSPmbpvylpaVERkbW5Tbn0mwTuxPNrz4+PjZN7Ly8vPDx8XHaN7Qzlx/kGkj5pfzOXH6QayDlb9ry16drmQyeEEIIIYRoJiSxE0IIIYRoJiSxE0IIIYRoJiSxE0IIIYRoJhwmsdu4cSNarZbXXntN7VCEEEIIIeySQyR2FouFhx9+mN69e6sdihBCCCGE3XKI6U4+++wz+vbtS0lJidqhCCGEEELYLbtP7AoLC3nnnXfYuHEjDz/88Fn3MxqNGI3GutulpaWAdY4Zs9lsk9hOHNdWx7d3zl5+kGsg5Zfyn/zbGTn7NZDyN035G3J8u0/snnzySR566CH8/f3Pud+rr77K888/f9r9hw4dwsvLy1bhAZCYmGjT49s7Zy8/yDWQ8kv5nZ2zXwMpv23LX15eXu997Tqx27lzJ1u2bOHDDz88775PPPEEM2bMqLt9YvmN9u3b23TlicTERGJjY512xm1nLj/INZDyS/mdufwg10DK3zTlP9EKWR92nditXr2axMREWrZsCUBJSQl6vZ6kpCQ+//zzU/Z1dXXF1dX1tGPodDqbv9ma4hz2zNnLD3INpPxSfmcuP8g1kPLbtvwNObZdJ3bTpk1j7NixdbenT59OTEwMjz76qIpRCSGEEELYJ7tO7Dw8PPDw8Ki77e7ujpeXF35+fuoFJYQQQghhp+w6sfu32bNnqx2CEMLOKYqC0WShqsZMZa2ZqhrrT2WNiaraE9vmuu2q2uO3jz9eWfPP/dW1ZtxcdHi56vFy0+N9/LeXqwtebno8XbQU5VZS4lqAr4dr3X5ernpc9Vo0Go3al0MI4WQcKrETQjRv1bVm0gorSSuoJLu0ui4Jq6w1Uf2vhOyU7VoTVTWWuuTMojRx4KvzTrvLRac5KdFzOSkpPClJPL7t6ao/5XHvk5JHDxcdWq0kiEKI+pHETgjRZBRFoaiyltSCCtIKK0ktqKxL5FILK8gpNZ7/IA1g0Glxc9HiYdDjYdDh5qLDw6DD3aDD/ZRt/Rnvd9XrMJrMlFWbKDeaKD/+u6zaRIXRRFl1LXnFZZi1LnWPV9RY55uqNVvLWlRZC1RdcBk0GvAy6Gnh507bEE/aBnvV/UQHe+LpKh/jQoh/yCeCEKJRmS0Kx4qr6hK31MIK0k5K4MqMpnM+39tVT6tAD8J93fFy1eFu0P8rCfv3tv6U+z0MOtyO33bR2XbVRLPZzIEDB+jYsWPdqDWzRaGi5tQksC7pM5ooq0sQa097/JTbRhNmi4KiQJnRxKGcMg7llJ0WQ7iv2/FEz5O2If8kfaE+rtIULIQTksROCNFglTUm0gurSM4rY+uBUr47vJ+0oirSCirILK6i1nzuttBQH1eiAjxpFehBVIAHrQI9aBXgQVSgJ/4eLg6dkOi0GnzcXPBxc7mo4yiKQnWthXKjidLqWtIKK0nKLScpr4KkvHKO5pWTX15DVkk1WSXVrDuSf8rzPQ26kxK94zV9IV5EBXrgqnfeaSmEaO4ksRNCnFFBuZGUgkrS/1XzllpYSV7Zv5tMi065ZdBpiQhwtyZrAR60CvQkKsCDqEAPIvw9cDdIYnE+Go3GWhNp0BHs7UrbYC8ubR9yyj7FlTV1iZ416bMmfmmFlVTUmEnIKCEh49Q1trUaaBXgUZfotQv2om2IJ9FBXvh7GpqyiEIIG5DETgiB2aJwKLuM7amFbE0pYntqEZnF5+4X5uOmp1WAB/4uJrq0DiMq8HgNXKAnYT5u6KTDv835eRiIjzIQH3XqkotGk5m0gsq6RO/kpK/caCKloJKUgkpWHMw95XmBnobjCd+pffla+rvL6ymEg5DETggnVFljYld6MdtTitiaWsTO1KLT+r5pNBDm43a8idSasLUK8Ki77edhOKmPmXMuJ2SvXPU6YkK9iQn1PuV+RVHILTOekuidqO07VlJNQUUNBRWFbEkpPOV5Br2W6CBrstephQ+D2gXRpaVvUxZJCFFPktgJ4QRyy6rZnlLEttQitqUUsu9YKaZ/zQniadDRM8qfXlEB9GrtT/dIPxlx2cxoNBpCfdwI9XFjQLugUx6rMJpIzj+5Wfd4X778CmpMFg5ml3Ewu4wle7L435+H8PNwoX90AG09a/EKraR1sPdZziqEaEryqS1EM6MoCkl55WxNKWJbShHbUgtJLag8bb9wXzd6tQ6gV5Q/8VH+dAjzRm/jUaTCfnm66unS0ve0mjizRSGzqIqkvHKO5JazJaWQTUkFFFfW8vveHAA+2LyGqEAPBrULYnBMEP3bBuHrfnGDR4QQF0YSOyEcnNFkZk9GyfG+cYVsSy2iuLL2lH00Gmgf6k3v1tbauF6tA2jp565SxMKR6LQa66jlQA8u7RDC1CHRmMwWdmcUs+ZQHsv3pHOooMY6wKYgjbmb09BqoFuEH4PaBTEoJoierfwx6OVLgxBNQRI7IRxMUUUN21OL2JpayPaUIhIySqgxW07Zx81FS/dIP3q3DiA+yp+eUf4XPf2GECfodVriowLoHuHLFS1qiWgTw7bUYtYdyWft4TyS8irYlV7MrvRiPlh1BA+Djr5tAhgUE8zgmCBiQrwcekobIeyZJHZC2DFFUUgrrDzerGqtjTuSW37afkFervSK8q+rjevcwsfmk/MKcYK3m55hnUIZ1ikUgGPFVaw7ks+6w/msP5JPQUUNqw7lseqQdem1UB9XBh5vth3YLogQbzc1wxeiWZHETgg7oygKh3LKWJqQxeI9WRzNqzhtn3YhXscTOWsfuahAD6kBEXajhZ87t/SK5JZekVgsCgeyS1l3OJ91R/LZklxITqmRn3dk8vOOTAA6hHkzqF0QA2OC6NsmAA+D/GsS4kLJX48QdkBRFBJzylmScIwle7JIOimZM+i0dIvwJb61P72jrE2rMpGscBRarYbOLXzp3MKXu4a2pbrWzPbUItYezmfdkTz2HSutG3H7xbpkDDotPaP8GBwTXDetisyhJ0T9SWInhIoSc8pYnJDFkoRjpyVzQ2KDuaZbOJd3DMFb+seJZsLNRcfAdtYmWOhAYUUN64832647kk9mcRWbjhay6Whh3bQqA9oGMqidtX9eZICH2kUQwq5JYidEE0vMKWNJQhZL9mSd0l/uRDI3slsYl3cMlcEOwikEeBq4Nq4F18a1QFEUkvMr6vrnbTw+rcrSPdks3ZMNQFSgB0NigrkxPoK4CF/pgiDEv0hiJ0QTOJxjndh1SUIWh09L5oIY2S1ckjnh9DQaDdHBXkQHe3F7/9bHp1UpOV6bl8fOtGJSCyr5piCVbzal0inch3F9WzGqewup1RbiOEnshLCRI7llLEnIZsmeYyTm/JPMueg0DIkJZmS3cIZ1kmROiLOxTqtinUB7+rAYyo0mNiUVWL8k7clif1YpTy/ayytLD3BdXAvG9W1Ftwg/tcMWQlWS2AnRiI7klrMkIYule7I4lFNWd7+LTsPgmGBGdrUmczIrvxAN5+X6z7QqM6/pxM87M5m3OZWkvAq+25rOd1vT6dLSh1v7tGJU95Z4yZJ4wgnJu16Ii5RRUstfK4/wx74cDmafmswNahfEyG4tuEKSOSEalb+ngTsHteGOga3ZklzIvC1p/L4nm72ZpTy1cC+vLDnAdd1bMq5PK7pG+J7/gEI0E5LYCXEBkvLKrfPMJRzj0EnNrHqthsExQYzoGs7wTmH4ekgyJ4QtaTQa+kYH0jc6kGevreHnHRnM25zG0fwK5m9JY/6WNLq29GVc31ZcF9cCT6nFE82cvMOFqCejycwvu47x9YYU9h0rrbtfp4FBMUFc062FJHNCqCjA08CUwdHcOagNm44WMn9LGn/szWZPZglP/LyHlxbvZ1QPay1el5ZSiyeaJ0nshDiPwooavt2UypyNqeSXGwFrzdzAdkGM6BJKK10xfbp3QafTqRypEAKstXj92wbSv20gBeVGFuzIYP6WdJLzK5i3OY15m9OIi7DW4l0b10JWuhDNirybhTiLI7nlfLU+mQXbMzCaLACE+bgxaWBrxvSKxN/TgNls5sCBsvMcSQihlkAvV6YNacvUwdFsTCpg3pY0/tyXze6MEnZn7OHFxQcY3aMF4/pE0amFj9rhCnHRJLET4iSKorAxqYAv1iWz8mBu3f1dWvowdXA0I7qG46LTqhihEOJCaDQaBrQLYkC7IPLLjfy0PYP5W9JILajk201pfLspje6Rfozr04pr4sKlFk84LHnnCgHUmCwsTjjGF2uT2Z9l7T+n0cDlHUKZOrgNfdoEyAz3QjQTQV6u3D20LdMGR7PxaAHzNltr8XalF7MrvZgXF+/n+p4tGde3FR3CpBZPOBZJ7IRTK66sYe7mNL7ekEJumbX/nJuLlpvjI5k8sDXRwV4qRyiEsBXt8b6yA9sFkVdm5Mft6Xy3JZ20wkrmbLT2q+3R6ngtXrcWuBukH62wf5LYCaeUnF/BV+uS+Wl7BlW1ZgBCvF2ZOKA14/q0wt/ToHKEQoimFOztyr2XtOPuIW1Zn5TPvM1pLN+fw860YnamWWvxbugZwbi+rYgN9VY7XCHOShI74TQURWFLciFfrEvmrwM5KIr1/o7hPkwd3IZrurXAoJf+c0I4M63WukrM4Jhgcsuq+XGbtS9eRlEVszekMHtDCoPaBfHkiI4y2ELYJUnsRLNXa7awdE8WX6xNZk9mSd39l3UIYcqgNvRvGyj954QQpwnxduO+S9txz9C2rD2Sz7zNqfx1IJd1R/IZ+f5axvSK5OFh7dQOU4hTSGInmq2Sylrmb01j9voUskurAXDVa7kxPoI7BrahXYj0nxNCnJ9Wq2FobDBDY4NJL6zktT8OsiQhi++2prM44Rg3dvTm8XZmPGQuS2EHJLETzU5aQSVfrU/mh23pVNZY+88FebkysX8Ut/WLIkD6zwkhLlBkgAcfjuvJpAGFvLh4PwkZJXy9q5gVqev479UdGNk1XFoAhKoksRPNRnJ+Bf/78yC/782u6z/XPtSbOwe34bq4Fri5yLdpIUTj6N06gEX3DuTnHem8unQ/GUVV3D9vJ7OjUnjmmk7ERfqpHaJwUpLYCYdXUlXL+ysO8/XGFGrN1oxuaGwwUwa3YVC7IPn2LISwCa1Ww/U9WtJaX8zaXFc+W5vMttQiRn24nut7tOQ/V7Un3Ndd7TCFk7H7IYDTpk0jPDwcHx8funbtyuLFi9UOSdgJs0Vh7uZULn3zb75Yl0ytWeHS9sH88dBgvr6jD4NjgiWpE0LYnJtey4OXt2Plo0O5oUdLABbuzOTSN//m/5YnUlljUjlC4UzsPrGbMWMGKSkplJaW8tVXXzF+/HiKiorUDkuobMORfEa+t5anFu6lsKKGdiFezJ7cm1mT+8hM8UIIVYT7uvP2mO78ct9AekX5U11r4d0Vh7nszdUs2J6BxaKoHaJwAnbfFNuhQ4e6bY1GQ3V1NVlZWfj7+5+yn9FoxGg01t0uLbUuC2U2mzGbzTaJ7cRxbXV8e6dG+VMKKnjt90MsP2Bdx9XX3YXpl7djXJ9IXHTaJn8t5D0g5T/5t7Nx9vLDma9BlxbefDe1D7/vzeH1Pw+RUVTFIz/uZvaGZJ4e0ZFerf3PdjiH4+zvgaYqf0OOr1EUxe6/Qtx7773MmjWL6upqRo0axaJFi07b57nnnuP5558/7f6NGzfi5SXTWji6ihoL3+8t4deDpZgsoNXAyFhvxnXzxdtVBkUIIexTjVnhlwOl/LCvhKpa67/bQa08mNTTjzAvF5WjE46ivLyc/v37U1JSgo/PuVulHCKxA2u2umrVKvbs2cPDDz982uNnqrGLjIyksLDwvBfhYmJKTEwkNjYWnRPOX9QU5TdbFH7cnsHbyw9TUFEDwJCYIJ4a0cEu5qGT94CUX8rvvOWH+l+D/HIjby8/zI/bM7AoYNBpmDywNfcMbYu3m903np2Vs78Hmqr8paWlBAQE1Cuxc5h3k06nY9iwYbzzzjt06tSJK6+88pTHXV1dcXV1PePzbP1ma4pz2DNblX9jUgEvLN7PgSxrs3p0sCfPjOzEpR1CGv1cF0veA1J+Kb/zlh/Ofw1CfT14/aY4Jg1sw0tL9rP+SAGfrklmwY5MHhnenlt6RaLTOu5gL2d/D9i6/A05tsMkdidYLBaSkpLUDkPYUFpBJa8sPcAf+7IB8HHT89CwWCb0j8JFZ/fjfYQQ4qw6hvvw7Z19WXEgl1eWHuBofgVP/LyHrzdY578b2C5I7RCFg7Pr/5Ll5eXMnTuX8vJyTCYTCxYsYNWqVQwePFjt0IQNlFXX8trvBxn29mr+2JeNTqvh9v5R/P3YpdwxqI0kdUKIZkGj0TCsUyh/PDSEZ67phI+bnoPZZdz2xWamfL2Vo3nlaocoHJhd19hpNBq+/PJL7rvvPhRFoV27dsybN4+uXbuqHZpoRGaLwk/b0/nfn4nkl1v7SQ6OCeKZazoRG+qtcnRCCGEbBr2WOwe14YYeLXl3xWG+2ZTKXwdy+ftQHhP6RzH98hj8PGQJRNEwdp3YeXp6snLlSrXDEDa0+ai1H92+Y9Z+dG2CPHl6ZEcu6xAikwsLIZyCv6eB567rzPh+Ubyy9AArD+Yya30KC3dm8tDlMdzWT7qhiPqz68RONF/phZW8+vsBlu6x9qPzdtMz/fIYbu/fGoNePsCEEM6nXYgXX03qzZrEPF5asp/EnHKe+20/32xK5Y2buhEfFaB2iMIBSGInmpTFovDV+mTe+PMQNSYLWg2M69uKh4fFEuh1+qhmIYRwNkNig1nadjDfbU3n7eWJJOVVMPazTcy8tjPj+7aS1gxxTpLYiSaTV2bkkR93syYxD4CB7QJ55ppOsgSYEEL8i16nZXy/KK7r3oInFuxhyZ4snlm0l4T0Yl4c3QU3F+edWkScmyR2okn8fSiXR3/cTX55Da56LTOv7cS4PvLNUwghzsXHzYUPxvWg2xpfXv/jID9uz+BQThmfjI+nhZ+72uEJOySdmYRNGU1mXly8n0mztpJfXkOHMG9+e2AQt/WNkqROCCHqQaPRcNfQtnx9Rx/8PFxIyCjh2vfXsTGpQO3QhB2SxE7YTFJeOTd8tIEv1yUDMLF/FIvuGyhTmAghxAUYHBPMb/cPolO4DwUVNYz/cjNfrD2Kg6wMKpqIJHai0SmKwvdb07jmvXXsO1aKv4cLX9zei+dHSb8QIYS4GJEBHiy4ZwDX92iJ2aLw0pIDPPT9LqpqzGqHJuyE9LETjaqkqpYnf7Z29AXrAIm3b+lOqI+bypEJIUTz4G7Q8fYtccRF+PLikgP8susYh7LL+GxCL1oFeqgdnlCZ1NiJRrMtpZAR765lyZ4s9FoNj1/VgW/u6CtJnRBCNDKNRsOkgW2YN6UvQV4GDmaXce0H6+pmHRDOSxI7cdFMZgvv/JXILZ9uJLO4iqhAD366ZwD3XNIWrVYGSAghhK30jQ7ktwcGERfpR0lVLRNnbeHDVUek350Tk8ROXJTcChO3fbmVd/46jEWBG3q0ZMmDg+ke6ad2aEII4RTCfd354a5+jO0diaLA//48xL1zd1BuNKkdmlCB9LETF+z3vdk8viSLihoLXq56XhrdhdE9WqodlhBCOB1XvY7XbuxGtwg/nv11L7/vzeZIbjmfTognOthL7fBEE5IaO9FglTUm/rsggfvn76KixkJchC9LHhwkSZ0QQqhsXN9WfH9Xf0J9XDmcW86oD9bz1/4ctcMSTUgSO9Eg+45ZJ8b8bms6Gg3c3NmH76f1JSrQU+3QhBBCAD1b+fPbA4Po3dqfMqOJKXO28fbyRCwW6XfnDCSxE/WiKApfrkvm+g83kJRXQaiPK3Mm92ZiD39cdPI2EkIIexLi7cbcKf2Y2D8KgPdWHGbqnG2UVNWqHJmwNfmPLM6rutbMPd/u4MXF+6kxWxjWMZTfpw9hQNtAtUMTQghxFga9ludHdeGtm+Nw1WtZcTCX0R+uJzGnTO3QhA1JYifOqaSqltu/3MIf+7Ix6LS8OKozn98eT4CnQe3QhBBC1MON8REsuGcALf3cSc6vYPSH61l6fBJ50fxIYifOKqe0mjGfbmRLSiHernrm3NmHCf1bo9HI3HRCCOFIurT05bcHBjGwXSCVNWbunbuD134/iFn63TU7ktiJMzqaV86NH2/gYHYZwd6ufH9Xf/pFS9OrEEI4qgBPA19P7sO0IdEAfLI6iUmztlBUUaNyZKIxSWInTrM7vZibPtlIRlEVrQM9+PmeAXRq4aN2WEIIIS6SXqflyREdef/WHri76Fh7OJ9rP1jHvmMlaocmGokkduIUaw/ncevnmyisqKFrS19+umcAkQGyqLQQQjQn18a1YOF9A2gV4EFGURU3fryBrSmFaoclGoEkdqLOL7syuWP2ViprzAxqF8T8af0I8nJVOywhhBA20CHMh9/uH8TgmCCqay1MnbONo3nlaoclLpIkdgKAr9YlM/27XdSaFa7pFs6Xk3rh5SorzgkhRHPm6+HCZxN6ERfpR3FlLZNmbSW/3Kh2WOIiSGLn5BRF4Y0/DvLC4v0ATBrQmvfG9sBVr1M5MiGEEE3B3aDjy4m9iAxwJ62wkilfb6Oqxqx2WOICSWLnxExmC48vSOCjv5MAeOzK9jx7bSe0WpnORAghnEmQlyuzJ/fB192FXenFPPT9TpkKxUFJYuekqmrM3P3tdn7YloFWA6/d0JX7Lm0nc9QJIYSTahvsxee398Kg0/LnvhxeXnJA7ZDEBZDEzgmVVNYy4cvN/HUgF1e9lk/GxzO2Tyu1wxJCCKGyPm0CePOWOAC+Wp/MrPXJKkckGkoSOyeTXVLNLZ9uZFtqEd5uer65sy/DO4epHZYQQgg7cV1cCx6/qgMALyzez5/7slWOSDSEJHZO5EiudTWJQzllhHi78uPd/enTJkDtsIQQQtiZu4dGM65vKxQFHpy/k51pRWqHJOpJEjsnsSu9mJs/2UBmcRXRQZ4suGcAHcJkNQkhhBCn02g0vHBdZy5tH4zRZGHK19tILahQOyxRD5LYOYHd6cWM+3wTRZW1xEX48uPd/WU1CSGEEOek12n5YFxPOrfwoaCihsmztsq6sg5AErtmLr2wkju/tq4mMbBdIPOm9iNQVpMQQghRD56uer6a1JsWvm4cza9g2jfbqK6VOe7smSR2zVhJZS2TZ28lv7yGTuE+fDqhF56ymoQQQogGCPVxY/YdffB207M1pYhHf9yNRea4s1t2ndgZjUYmT55MREQEvr6+XHLJJezZs0ftsByC0WRm2jfbOJJbTrivG19N6i1LhAkhhLggsaHefDo+HhedhsUJWbzx5yG1QxJnYdeJnclkIjo6mk2bNlFYWMh1113H6NGj1Q7L7imKwuM/JbA5uRCv49XoYb5uaoclhBDCgQ1oF8RrN3QD4JPVSXy7KVXliMSZ2HVi5+npyTPPPENERAQ6nY7777+f5ORkCgoK1A7Nrr29PJFFu46h12r4eHxPOobL6FchhBAX78b4CB4eFgvAzF/2supgrsoRiX9zqLa5jRs3EhoaSmBg4GmPGY1GjEZj3e3S0lIAzGYzZrNtOnqeOK6tjn8hftyWwfsrjwDw0qjODIgOcKryNzVnvwZSfin/yb+dkTNeg/suaUNaYQULdmTy4Pe7eeXyYGKdqPwna6rXvyHH1yiK4hA9IEtKSujbty//+c9/uOOOO057/LnnnuP5558/7f6NGzfi5eXVFCGqbsexKp5blYtFgTFdfJnQ3U/tkIQQQjRDJovCcytz2ZVdjb+bjreuCiPEy6HqihxKeXk5/fv3p6SkBB+fc7fCOURiV11dzdVXX03Pnj156623zrjPmWrsIiMjKSwsPO9FuFBms5nExERiY2PR6XQ2OUd9HcwuY8xnmyg3mhndvQVv3tQVjUZj03PaU/nV4uzXQMov5Xfm8oNzX4Oy6lrGfLaZQznltAv25Me7+uHj7qJ2WE2qqV7/0tJSAgIC6pXY2X16bTKZGDt2LC1atODNN988636urq64up4+P5tOp7P5H1tTnONcskuqufPr7ZQbzfSLDuD1m7qh1zddPGqX3x44+zWQ8kv5nbn84JzXwM9Tx5cTe3Hd+2s5klfBvfN28fUdfTDo7br7vk3Y+vVvyLHt/upPnTqVqqoqZs+ebfMaKEdUbjQxefZWskuraRvsyafje+HahEmdEEII5xXu68Zzl4bgadCx8WgB/12QgAM0BDZrdp3YpaamMnv2bNasWYO/vz9eXl54eXmxdu1atUOzC7VmC/fN3cGBrFKCvAzMntwHXw/nqgYXQgihrugAAx+M645Oq+HnnZn83/JEtUNyanbdFBsVFSWZ/1koisLMX/ayOjEPNxctX07sLeu/CiGEUMWQmGBeHt2F//68h/dWHiEiwINbekWqHZZTsusaO3F2H69OYv6WdDQaeG9sD+Ii/dQOSQghhBMb26cV913aFoDnft1HXpnxPM8QtiCJnQP6ZVcmb/xhXc7l2Ws6MbxzmMoRCSGEEPDIFe2Ji/SjssbMuyukSVYNktg5mC3JhTz2YwIAdwxsw6SBbVSOSAghhLDSajU8cXUHAOZvSScpr1zliJyPJHYOpKSylgfm76DGbOHKzqE8NbKj2iEJIYQQp+gXHciwjiGYLQqv/35Q7XCcjiR2DuSFxfvJKTXSOtCD/xtjHYEkhBBC2JvHr+qAVgPL9uewNaVQ7XCciiR2DuKv/Tks2JGBRgNv3hyHh8GuBzQLIYRwYjGh3ozpbR0V+8rSAzLDRROSxM4BFFfW8MTCPQBMGdSGXq0DVI5ICCGEOLeHh8Xi7qJjZ1oxf+zNVjscpyGJnQM4MWy8bbAnjwxvr3Y4QgghxHmF+LgxdUg0AK//cZBas0XliJyDJHZ27o+92SzadQzt8SZYNxdZLkwIIYRjmDYkmiAvAykFlczfkqZ2OE5BEjs7VlhRw9OLrE2wdw1tS49W/ipHJIQQQtSfl6ue6cNiAXj3r8OUVdeqHFHzJ4mdHZv5y17yy2uIDfXioWExaocjhBBCNNjY3pFEB3lSUFHDZ2uOqh1OsyeJnZ1akpDF4oQsdFoNb94ch6temmCFEEI4Hhedlv9cZZ20+PO1R8kuqVY5ouZNEjs7lF9u5Jlf9gJw7yVt6Rbhp25AQgghxEW4snMo8VH+VNda+L/lstSYLUliZ2cUReGZRXsprKihQ5g3D1wmTbBCCCEcm0aj4ckR1lq7H7encyi7TOWImi9J7OzMbwlZ/L43G/3xJliDXl4iIYQQji8+KoCrOodhUazTnwjbkKzBjuSWVTPzeBPs/Ze1o0tLX5UjEkIIIRrPf65qj16rYeXBXDYk5asdTrMkiZ2dUBSFpxbupbiylk7hPtx3aTu1QxJCCCEaVXSwF+P6tgLgtd8PYrHIUmONTRI7O/HLrmMs35+Di07DW7fE4aKTl0YIIUTz8+DlMXgadCRklLB4T5ba4TQ7kj3YgZzSap79dR8A0y+PoWO4j8oRCSGEELYR5OXK3UPbAvC/Pw9iNJlVjqh5kcTODvzf8kRKqmrp2tK37s0uhBBCNFd3Dm5DiLcr6YVVfLtJlhprTJLYqSy9sJKftmcA8Nx1ndBLE6wQQohmzsOgZ8YV1qXG3l95mJIqWWqssUgWobKP/j6CyaIwOCaI+KgAtcMRQgghmsRN8RHEhHhRXFnLR38fUTucZkMSOxWlF1by4zZrbd30y2UiYiGEEM5Dr9Py36utkxbPWp9CZnGVyhE1D5LYqeijv5MwWRQGtQuiV2uprRNCCOFcLusQQr/oAGpMFt5adkjtcJoFSexUklFUyY/b0gGYPkxq64QQQjgfjUbDE1d3BGDhzkz2HytVOSLHJ4mdSk7U1g1sF0hvqa0TQgjhpOIi/bi6SxiKAr/szlQ7HIcniZ0KMour/qmtuzxW5WiEEEIIdQ3vHArAxqQClSNxfJLYqeCjVUeoNSsMaBtInzZSWyeEEMK59Y8OAmBvZolMfXKRJLFrYseKq/ihrrZO+tYJIYQQYb5uRAd5YlFgS3Kh2uE4NEnsmthHf1tr6/pHB9I3OlDtcIQQQgi70K+t9X+iNMdeHEnsmtCx4ip+2Hp83joZCSuEEELU6X+8smPjUUnsLoYkdk3o47+TqDFb6BcdQD+prRNCCCHqnPi/eCCrlMKKGpWjcVyS2DWRrJIqvt8qI2GFEEKIMwn2diU21AuAzVJrd8EksWsiJ2rr+rYJoH9bqa0TQggh/m1AW+vo2A3Sz+6C2X1i9+yzz9KpUye0Wi3fffed2uFckOySar7bYq2te2iY1NYJIYQQZ9JP+tldNLtP7GJiYnj33Xfp06eP2qFcsDkbU6gxW+gjtXVCCCHEWfWLDkCjgSO55eSWVasdjkPSqx3A+YwfPx6Al19++Zz7GY1GjEZj3e3SUut6c2azGbPZbJPYThz3XMdXFIXfdh8DYHzfSJvFoob6lL+5c/ZrIOWX8p/82xk5+zVo7PJ7u+roFObDvqxS1h/O47q4Fo1yXFtpqte/Ice3+8Suvl599VWef/750+4/dOgQXl5eNj13YmLiWR87lG8kvagKN72GFhRy4ECxTWNRw7nK7yyc/RpI+aX8zs7Zr0Fjlj/GT2FfFvyx4ygxhpJGO64t2fr1Ly8vr/e+zSaxe+KJJ5gxY0bd7dLSUiIjI2nfvj0+Pj42OafZbCYxMZHY2Fh0Ot0Z91m49CAAwzqF0qNrZ5vEoZb6lL+5c/ZrIOWX8jtz+UGugS3Kf40ml0UHdnCg0ELHjh0b5Zi20lSv/4lWyPpoNomdq6srrq6up92v0+ls/sd2tnNYLApL92YDcG1cy2b7R98U19jeOfs1aMryWywKuWVGKmtMGE0W60+tuW67um7bjLHW8s+2yYK3m55QbzdCfdwI9XElxMcNHzc9Go3momKS19+5yw9yDRqz/H3bBqHTakgrrCS7rIaWfu6NclxbsvXr35BjN5vEzh7tSCsiq6Qab1c9Q2OD1Q5HCIeiKApZJdUcyinjcE4Zh7LLOZxbxuGccqpqG68/i5uL1proebsR4uNal/SF+rgRG+pN+1BvtNqLS/yEEPXn7eZCl5a+7E4vZmNSATfFR6gdkkOx+8SutrYWs9mMxWKhtraW6upqDAYDWq3dD+hlcUIWAFd0CsXNxXm/yQlxLoqikFduJDG7nMScsrqfwznllBlNZ3yOXqvBw6DD1UWHq157/EeHq8tJ23rtKY8b9FrKqk3klFYf/zFSUlVLda2F1IJKUgsqz3guHzc9vVsH0KdNAL3bBNC1pS8uOvv//BHCkQ1oGyiJ3QWy+8Ru6tSpfP311wCsXbuW22+/nVWrVnHJJZeoG9h5mC0KS/ZYE7tr7XxUjxBN7XBOGb/vzWbdkXwSc8oorqw94356rYY2QZ7Ehnof//EiNsybqAAP9I2QXFXXmsktNZJT9k+yl3s88TtWUs3ezBJKq02sOJjLioO5ALi76OgZ5Ufv1gH0ivLDzWS56DiEEKfqHx3Ix38nseloAYqiXHR3CWdi94nd7NmzmT17ttphNNjm5ALyyoz4urswsF2Q2uEIoSpFUTiQVcbve7P4fW82R3JPHeGl0UDrQE9iQrxoH+ZNzPEm0DZBnhj0tqsdc3PR0SrQg1aBHmd83GS2sO9YKVtTCtmcXMjWlEKKK2tZf6SA9UesE6jqtdBzUzk3xUdyTVw4Hga7/1gVwu71au2Pi05DZnEVaYWVRAV6qh2Sw5BPIBs50Qx7Vecwm/5jEsJeKYpCQkYJS/dm8cfe7FOaOl10Gga1C2J45zC6tvSlXYiXXXZX0Ou0xEX6ERfpx5TB0VgsCkfyyq1JXnIhW5ILyC41siWliC0pRby4eD+jerRgbO9WdGnpq3b4QjgsD4Oe7pF+bE0pYmNSgSR2DdDgxG716tW0bt2aqKgosrKymDlzJjqdjhdeeIGQkBBbxOhwTGYLfxwfDXtNXLjK0QjRdCwWhR1pRfy+N5s/9maTWVxV95irXsvQ2GBGdA3nso4h+Li5qBjphdFqNXXNwhP6RWEymfh76x4Sq734flsGqQWVfLspjW83pdEtwpexvVtxXfcWeLnKd2ghGqp/dCBbU4rYkFTA2D6t1A7HYTT402bKlCmsXLkSgOnTp+Pq6oqHhwd33nknv/32W6MH6Ig2JBVQWFFDoKeB/tGyhJho3swWhY1HC1i2P5c/9maTW/bPCjAeBh2XdghhRJdwLmkfjGczS3A0Gg1h3i5c2ieau4e2Y9PRAuZtSePPfdkkZJSQkLGHl5bsZ1T3Fkwa0Ib2Yd5qhyyEw+jfNoj3Vh5ho/Sza5AGf8pmZ2cTGRlJTU0Ny5Yt49ixY7i4uBAWFmaL+BzS4gTrEmJXdQlrlA7eQtijWrOFH7em83/LMsmrTKu739tNz7COoVzVJYyhscF22cRqC1qthgHtghjQLoiCciM/78hk/pY0juZXMH9LOt9vTee2vlE8MjwWPw+D2uEKYfd6tPLDoNeSV2YkKa+CdiG2XUWquWhwYhcYGMjRo0dJSEggPj4eDw8PqqurnXadvH+rMZ3UDNtNRsOK5sdssa5//M5fiaQc7zfn5+7C8M6hXN01nIFtg5y+X2mglytTh0QzZXAbtiQXMmt9Cn/sy+abTan8lnCMR4e359Y+rdDJ/HhCnJWbi45eUf5sSCpgY1K+JHb11ODEbubMmfTo0QOtVsv8+fMBWLFiBd26dWv04BzR2sN5lFabCPF2pU+bALXDEaLRKIrCn/tyeHv5IRJzrKNaAzwN3NjBk4ev7YWHm9RC/ZtGo6FvdCB9owPZkJTP87/u51BOGU8v2su8zWk8P6ozvVvL54QQZ9M/OtCa2B0tYEL/1mqH4xAanNjdcccdjB07FgAPD+sUAb179+aHH35o3Mgc1InRsCO6hsu3cdEsKIrC6sQ83lqWyJ5M64LcPm567hralgl9I0k7ehhXJ2luvRgD2gax5MFBfLsplbeXJ7I/q5SbP9nI6O4teHJER0J83NQOUQi7079tICyHjUkFWCyKrAJTD/VK7LZv3058fDwAW7ZsOet+zt7PzmxR+Gt/DgDXymhY0QxsPlrAm8sOsTWlCLAOhrhzUBumDI7G191FumA0kF6nZdLANlwb14L//XmI77els2jXMTYeLeCL23vTNUKmSBHiZN0i/DDotBRV1pJZXEVkwJnnnBT/qFdiN3HiRPbu3QvAmDFjzriPRqPh6NGjjReZAzqaZ10CydOgo0ekv9rhCHHBdqcX8+ayQ6w9nA+AQa/l9n5R3HNJWwK9XFWOzvEFerny2o3dGNe3FY/8sJvDueXc/OkG3hnTnau6yJdCIU4w6LXW1i/5Dllv9UrsTiR1AMnJyTYLxtHtPWZtpuoY7iPVxcIhHcwu5e1liSw7XvOs12oY2yeS+y+NIcxXmgobW7cIPxbcO4D75+1kTWIed3+7g8ev6sDdQ6NlagchjqsxW5ftc/ZBWfXV4Kt06NChM96/atWqiw7G0e3NLAWQGeeFw6muNfPUwj1c/e5alu3PQauBG3tGsOrRS3hpdFdJ6mzIx82Fryb24vb+UQC8/sdB/vNTAjWyBq0QmC0KZosCgEGmD6uXBl+lQYMG8dZbb6Eo1gtdWVnJfffdx4QJExo9OEez73iNXecWPipHIkT9HSuuYsynG5m7OQ1FgZHdwln28BDeuiVO+rM0Eb1OywujuvDctZ3QauDH7RlMnbMNk1mSO+Hcak/6G3CRGrt6afBV2rJlC0uWLGHgwIHMmzePbt26UVZWxp49e2wRn8OwWBT2SY2dcDAbkvK59v117M4owc/DhTl39OHDcT1pFyIrJKhh0sA2fDmpN+4uOlYn5vHGn2duIRHCWRhPqrmWGrv6afBVatOmDb/99hulpaVMmDCBIUOGMGfOHPz9nXuwQHpRJWVGEwa9ViZRFHZPURS+WHuUCV9uoaCihs4tfPjt/kEMiQ1WOzSnd2n7EN68OQ6Az9Yc5ZddmSpHJIR6Tu6S4KKTfqf10eDEbsOGDfTs2ZPu3buzfPlytm7dyg033EBeXp4t4nMYJ/rXdQzzxkW+VQg7Vllj4oH5O3lpyQHMFoUberZkwT0DpNnVjozsFs49l7QF4PEFCXXdPIRwNieaYg06rQwoqqcGZyA33XQTr732Gt9++y2XXXYZ27dvJyYmhq5du9oiPodxYkRsZ2mGFXYsJb+C6z/cwOKELPRaDS+O6sxbN8c5zXqujuTR4e0ZGhtMda2FaXO2U1RRo3ZIQjS5EzV2MiK2/hp8pfbs2cP1119fd9tgMPD666/zyy+/NGpgjmZvpgycEPZt5cEcrv1gHYdyygj2duW7af2Y0L+1fAu2UzqthvfG9iAq0IPM4ireXXFY7ZCEaHIy1UnDNfhKBQYGAtbRsOnp6aSlpZGWlkZ4uPNOqqkoCvuOHR840UJq7IR9sVgU3vkrkTtmb6Os2kSvKH+WPDCIXrJGqd3z9XDh5dHW1pD5W9LILa1WOSIhmtaJGjvpX1d/F1Rj16NHD7y9vWndujXR0dFER0fToUMHW8TnELJKqimsqEGn1dA+TEYTCvtRUlXL1DnbeOcva23PxP5RzJvaT9YldSAD2wXSs5UfRpOFT1Y79+o+wvlIjV3DNfhK3X333YwaNYqKigp8fHwoLy9nxowZ/N///Z8t4nMI+7PKAIgJ8ZK+SsJuHMouY9QH61hxMBdXvZY3b47j+VFd5APSwWg0GqYPiwVg7uZUcsuk1k44j7o+djIosd4afKX27dvHzJkzcXOzfuN3c3PjpZde4sUXX2z04BzFiRFrMn+dsBeHc8q48eMNpBRU0tLPnQX3DOCm+Ai1wxIXaEhMEN0jrbV2325KUzscIZrMiVGxMttE/TX4Svn5+VFcXAxAy5Yt2b17Nzk5OZSXlzd2bA7jn/51MnBCqK+kqpZp32yn3GjtT7f4gUHypcPBaTQabu0TCcCmowUqRyNE0zlRY+cqLQ311uArNWXKFFavXg3A9OnTGTx4MF27dmXatGmNHpyjqEvs5J+nUJnZojD9u50k51fQ0s+dTyfE4+9pUDss0Qjio6yDXXanF8s6ssJpSI1dw+kb+oSnn366bnvq1KkMHz6c8vJyOnfu3KiBOYoyo5nsUiMAHcOlxk6o6+3lh/j7UB6uei2fTogn0MtV7ZBEI2kb7ImfhwvFlbXsO1ZCj1bOvdqPcA5GmceuwS76SkVFRTltUgdQarS+6bxd9Xi6NjhPFqLR/L4niw9XJQHw+o3dpAa5mdFoNMQfT+Z2phWrG4wQTUQmKG44uVIXqarW+qbzcpOkTqjnUHYZj/y4G4Apg9owukdLlSMSthDsba2BrawxqRyJEE2j1qwA0hTbEHKlLlLF8cTOWxI7oZKSylqmfbONyhozA9sF8t+rnXdOyebOZLH+k9PLPznhJGpMZkBq7BpCrtRFqqy1ftB6STOsUIHZovDAdztJPT6tyfu39pR/+s2Y6XhHcr1WZuEXzuHEBMWu8rlWbw2+UnFxcbz++uukpclcSgCVNSdq7FxUjkQ4ozeXHWJNYh5uLlo+uz2eABkB26yVVlubYGXqB+EspCm24Rp8pd566y0SExPp3r07gwcP5uOPP6agwHnnVaqUPnZCJYsTjvHx39bBEm/cFEdnWae4WTNbFLalFALQNcJP3WCEaCIyKrbhGnylhg0bxpdffkl2djaPPPIIf//9N23btmXkyJHMnTuX6mrnWu7mRB87H0nsRBM6kFXKYz8mADBtSDTXxbVQOSJha/uPlVJabcLbVS+ToQunIaNiG+6Cr5TBYKBjx4506NCBgIAA0tLS+Oabb4iMjOTrr79uzBjtmvSxE02tuLKGad9so6rWzKB2QfznyvZqhySawIqDOQD0jQ6QfpTCacgExQ3X4GwkLS2N7777jnnz5lFQUMCtt97KwoULiYuLA2D37t0MHTqUiRMnNnqw9kj62Imm9viCBNILq4gMcOf9W3vIP3knUFZdy+wNKQBc001qZ4XzkBq7hrugwROHDh3i7bffJi0tjTfeeKMuqTvx+JQpUxotwLy8PEaOHImHhwft27dnxYoVjXbsxlDXx05q7EQTOJJbzp/7ctBo4JPxdrBcWFYWIR99BFlZ6sbRzM1en0JxZS3RwZ5cK83uwomcqLEz6GQkeH01KLEzmUw8/PDDfPTRR1x22WVoNGe+0G+++WajBAdw33330aJFC/Lz83n99de5+eabKSoqarTjXyyZx040pa+P19oM6xhqH4MlsrII+fhjSexsKCmvnE9WWwfJTL88Bp1MdSKcSFphJQC+7tIqVl8NSuz0ej0ffPABen3TJDHl5eX88ssvvPDCC3h4eDB69Gi6dOnCb7/91iTnr4+q433sJLETtlZSVcuCHRkATB7QWt1gBKXVtaw8mEt6Sa3NzlFhNHH3N9upqDHTp02ANMMKp1JcWcPmZOtI8KGxISpHc7o/9mYx8v31XD8vlZHvr+ePvfbxBbfB2ci0adP43//+x+OPP37WGrvGcvjwYXx9fQkPD6+7Ly4ujn379p22r9FoxGg01t0uLS0FwGw2YzabbRKf2Wyuq7HzMOhsdh57daK8zlbukzXlNfhhaxqVNWZiQ73o09pPveuelVVXQ6ds3173uy6a8HDrTzO2LaWIu+fuoKiyFp0Gvg4Kp3+74EY9h9FkYfp3uzicW06ItyvvjYkDxYI9/bnJZ4BcA1uWf/n+bMwWhQ5h3rT0c7Wra/znvmzunbcLDaBgXdbx7m938NG47lzZOazRz9eQsjc4sVuwYAFHjhzhtddeIzw8/JTkbv/+/Q093DmVl5fj43PqsH4fHx+Ki4tP2/fVV1/l+eefP+3+Q4cO4eXl1ahxnexEH7v8Y+kcqMm12XnsWWJiotohqM7W18BsUfhizTEAhrc2cPDgQZue71xCPvrI2vx6Ev0999Rt595zD7n33tvUYTUZs0Xh/l8yKaq0ftBG+LqQdSyTA7X5jXaOyloLr6zOY1d2NXotPNrfj/yMozTeGRqXfAbINbBF+Rdssv5P7RGs5cCBA41+/IvxxtJjdUkdx39rgP/9vo9W2sbvLlZeXl7vfRuc2H3yyScNfcoF8/Lyqqt5O6G0tPSMidoTTzzBjBkzTtkvMjKS9u3bn5YcNhaz2UxljXUFjm4dY2gT5GmT89grs9lMYmIisbGx6HQ6tcNRRVNdg78O5JJTnoafuwt3XxWPu0HF6/3kk5gnTwasNXX6e+7B9PHHaOLjAQgMDyewGdfYZRZVkVeRhlYD6x8bSm5GMh07tG+01/9wbjnP/bCb/dnVeBh0fHJbDwa2C2qUYzc2+QyQa2Cr8lfWmNj5XToAtw3tTMdw+5q78dh36XVJ3QkKkFlmpmPHjo1+vn/nQufS4MRu6NChDX3KBYuJiaGkpITs7GzCwqxVm7t37z7jqFtXV1dcXV1Pu1+n09n0j+34SGwMer1T/lGD7a+xI7D1NZizKRWAsX1a4eWu8kjYiAjrD9Q1v2ri49H17q1eTE3I38sVnVaD2aKQVWrEoNU0yutfY7Iwa30yby1PpMZkIcDTwFeTetM90q9xArch+QyQa9DY5V+flIvRZCEywJ3OLf1s3vWroaKDPDmUXXZKcqfRQNtgT5u8DxpyzAZPd1JbW8t7773HLbfcwuWXX85ll11W99PYvLy8uO6663j22Wepqqri119/Ze/evVx77bWNfq4L5e1qvYTFVTUqRyKaq0PZZaw/UoBWAxP6R6kdDigK1FapHYVqvN1c6lb6uHvuTo4UGM/zjHOrNVv4YVs6l731N6/+fpAak4VL2gfz+/TBDpHUCWELf+6zTsh9Zacwu0vqAB4aFnNqUof1o3H65bFqhVSnwYnd/fffz5w5cxg2bBhbtmxh7NixFBYWcskll9ggPPjoo49IT08nMDCQRx99lB9++AF/f3+bnOtC+BxP7AorJLETtnFiYtorO4fR0s9d3WAAds+Hj/pB0ioIDyf3nnua/WCJf5t5TSc6hHmTW2Zkxh/ZPL1oHwez699UYrYo7Eov5sXF++n3ygr+81MCGUVVBHm58vqNXZk1qTehPm42LIEQ9qvWbGHFgeOJXZfGH4jQGK7qEs4n43vienzi5IgAdz4ZH89VdhBvg5tiFy1aREJCAqGhoTz22GNMmzaNK6+8kptvvpmZM2c2eoDBwcEsXbq00Y/bWLxddUAtxZW2m/JAOK/iyhoW7jw+xcnANipHA5Tnwp9PQlURZO2G/kPIvffeZt2n7kz8PQ18N60fTy3cw5I92czfms78rem0Dfake6Q/cZG+tPB1x8tNjwaoqDFRUF5Dcn4FiTllbEkupLTaVHe8YG9Xpg5uw4R+rdXtPymEHdh0tIDSahNBXgZ6trKfipx/u6pLOOG+B0kpqOTNG7vRt6199IVtcGJnsVgIDAwErCNUi4qKaNmypaqj9NQkNXbClr7bmk51rYVO4T70bq3yB5yiwOKHrUldWFfof5+68ajMz8PAe2O7MzB0J2uyrANckvIqSMqrqJtv8Fy83fQMjgnixp4RDI0NlqXhhDjuz33ZAFzRKdTuJ+QuN1q/oHnY0ReyBid2vXr1YtmyZYwYMYLLLruMiRMn4u7uTteuXW0Rn907kdgVV0piJxqXyWzhm43WQROTBrZWv5/J7u/g4GLQ6mH0x6Bzwa4mVVNJtzA3xlzakdJqMzvTi9iVVsz+rFJyy4xUGE0oCni46vD3MNAqwIPYUG+6RfjStaWvJHNC/IvForDsRP86G8wH15gURalrrfPzsJ+VMRqc2M2dOxeLxToU9MMPP+Ttt9+mrKyMt956q9GDcwTWplgolMRONLK/DuSQWVxFgKehrrO+aopSYOlj1u1LnrDW2IlT+HsauKxDKJd1CFU7FCEc1s70YnLLjHi76hlgJ02bZ1NuNGGyWIdQ+HuoPFvBSRqc2AUEBNRte3l52aRfnSM5UWNXJH3sRCP7an0KAOP6tMLNRcVqfnMtLJgKNWUQ2Q8GPaxeLEKIZm3Z8WbYSzuEYNDbd432ido6g05jV31jG5zYmUwmvv/+e3bv3n3aTMgfffRRowXmKE5Md1IkfexEI6qsMbHl+BqJ4/q2UjeYv1+FjC3g6gs3fAZa+/kAE0I0H4qi1PWvs/dmWICi4y11J/IAe9HgxG7ixIns3r2bkSNHEhoqTQ4+x5tipcZONKacUuvcaJ4GHS3UnOIkaRWsfdu6fe074G8H8+gJIZqlxJxyUgoqMei1XNK+cddetoXc45/Tfm729WW3wYndkiVLSEtLs9kyXY7GR2rshA3klFYDqDuXWVkO/DwNUCB+EnS5Qb1YhBDN3onausHtgvB0bXB60uSOlVgnag/xtK/ErsH1hzExMZSVldkiFof0T41dDYry75XjhLgwJxK7EJ/Tl8lrEhYz/DwFKnIhpDNc9Zo6cQghnIYjNcMCHCu2fk4HedhXEtrgaK677jpGjBjB1KlTCQkJOeWxW265pdECcxQn2taNJgtVtWY8DPb1AgvHdKKKX7Uau9VvQPIacPGEm2eDix2seCGEaLbSCyvZd6wUrQYu7xhy/ifYgWPF1hq7YE/7+r/f4GhWrlxJQEAACxYsOOV+jUbjlImdu16Di05DrVmhqLJWEjvRKHLLVGyKTVoFq1+3bl/7DgSrv/ahEKJ5O1Fb17t1AIFeKrVUNNA/iZ19NcU2OAtZtWqVLeJwWBqNBn8PA7llRooqauxjLU/h8E4MngjxbuIPuNIs+HkqoEDPidDN+b6sCSGanqNMSnyyo/kVALTwtp/JiaGeid327duJj48HYMuWLWfdr0+fPo0TlYMJ9nIlt8zIseIqurT0VTsc0Qz808euCWvszCZYMAUq8iC0C1z9etOdWwjhtPLLjWxNtU7vNLyzY8y2UVhRU7eUaEsf+2qpq1c0EydOZO/evQCMGTPmjPtoNBqOHj3aeJE5kI7h3uzLKmVPZgnDHejbhrBfuWXH+9g1ZY3d369A6joweMHNX0u/OiFEk/hrfw6KAl1b+hLh76F2OPWSlGedx7elnxtudjaRcr0SuxNJHUBycrLNgnFUXVv68tOOTHZnlKgdimgGFEVp+ulODv8Fa48vC3jdexDUrmnOK4Rwev+MhnWM2jqAI7nWxC462EvlSE5nX2mmg+oWYW1+3ZNRLFOeiItWbjRRWWMGmmi6k5JMWDjNut3rTuhyo+3PKYQQQFl1LeuPFACO1b/uRGLXLthT5UhO1+DEzt3dHQ8Pj9N+/P396dq1KzNnzqSqqsoWsdqt9mHeuOg0FFXWklHkXGUXje9EM6y3q972o6zNJvjpDqgsgPA4uPIV255PCCFO8vehPGrMFqKDPGkXYn+1X2ez75i1ha59qLfKkZyuwYnd//73P4YMGcLixYvZtWsXv/32G5dccgnPPvssb731FitXruShhx6yQaj2y1WvpWO4dSWO3RnF6gYjHF6TTk686iVI3wSuPsfnq1NxpQshhNP543gz7PDOYWg0GpWjqR+LRWFvZinwT4udPWlwdcDbb7/N7t278fa2ZqmxsbH07t2buLg4kpOT6datG927d+fTTz9t9GDtWdeWviRklJCQUcI13VqoHY5wYE02OfHhv2Dd/1m3r3sfAqJtez4hhDhJakEFf+0/Mc2J4/SvSy6ooNxows1FS9tgTw4XqR3RqRpcY1dRUUFBQcEp9xUUFFBRYZ3PJTAwEKPR2DjROZC4CD8AEqTGTlykJhk4UZr1T7+63lOg82jbnUsIIf5FURSe+HkPRpOFge0C6R7pp3ZI9bY309oM27mFL3qd/Q1VaHCN3T333MOll17KtGnTiIyMJCMjg88++4z7778fgMWLF9OjR49GD9TedYu0VsfuzSzFYlHQah2jSlnYn7rJiW3VFGsxWychriyAsK4w/GXbnEcIIc7ix+0ZbEgqwM1FyyvXd3WYZliA3enWxK6rnc5b2+DE7rnnnqNnz54sXLiQNWvWEBYWxrvvvsu1114LwPXXX8/111/f6IHau3bBXri5aCk3mjiaX067EPvrUCkcQ1WtCQAXrY2+Ca55E1LWWteBvWm29KsTQjSp3LJqXlq8H4AZV8QSFWh/I0vPZdvxyZTttZbxgobcXXfddVx33XWNHYtD0+u0dGnhy7bUIhIySiSxExesky0H4qRugNWvWbev+T+Zr04I0eSe/3U/pdUmurT04Y6BbdQOp0HKqmvrmmL7RgeoHM2ZXVBi9+uvv7Ju3ToKCgpOmbftq6++arTAHFG3CL+6xO6GnhFqhyMcVI9W/gDsSi9u3Gb9ykLrkmGKBeLGQdyZV5ERQghbWbYvmyV7stBpNbx+Yze77KN2LttSi7Ao0CrAg3Bfd8xms9ohnabBV/Spp57iwQcfRK/X89133xEWFsZff/2Fn5+fDcJzLHHH+9nJlCfiYnQI88bdRUdZtalu2ZqLpijw6wNQmgkBbWHE/xrnuEIIUU+l1bU884t1JatpQ6Lp3MI++6idy+aj1mbYvm3ss7YOLiCx+/rrr1mxYgWvvPIKLi4uvPLKKyxdupSEhARbxOdQTnSk3H+slFqzReVohKPS67R1cyPtSGukcfTbvoSDi0HrAjd9Ba6OMxGoEKJ5eP33g+SUGmkd6MH0y2PUDueCbDxqnRWkb3SgypGc3QVNdxIdbZ3vyt3dnYqKCjp37syWLVsaPThH0zrQE283PUaThUPZZWqHIxxYzyhrc+yO1OKLP1juAfjzKev2sOegRfeLP6YQQjTAluRC5m5OA+CVG7ri5qJTOaKGKyg31k1pNqhdkLrBnEODE7tu3bqxfv16APr3788jjzzCo48+Sps2jtUB0ha0Wk1d9ezy45MuCnEheh7vZ7cz/SJr7ExGa786UzW0vRz63dsI0QkhRP1V15r578/WVr2xvSMZ0NZ+k6JzWZ2Yh6JYB7iF+drvbAINTuy+/PJLwsKsC/V+8MEH1NTUkJaWxrffftvowTmiEV3DAViyJ0vlSIQj69HKD4DDueWUVtde+IFWvAA5e8EjEEZ/DLaaQkUIIc7ig5VHOJpXQbC3K0+M6Kh2OBds5cFcAC7tEKxyJOfW4FGx7dr9Mz1CixYtnH4k7L8N6xSKQaflSG45iTllxNrhAsHC/gV5udIqwIO0wkp2pRUzJPYCPkiOrICNH1i3R30E3o6zZI8Qonk4kFXKJ6uTAHhxVGd83V1UjujCmMwW1iTmAXBZhxCVozm3Bid2iqKwePFiEhIS6pYRO+GVV15ptMAclY+bC0Nig/jrQC6LE7KYcYUkduLC9GzlR1phJTvSihqe2FUWwqLjza69p0D7qxo/QCGEOAezReG/CxIwWRSu7BzKVV3C1Q7pgu1IK6a02oSfhwvdI/3VDuecGtwuc/vttzNjxgzS09Opqqo65UdYjex2vDk24dgp8/wJ0RAnBlDsTCtu2BMVBRY/BOXZEBQLV7zY6LEJIcT5zN6Qwu6MErzd9Lwwqova4VyUP/ZmA3BJbDA6O18ytME1dosXLyY1NRUfHx9bxNMsDOsYikGvJSmvgsScctqHSa2daLi6ARRpRQ2bqHjPj7D/F9Dq4YbPwOBhwyiFEOJ06YWVvPnnIQCeHNGRUB/7HWxwPhaLwpI9xwAY2a2FytGcX4Nr7Hr16kVWlgwMOBdvNxeGxFibzpYkHFM5GuGoOoR54+aipbTauv5wvZRkwJJHrdtDH4cWPWwXoBBCnIGiKDy5cA9VtWb6tglgTK9ItUO6KFtTCskpNeLtpmdIrP2P6G1wjd23337LtddeS9++fQkOPrXfz8yZMxstMEd3Tbdw/jqQw+I9WTx8RSwajX1X3Qr7Y52o2I8tyYXsSC0+//rDFou1X52xBFr2gkEzmiZQIYQ4ycKdmaw9nI9Br+XVG7o23rKIKlmcYK3MurJzGK56+59/r8E1do888gi5ubmUlZWRlZV1yk9jMplM3HjjjbRs2RKNRkN2dnajHt/WLu8YgkGv5WheBYdyZLJicWFONMfWawWKrZ9D8mrQu8P1n4LugpaCFkKIC5ZfbuSFxfsBeGhYDNHBjr3Kjcls4fe91vzmmm6OMfijwZ/8v/zyC2lpafj7235UyJAhQ3jsscfo37+/zc/V2LzdXBgaG8zy/TksSciiQ5j0SRQN1/P4fHbnHUCRlwjLj9eYD38Rgtqde38hhLCBF37bT3FlLR3DfZg6OFrtcC7auiP55JfX4O/hwkA7Xm3iZA1O7OLj48nPz7d5YqfX65k+fXq99zcajRiNxrrbpaWlAJjNZsxmc6PHd+LYJ//+txFdQlm+P4fFCceYflnbZtcce77yOwNbX4O4COsXgsTcMoorqvF2O8McUBYz2kX3oDFVk+ASz/2PfsPWrQ8SEBDA1KlTefrpp8/53ktMTOTxxx9nw4YN1NTU0KVLF1544QUuvfRSwLo+9J133nnG56anpwPnLn9RUREfffQRv/32G6mpqbi7u9OlSxcmTpzIjTfeeN5rsGbNGt566y127NhBVlYWCxYsYNSoUed8zsKFC/nkk0/YvXs3RqORTp06MXPmTK688srznq8hnP1vwNnLD3INTi7/qoO5/Lr7GFoNvDK6M1oUh78u32+1LoN2bVz4GcvTVK9/Q47f4MSuR48eXHbZZYwZM4aQkFMn6fvPf/7T0MM1mldffZXnn3/+tPsPHTqEl5dtq4ITExPPeH9LjQUXLSTnV/L7xgTa+BtsGodazlZ+Z2LLa9DCW8+xMhMfLN3B6I6n1/wGJs4nPHMbRSZ3Ln9/F7379mPevHmkpqby9NNPU1FRwcSJE896/JEjRxIVFcWnn36Km5sb33zzDddddx1Lly4lKCiIbt26sWrVqlOe8/TTT2M0GikuLgbOXv5Nmzbxn//8hy5dujBmzBiioqKwWCzs3buXJ598kvfee4933nkHN7ezj5g7ePAgLVq0YNiwYTz88MOkp6dz4MCBc16zX375hW7dujFlyhS8vb1ZtGgRo0aNYt68eXTs2Pgz3zv734Czlx/kGuzad5AnfrMOFhzVwQeXsmMcOODYgwdLqs11y4P2Dqg95+eOrV//8vJ6DqADNEoDJ1qbPHnymQ+k0dhsFQqNRkNWVlbdUmZncqYau8jISAoLC202NYvZbCYxMZHY2Fh0ujN3qLz72x0sP5DLvZdE88gVsTaJQy31KX9z1xTX4Put6Ty5aB8+bnpWzBhCgOdJXxAKjqD9bAgaUzUfVo/iqU9+5dixY7i6ugLw+uuv8+GHH5KamnrGWrv8/HzCwsJYtWoVgwcPBqCsrAx/f3/+/PNPLr/88tOek5eXR6tWrfj888+59dZbz1r+nTt3ctVVV/HFF19w7bXXnnYck8nE3XffTWVlJfPmzavXtdDr9fWqsTuTbt26cfPNN/PMM880+Lln4+x/A85efpBrcKL83x+28M3mdFoFuLP0gUG4Gxz/Wny1PoWXlx6ka0sfFt074Iz7NNXrX1paSkBAACUlJefNaRpcYzdr1qwLDuxkw4cPZ82aNWd87Omnn+bpp59u0PFcXV3r/pmdTKfT2fyP7VznuCauBcsP5LI4IZtHh3dw+NFBZ9IU19je2fIajOkTxTeb0zmQVcr7q5L+mejTYoHF08FUDdGXsvkvGDp0KB4e/8xbd/XVV/PUU0+Rnp5OmzZtTjt2SEgIHTt2ZO7cufTu3RtXV1e++OILQkND6dOnzxnLNHfuXDw8PLjlllvqHj9T+adPn85LL73E6NGjOXjwIPfddx979uyhd+/eDBgwgPT0dD799FM6d+7M1q1b6devX72uh1arbfC1tlgslJWVERQUZJPXydn/Bpy9/ODc1+BAnpFvt1gHOL5yfTe83B2/dUpRFH7YlgHAmN6tzvva2vr1b8ix653Ybdmy5bz79OnTp94nXrZsWb33dWTDOobi46YnrbCSZftzuKrL2WsdhTgTnVbDM9d0ZNznm5m7OY3x/aKsaxBv+QzSNoLBC657j+xvp9C6detTnhsaal0fNjs7+4yJnUajYfny5YwaNQpvb2+0Wi2hoaH88ccf+Pn5nTGer776inHjxuHu7n7Wfh9Hjhzh6NGjTJkyBbPZzPXXX0///v158803SUhI4L777uOmm27CYDAwduxYFi1aVO/E7kK89dZbVFRUcMstt9jsHEI4I6PJwnubClAUuCk+gkExjjHA4Hw2HS3kcG457i46rutu/5MSn6zeid2YMWPO+bhGo+Ho0aMXHdDJjEZj3ZJcRqOR6urqc/bFsUeernom9I/iw1VJfLI6iSs7hza7QRTC9ga0DeLKzqH8uS+Hl5YcYM7oIPjrOeuDV7wAfq0ATntvnfj7Odt7TlEU7r33XkJCQli7di3u7u588cUXXHPNNWzdupXw8FOH92/cuJH9+/czZ86cc8abkJBA79690ev17N+/n7S0NBISEnBxcaFHjx6sXbsWk8kEQHh4OLt3727oJam3+fPn89xzz/HLL7+c1i9YCHHhFEXhf38eIr2klkBPA0+PbPz+q2qZtT4ZgBt6tsTnTIPW7Fi9E7vk5GRbxnFG7du3JzU1FaCuJsIR116dNKANn69NZld6MZuTC+kXHah2SMIBPXF1R1YezGVtYg5F3z2Fv6kKWg+GeGu/17CwsNPme8zNzQX+qbn7t5UrV7J48WKKiorq+m189NFHLF++nK+//pr//ve/p+z/xRdf0L17d+Lj488Zq8lkqvsSVlNTg8FgwMXlnw9HLy+vuoEXu3fvpm3btvW8Cg3z/fffc+edd/Ljjz8ybNgwm5xDCGekKAovLj7ArA3W/9HPX9cJPw/Hb4IFSCuoZPkB66CJyQNbqxvMBWjwBMVNKSUlBUVRTvlxRMHertwcHwHAJ6uTVI5GOKrWQZ5MHtiG23Qr8M/dguLiAde9D1rrn3H//v1Zs2YNNTU1dc9ZtmwZLVq0OK2J9oTKykrA2m/tZFqtFovFcsp95eXl/PDDD2ed+uRk7dq1IyEhAYAOHTpgMBh45513MJvN7Nu3j++++w6LxcKPP/7I4sWLzzlq90LNnz+fSZMmMW/ePEaOHNnoxxfCWVksCk8t2stXx2u17ukdwNXNqJvR1xtTUBQYEht8/hV/7JBdJ3bNybQh0Wg18PehPA5klaodjnBQD/Q08KTLfAA2Rz8AAf/0mxs3bhyurq5MmjSJvXv3snDhQl555RVmzJhR1xS7ZcsWOnToQGZmJmBNBv39/Zk4cSK7d+8mMTGRxx57jOTk5NOSoe+//x6TycRtt9123jh79OiB0Whk+fLldVOovPzyy7i6unL11VczevRovv32W/7v//6PJUuWnLVGEawJ5a5du9i1axdgbT3YtWsXaWlpdfs88cQT3H777XW358+fz+23385bb71Fv379yM7OJjs7m5KSkvPGLoQ4O7NF4bGfEpi3OQ2NBl67vgsj2zte8nM25UYTP2y1zs/piLV1IIldk4kK9OTqrtb+Sp9KrZ24EIqC9/JH8aCazZYO3H2oJ8WV/9TO+fr6snz5cjIyMujVqxf33nsvM2bMYMaMf9aMrays5NChQ9TW1gIQFBTEH3/8QXl5OZdddhm9evVi3bp1/PLLL8TFxZ1y+i+//JIbbrihXpOTazQa3njjDSZPnszRo0cZPnw4OTk5pKamkpyczJtvvklRUREbNmyge/fu5zzWtm3b6NGjBz169ABgxowZ9OjR45S1qbOysk5J9D799FNMJhP33Xcf4eHhdT8NmfRcCHGqWrOF6d/tZMGODHRaDe+M6c7NvSLUDqtRfbcljTKjieggT4bGBKsdzgWRxSSb0D1D27IkIYvfErJ4ZHh7IgM8zv8kIU7Y9zMkrUTRGfjU6yGK882889dhnruuc90uXbt2Pes0QgCXXHLJaV0aevXqxZ9//nne02/YsKFB4d58880cPXqU3r178/jjjzN27FhatWpFbW0t27dv59VXX+Wmm25iypQp5zzOmWL+t9mzZ59y+++//25QrEKIczOazNw/byfL9+fgotPw/q09uKpLuMOvLHGy6lozn62xDgKdNiTaYacnkxq7JtSlpS+D2gVhtih8ua7pB6MIB1ZdAn88AYBm8CNMHmUdCPDtplSO5NZ/RvKm9vjjj/Prr7+yatUqYmJiMBgMuLq6ctdddzFixIizTnguhLAf1bVmps3ZzvL9ORj0Wj6b0IuruoSf/4kO5qftGeSWGQn3deOGno5bEymJXRO7e6h19N93W9MorKg5z95CHLfiRSjPgcB2MOhhBscEM6xjCCaLwitLz728ltoGDhzI77//TllZGUePHqWgoICDBw/y4IMPOu2ErkI4igqjicmztrI6MQ93Fx2zJvXm0g7Nb9qgWrOlbnDjXUOiMegdNz1y3Mgd1MB2gXRp6UN1rYWvN6SoHY5wBJnbYesX1u2Rb4PeusLKkyM6otdqWHkwl9WJeSoGWD8Gg4GIiIh69dETQqivtLqW27/awsajBXi56vn6jj4MbNc8JiD+t4U7M8koqiLIy8DYPq3UDueiSGLXxDQaTV2t3dcbU6isMakckbBrZhP89hCgQLcxED207qHoYC9u798agJcW78dktpzxEEII0VDFlTWM/2Iz21OL8HHT8+2UvvRpE6B2WDZhNJl596/DgLVvnZuLY7ckSGKngqu7hBMV6EFxZS3fHx9WLcQZbf0cshPAzReGv3Taw9Mvj8HPw4XDueXM35J2hgMIIUTD5JcbGfvZJhIySgjwNDB/Wj+6R/qpHZbNzNucRmZxFaE+rnVflh2ZJHYq0Gk1TB0cDcAXa5MxmprPqCLRiEqPwcrjydyw58Hr9H4tvh4uzLgiFoC3lydSUlXblBEKIZqZnNJqxny6kYPZZQR7u/LdtH50buGrdlg2U2408cHKIwBMvzzW4WvrQBI71dwUH0GItyuZxVV8sVZGyIoz+P1xqCmHiN7Q8+wrM4zr04qYEC+KKmt5b8XhJgxQCNGcZBRVcsunG0nKqyDc140f7upPbGjzmXz4TL5al0xBRQ2tAz2azZx8ktipxM1Fx5MjrAsmv7/yMJnFVSpHJOxK4p9w4FfQ6OCad+qWDTsTvU7LU8cX3/5yXXLdrOlCCFFfqQUVjPl0E6kFlUQGuPPDXf1pE+Spdlg2lVtWXTdv3Yzh7XHRNY+UqHmUwkGN6t6CPm0CqK618PKS/WqHI+xFTSUsfdS63f9eCOty3qdc0j6kbvmbx39O4KftGTYMUAjRnBzJLePmTzaSWVxFdJAnP9zV3ykm0H/zz0OUG03ERfhyTdfmMy+fJHYq0mg0PH9dZ3RaDUv3ZLPucL7aIQl7sOYNKE4DnwgY+t96P23mNZ0Y368VigKP/bSbRTszbRikEKI5OJBVyphPN5FbZiQ21Ivv7upHuK+72mHZ3J6MEn48/gV45rWdHXaViTORxE5lHcN9mNAvCoCZv+6lxiRTVji13AOw4X3r9oj/gatXvZ+q0Wh44bou3NrHmtzN+GEXv+0+ZqNAhRCOLiGjmFs/30RBRQ2dW/jw3bT+hHi7qR2WzSmKwvO/7UNR4PoeLYmPal5za0piZwceviKWIC8DR/Mq+Gq9DKRwWhYLLH4YLCZoPxI6jGjwIbRaDS+P7sItvSKwKPDQ97tYuifLBsEKIRzZ9tRCbvt8M8WVtfRo5ce8qf0I8DSoHVaT+C0hi22pRbi76Hj8qg5qh9PoJLGzA77uLvz3amvn9/dWHCarRAZSOKVdcyFtI7h4wtWvX/BhtFoNr93QjRt7RmC2KDw4fyd/7M1uxECFEI5sY1IBE77cQpnRRJ82AXxzZ1983V3UDqtJlFbX1vVpv/eStoT5Nr8aSkns7MQNx6uDK2vMvLzEvtf+FDZQWQjLn7FuX/oE+EVe1OG0Wg1v3NSN0d1bYLIoPDB/B3/tz2mEQIUQjmx1Yh6TZm2hssbM4Jggvp7cBy9XvdphNZn//XGInFIjrQM9mDokWu1wbEISOzuh1Wp4YVRntBpYnJDFhiQZSOFU1r4FVUUQ3BH63t0oh9RpNbx5cxzXdAun1qxw79wdrDqY2yjHFkI4nmX7spn69TaMJguXdwjh89t74W5w/Al562t7aiHfbk4F4JUbujaLyYjPRBI7O9K5hS/jjw+kePaXfdTK2p/OofAobP7Uun3lS6BrvCYRvU7LO2O6M6JrGDVmC3d9u53ViXmNdnwhhGNYnHCMe+fuoMZs4eouYXw8Pr7ZJjZnUmOy8MTPe1AUuDk+ggFtg9QOyWYksbMzj1zRnkBPA4dzy/l6Q4ra4Yim8NfzYKmFtpdBu2GNfni9Tsu7Y3twZedQakwWps3ZJlPrCOEkyqprmfnLXh6YvxOTRWF09xa8f2sPDHrn+vf/2ZokEnPKCfQ01C0O0Fw51yvrAHw9XOpG6bzz12FyS6tVjkjYVNpm2L8INFoY/pLNTuOi0/L+rT0Z1jEEo8nClDlb2ZhUYLPzCSHU9+e+bK54ew1zNqaiKDCxfxRv3dIdfTNZYaG+juSW8d7x9WBnXtsJ/2Y++te5Xl0HcVN8BN0j/Sg3mvjvz3tQFEXtkIQtKAose8q63f02CO1s09MZ9Fo+vK0nl7YPprrWwh2zt7IludCm5xRCNL3skmru+mYbd32znezSaloHejB3Sl+eH9UFXTOaiLc+akwWHvp+FzUmC5e0D+a6uBZqh2RzktjZIa1Ww2s3dsWg17LyYC5frU9ROyRhC/sWQsZW6/Qmlz3dJKd01ev4eHw8g2OCqKo1M2nWFralSHInRHNgsSh8szGFy9/6mz/35aDTarjv0rb88dAQBrZrvn3KzuW9FYfZm1mKn4cLr9/YDY2m+Se2ktjZqQ5hPjxzTScAXvv9AHsySlSOSDQqkxH+es66PXA6eIc12andXHR8fnsvBrYLpLLGzKRZW9mRVtRk5xdCNL5D2WXc9MkGnvllHxU1ZrpH+rHkwUE8dmUHpxokcbLtqYV89Le1CfaV67sS6tP85qw7E0ns7Nj4vq24snMotWaF++fvoKy6Vu2QRGPZ8hkUp4J3OAy4v8lP7+ai44vbe9MvOoByo4mJX25hd3pxk8chhLg41bVm3vzzECPeW8uOtGI8DTpeGNWZBfcMoEOYj9rhqabCaOLh73djUazzxI7oGq52SE1GEjs7ptFoeOPGOFr6uZNaUMnTi/ZKf7vmoLIQ1vzPun3Z02DwVCUMd4OOryb1pk/rAMqMJiZ8uVlqhoWwI7ll5x48tyEpn6veWcMHq45gtihc0SmUvx4Zyu39WztdX7p/e2nJftIKK2np585zo2zbf9neSGJn53w9XHh3bHd0Wg2/7DrGT9sz1A5JXKzVb0B1CYR2gbhbVQ3Fw6Dnq8m96RXlT2m1iZs/3cBna5IwyRyKQqhq/ZF8bv9yyxnnMy2qqOGxH3cz7vPNpBRUEuLtyifj4/n89l6E+7qrEK19+X1PFvO3pKPRwJs3x+Hj5hzLpZ0giZ0D6NU6gBlXxAIw85d9HMktVzkiccEKkmDr59bt4S+BVv2+L16uemZN7s3gmCCqay28svQgN3y8gQNZpWqHJoRTqjFZmPnLXg5ml/HZmqN19yuKwi+7Mrn87dX8uD0DDTChXxR/PTKUq7o0XT9de5ZaUMF/fkoAYNqQaPq3DVQ5oqYniZ2DuHtoWwa2C6Sq1sz983ZQXWtWOyRxIZbPBIsJ2l0BbS9VO5o63m4uzLmjD2/c1A0fNz0JGSVc+/463l52CKNJ3mtCNKUv1yWTlFcBwLsrDpOcX0F6YSUTZ21l+ne7KKyoITbEi5/u6c+Lo7s4XY3U2VTXmrlv3g7KjCZ6Rfnz6PD2aoekCknsHIROq+H/bulOoKeBg9llvLL0gNohiYZK3QAHFx+fjPhFtaM5jUaj4ZZekfw1YyhXdQ7DZFF4b+URRr63ju2pMiWKEE3hWHEV7604XHe7xmRh0qwtDHt7NWsS8zDotDw6PJbFDw4mPipAxUjtz8tLDrA3sxR/DxfeH9cDFyebiPkE5yy1gwrxceOtW+IAmLMxlT/2Zqsckag3iwX+PD4Zcc/bIcR+l7QJ8XHjkwnxfHxbT4K8XDmSW85Nn2zkuV/3UWE0qR2eEM3aS0v2U/WvFpnUgkqMJgv9ogP446HB3H9ZjNMtCXY+i3Zm8s2mVADeHtPdqfsayjvDwVzSPoRpQ6IB+M9Pu8koqlQ5IlEv+36GYzvA4AWXPKl2NPVydddw/poxhJvjI1AUmL0hheH/t4Y1iXlqhyZEs7QmMY+le878hd3doOP9W3sQHezVxFHZv72ZJTy+wNqv7v5L23Fp+xCVI1KXJHYO6NHh7YmL8KW02sT076xLpQg7VlsNfz1v3R74EHiHqhpOQ/h5GPjfzXF8c2cfIvzdySyu4vavtvDID7sprqxROzwhmg2jycyzv+476+NVNWZeXiJdcP4tv9zItDnbMJosXNo+mIePDzR0Znab2B06dIhrrrmGoKAggoODGT9+PEVFMjs+WNf8fP/Wnni76tmeWsR/FyTI/Hb2bPMnUJIG3i2g/31qR3NBBscE8+dDQ7hjYBs0GliwI4Nhb69m6Z5see8J0QjeWZ5Icn7FOfdZtOsYq6XGvE6t2cJ9c3dwrKSaNkGevDO2h9PP3wd2nNiVlJRwyy23kJSUREpKCjU1NTz66KNqh2U3WgV68N4465v4552ZvL08Ue2QxJlU5MPat6zbl88Eg4e68VwET1c9M6/txE93DyAmxIv88hoe+G4XL6/JI6f03BOpCiHOzGJR+GjVET5effT8OwNPLdxDZY30dVUUhed/28fm5EK8XPV8fns8vu4yOhhAr3YAZ9OnTx/69OlTd3vq1KnMmDFDxYjsz6XtQ3h5dBf++/Me3l95hJZ+7ozt00rtsMTJ/n4NjKUQ1g26jVE7mkYRH+XP4gcH8eGqJD5adYRN6VVc+e46nh7ZkVt6RTrFIttCNIYjueU8+fMetqT8M+o82MuViAB3QrxdCfF2I8zXjRBvV0J93I7/uOLupGu/nuzLdcl8uykNjQbeviWOdiHeaodkN+w2sfu3DRs20Lnz2ZcFMRqNGI3GutulpdbJVc1mM2azbebhOnFcWx2/Pm6Ob0l6YSUf/p3EU4v2Euxl4JL2wU1ybnsov9rOeQ3yD6Pd9hUawDzsBVAUaCbXSq+B6Ze15YoOgcz4bgeHC2p4fMEeFu3M5OXRXYgKdNyayYZw9r8BZy8/XNg1qKwx8cXaFD5enUSNWcFVr+XeS6KZNqgNhnokbRaL/fSrVuM9sGx/Di8fn/Lrv1e15/IOwaq9B5uq/A05vkZxgA4yu3bt4vLLL2fNmjVnTe6ee+45nn/++dPu37hxI15ezXsUkaIovL2hgFXJFbjpNbx2RSjtAl3VDsvptVr/OD5Z6ygNH0jawDfUDsdmzBaFXw+W8e3uYoxmBVedhvFxflzXwVv6uwhxkpTiGv44XM7Ko+VU1lr/9ca3cOPePoGEejlMPYuqDhcY+e+yHIxmhatjvLi3T4BTtBKUl5fTv39/SkpK8PHxOee+qiV2w4cPZ82aNWd87Omnn+bpp58GIDk5mSFDhvD+++8zevTosx7vTDV2kZGRFBYWnvciXCiz2UxiYiKxsbHodOpWjdeYLNw5ZzsbkgoI9nJlwd39aOlv23l87Kn8ajnrNUhZh+6b61A0Oix3rYPg5jkD+snlzyg28tSivWw8am1Wiovw5dXru9A+rPk2kTj734Czlx/Ofw2MJgt/7M1m3pZ0tqX+MwCwVYAHM66I4ZquYQ6dmDTleyCzqIobP9lEXrmRITFBfD6hJ3qVJyFuqvKXlpYSEBBQr8ROta8Iy5YtO+8+2dnZXHHFFTzzzDPnTOoAXF1dcXU9vZZKp9PZ/M3WFOc4H3edjk8mxHPLJxs5mF3GHXO2s+DuAfh62L4zqT2UX22nXAOLBf56BgBN/CR0YZ1UjKxp6HQ6okO8mTe1Hz9sS+elJQfYnVHCdR9u4N5L23HfpW1x1Tff94iz/w04e/nh9GuQkl/B/C1p/Lg9g8IK69RAOq2GKzqGMr5fFAPaBqJtRjXatn4PFJQbmTR7G3nlRjqEefPhbT1xNdjPYAlbl78hx7bbut+SkhKuvPJKbr/9dqZNm6Z2OA7Bx82FWZN7c/2HGziSW860b7Yx584+zfofql3a8yNk7QaDN1zyhNrRNCmNRsOY3q24pH0ITy/ay/L9Oby34jALtmcwrm8rbukVSbC3dBMQzZPJbOGvA7nM3ZzK2sP5dfeH+7pxa59WjOkdSaiPm4oROqay6lomzdrK0fwKWvq5M2tyb7xlfdyzstvEbtGiRSQkJJCUlMQbb/zTP6m8vFzFqOxfuK/1TX/zJxvZnFzIYz8m8M6Y7s3qm6Fdq62CFS9Ytwc/DF5NM5DF3oT6uPHZhHiW7snm2V/3kVlcxf/+PMQ7fyVyZecwxveLom8b5+gbI5q/vAoTf/51mB+2Z5BTau0SpNHA0NhgbusbxaXtg1VvMnRU1bVmps3Zzp7MEgI8DXxzZx+nXi6sPuw2sZs4cSITJ05UOwyH1DHch4/H92TyrK38uvsYLf3defyqDmqH5Rw2fgilGeAbCf3uVTsaVWk0GkZ2C+fyjiEsTsji202p7EovZnFCFosTsmgX4sVtfVtxQ88ImX9KOByLRWHN4Ty+3ZTKyoO5WI73Vg/0NHBL70jG9WlFZIBzjA63FZPZwvTvdrLxaAGeBh1fT+4jS6rVg90mduLiDI4J5rUbu/Hoj7v5+O8kwnzcmDigtdphNW/lubDu/6zbl88EF/lWCeDmouOm+Ahuio9gb2YJczen8cuuTI7klvP8b/t5/Y+DXBfXgvH9ougW4ad2uEKcU365kR+3ZTBvSyrphVV19/dtE8D4flFc2TkMg15q5y6WxaLw+II9/LkvB4NOy+e396JrhK/aYTkESeyasZviIzhWXMXbyxN59td9mC0Kdwxqo3ZYzdffr0JNObToAV1uUjsau9SlpS+v3tCVJ0d0YNHOTL7dlMahnDJ+2JbBD9sy6NrSl/H9WnFtXAs8DPLxJOyDoihsTi5k7uY0/tibRa3ZWj3n46bnhp4t6RtYy/B+3Zx+AEljsVgUnvh5Dwt2ZKDTanjv1u4MaBekdlgOQz45m7kHLmtHZY2ZT1Yn8cLi/dSYLdw9tK3aYTU/eYdg+9fW7eEvgVa+sZ+Lt5sLE/q3Zny/KLanFjF3cxpLErLYk1nC4wv28NKSA9zYM4Lb+rYiJrT5Tpci7FtJVS0/78hg7uY0juT+0787LtKP8X1bcU23Fhh0cODAARWjbF4sFoWnFu3l+23paDXwf2O6c1WXcLXDciiS2DVzGo2Gx69qj0Gv5b0Vh3nt94PUmCw8eHmM2qE1K5oN74JihtirofUgtcNxGBqNhl6tA+jVOoBnrunEj9vSmbcljdSCSmZvSGH2hhT61DVxhcoIb2FziqKQkFHCt5tS+S3hGNW11lUePAw6RnVvyW19W9Gl5T9Ngs686kZjUxSFmb/uZf6WNLQaePuW7lwX10LtsByOJHZOQKPRMOOKWAw6DW8uS+Tt5YnUmCw8MjxWRiU2An1lLpq9P1lvDHlU3WAcWICngbuGtmXq4GjWHcnn202prDiYy5bkQrYkF0qndGFTFUYTv+4+xtzNqezNLK27v32oN+P7tWJUj5b4yBQbNqMoCs//tr9u/df/3RTH6B4t1Q7LIUli50TuvywGV72Ol5ce4INVR6gxW3ji6g6S3F2kwCM/oLGYIGogRPRSOxyHp9VqGBIbzJDYYLJKqvhuSzrfbU0jp9TIx38n8cnqpLppJC7rECLLlomLcjC7lHmb01i4I5MyowkAg17LyK7hjO/Xip6t/OUz0sbMFoWnF1lr6jQaeP3GbtwYH6F2WA5LEjsnM3VINAa9lmd/3cdna45irDXz7LWdZZ67C1VdSsDRX6zbAx5UN5ZmKNzXnYeviOWBy9qdMvHr34fy+PtQHi1Omvg1RCZ+FfVUXWvm971ZzN2UdsoyX60DPbitbxQ3xkcQ4GlQMULnUWu28MgPu/l19zG0Gnjtxm7c0itS7bAcmiR2TmjigNa46LQ8tWgPX29MpcZs4eXRXSW5uwCaHbPRmipRgmLRxAxXO5xmS6/TclWXMK7qEla3VNMP29I5VlLNW8sTeXfFYYZ3DuW2vtalmqSGRZystLqWnWnFbE8pZFtqEbvSi6mssfaN02k1DO/0z3tHPgebTnWtmfvn7eCvA7notRreGduda7pJn7qLJYmdkxrXtxUGvZb//LSb+VvSqTEpvHFTN2nWaghTDZotnwKg9L8fjYyEbRKtgzx5YkRHHr4i9pRal6V7slm6J5uoQA8GtgsivpU/8VH+RAV6SKLnRBRFIbO4im0pRWxLLWRbShGHcspQlFP3k2W+1FVhNDF1zjY2JBXgqtfy8fieXNYhVO2wmgVJ7JzYTfERuOg0zPhhNwt2ZFBjtvD2LXG4yNI39bP3JzRlWdS6BaLtcrPa0TgdNxcd1/eI4PoeERzIOt5PamcmqQWVpBakMW9zGmBdCaBnlDXJi4/yp2tLX9xcZHRtc2EyWziQVWZN4lKL2J5SRHZp9Wn7RQa40ysqgPgof3q3DiAmxEtq51RSXFnD5Nlb2ZlWjKdBxxcTe9O/baDaYTUbktg5uVHdW2LQaXlg/k5+232MWpOFd8Z2l39856MosP49AAra3UywXha2V1PHcB9eHN2Fx6/uwLrDeWxPLWJ7ahF7M0spqKhh+f4clu/PAcBFp6FzC9+6RC8+yl9qbBzIuZpVT9BrNXRu4UN8VAC9WvvTK8pf+mDaifTCSibN2kJSXgW+7i58fUcfukf6qR1WsyKJneDqruF8otNy79wd/LEvm1s/38RnE3oR7C3JylkdXg55B1AMXhRGjyZY7XgEAF6ueq7qEl43oWl1rZl9x0rqEr3tqcXklxvZlV7MrvRivlyXDEBLP/dTEr0OYd6yaLsdqG+zqrebnvgoawIXHxVA90g/3A3y5dTe7MkoYfLsreSXGwn3dWP25D60D5MJyBubJHYCgGGdQpk9uTd3f7udnWnFjP5wPV9M7EXHcB+1Q7NPG6y1dUrP27EY5IPJXrm56IiPCiA+KgCwJgrphVVsTyusS/QOZZeSWVxFZnEVv+4+Blgno+0e6Ud8lD89o/zpGemPr4fMYWZrDWlW7R0VQHxrf3pFSbOqI1h1MJd75+6gqtZMhzBvZk/uQ5iv1KLagiR2os6AdkEsvG8gU77eRnJ+BTd9vIF3x/ZgWCfp0HqKzB2Qsha0epQ+d8OxMrUjEvWk0WhoFehBq0APru9hnSerrLqW3enHa/XSitiZWkSZ0cSGpAI2JBXUPTcmxKsu0YuP8ic6yFOtYjQb0qzqHOZtTuOZX/ZitigMjgnio9t64i2TPduMJHbiFG2DvVh47wDunbuDDUkFTP1mG09c3YGpg6NlZOEJx2vr6HIj+EbAMVkn0pF5u7kwKCaIQTHWRcYtFoXDueV1zbc70opIzq/gcG45h3PL+W5rOgD+Hi70iPQjwr2Wq9wK6dEqQJr/zkGaVZ2PxaLw1vJDfLgqCYCb4yN45YauMkDPxiSxE6fx8zDw9R19mPnLPuZvSeOVpQc5klvOS6O7YtA7+R9kYTLsPzEh8QPqxiJsQqvV0D7Mm/Zh3ozr2wqAgnIjO9KKrYleahG7M4opqqxl5aE8AObs2oJeq6FTCx86hfvg72nAz90FPw8X/DxObBvw83DB192lWQxOUhSFsupasstqqUkvpqTaTFFlDYUVNRRV1lBUWUtRhfV2cWUteeVGCitqTjtOqwAPaxInzarNSrnRxMPf76obtPTQsBimXx4jFQRNQBI7cUYuOi2vXN+FmBAvXlqynx+2ZZBaUMkn4+Pxd+YZ2Td9BIoF2l4GYV1BFgB3CoFerlzRKZQrjndLqDFZ2J9VyrbkAv7em8bhIjM5ZUYSMkpIyCg57/HcXLT4exjwPZH8uR9P+o5v+3u4HE8CDceTQ+v9tqq5UhSFMqOJoopTEzJrglZDYUUtxWdI2kyWE9Vtx+p1HmlWdQ4p+RVMnbONw7nlGPRaXr2+qywR1oQksRNnpdFouGNQG9oEe/LAvJ1sTi5k9Efr+XJib9qFeKkdXtOrLISd31q3Zfkwp2bQa+ke6UfXFt70C6iiQ4cO5JTXsi2lkOT8CkqqaimutCZDxVW1lFTWUlxlvW1RoLrWQlZJNVklpw8MOBdXvbYuybMmgSfVCp6UIPq5u+Dj7oLJopwxSSs6Q9L2T5LWMK46DYHergR4GvD3sP4EeFrjOPk+f08XooO8pFm1mVuTmMf983ZQWm0i1MeVTyf0kulMmpgkduK8Lm0fws/3DuCO2VtJLajk+o/W8+G4ngxsG6B2aE1r6xdQW2mtqYu+RO1ohB3RaDS09HOnZfeW59zPYrHWjFkTPWsTpTXxs9aCFR+//+RE8ESSaLIoGE0WckqN5JQabVIOdxfdGZIyF/w9DaclaQGeBnxcdSQfSaRjx47odJKwOTNFUfhi7VFeWXoAiwI9Wvnx6fh4qZFVgSR2ol5iQ7355b6B3PXNdralFjF59laeGdmBeJ8L+5bvcGqrYLN1+TAGTAfpJyIugFarwdfd2s+uFR71fp6iKJQbTRRX1v5TG3giMaz8J0G0Pm69XVRZW1fDd6Ykzc/DQMBJSZq/h6HBff/M0hVBAEaThccW7GHhTmuT/M3xEbx0fRdc9ZLsq0ESO1FvgV6uzJ3alyd+3sPPOzJ57rcDXNLak3eiTfh5NvM/4F3zoDIffFtB59FqRyOcjEajwdvNBW83FyLVDkaIkxzNK+eRP7JJKa5Fp9XwzMiOTBzQWgZJqMjJhziKhnLV63jr5jieuLoDOq2Gv1MquO7DDSRkFKsdmu1YzLDxA+t2/3tBJ/MvCSHEL7syGfXRRlKKawn0NPDNHX2YNLCNJHUqk8RONJhGo+GuoW2ZP6UPwZ460gorufHjDXy+5iiWC+yAbdcOLoHCo+DmBz0mqB2NEEKoqrrWzBM/JzD9u11U1pjpGurK4vsHMKBdkNqhCSSxExchPsqf90eEc1XnUGrNCi8vPVC3DmCzoSj/TEjc+05wdcLRwEIIcVxSXjmjP1zP/C3paDTwwKVteenyUBkkYUcksRMXxctVxwe3dufl67vgqteyOjGPq99dy7rD+WqH1jjSNkHGVtAZoM9dakcjhBCq+WVXJte+v46D2WUEeRn45o6+PDQsBp1MKG1XJLETF02j0XBb3yh+vX8QsaFe5JUZmfDVZl7/4yC1Zova4V2cE7V1cWPBW9bMFUI4n5KqWmZ8v6uu6bVfdABLHxxctwyfsC+S2IlG0z7Mm1/uG8S4vq1QFPj47yRu+XQj6YWVaod2YfIS4dBS63Z/WT5MCOF81h/J5+p31vDzzky0Gnjw8hjmTuknTa92TBI70ajcDTpeub4rH9/WEx83PTvTihnx7loWJ9RvySG7svF96+/2IyA4Vt1YhBCiCVXXmnn+t33c9sVmjpVUExXowY9392fGFbHS9GrnZB47YRNXdw2na4Qv07/bxfbUIu6ft5M1iXk8NbITvu4OMF1IWTbs/s66PXC6urEIIUQT2p1ezIwfdpGUVwHAbX1b8eSIjni6SsrgCKTGTthMhL8H30/rxwOXtUOjgR+2ZXDF26v5Y2+W2qGd3+ZPwVwDEX2gVT+1oxFCCJurNVt4569Ebvh4A0l5FYR4uzJrcm9evr6rJHUORF4pYVN6nZZHhrdncEww/12QwNH8Cu7+dgdXdg7lhVFdCLXHfhrGMtj2pXV74IPqxiKEEE3gQFYpjy9IICGjBICR3cJ5aVQX/D0NKkcmGkpq7EST6NMmgKXTB/PAZe3QazX8uS+HYW+tZu7mVPub1HjHN1BdAgFtrf3rhBCimaqqMfPa7we55v11JGSU4OOm592x3fng1h6S1DkoSexEk3Fz0fHI8PYsfnAQcZF+lBlNPLVwL2M/20RSXrna4VmZa2HTR9btAfeDtpmvgSuEcFprEvMY/s5qPlmdhNmicHWXMJbPGMqo7i1lWTAHJomdaHIdwnz4+Z4BzLymEx4GHVtSCrn6nbW8v+IwNSaV573btwhK0sEjCOJuVTcWIYSwgYJyIw9/v4vbv9pCemEV4b5ufH57Lz4eH2+f3WNEg9htYldeXs6gQYMIDAzE39+fyy+/nIMHD6odlmgkOq2GOwa1YdnDQ7ikfTA1ZgtvLU/k2vfXsSOtSJ2gFAU2vGvd7nsXuLirE4cQQtiAoij8tD2Dy99ezcKdmWg0MGlAa5bPGMoVnWQC9ubCbhM7V1dXPv/8c/Ly8igoKOCGG25g4sSJaoclGlmEvwezJvXm3bHdCfA0cCinjBs/3sBzv+6j3Ghq2mCO/g3Ze8DFA3pPadpzCyGEDR3NK+e2Lzbz6I+7Ka6spWO4DwvvHchz13XGS0a8Nit2+2q6uLjQsWNHAMxmM1qtluTk5LPubzQaMRr/WXy+tLS07rlms9kmMZ44rq2Ob+8as/zXdA1jQHQALy89yKJdx5i9IYU/92XznytjubZbeJP099CufxcNYOk+HsXVF/6/vTuPj6q8Gjj+myWZmWSyh5A9YQkECCBLgLAISGURFxZRrAvCi6AVF8BWsVoEaRHlrVpfad1ptVbFWm1FBUQwIEH2LSwBTFiyr5MMyWS2+/4xMJKyRSS5YXK+n898ZubOXc65XDJnnnuf5zYiLzkGJP+zn1ub1p4/tPx9YK138uq6o7yzKQ+HS8Hop+Xh6zoybVAyfjrtz467peff1Jor/5+yfo2iKC2sS2JDPXr04MCBA7jdbp5//nnmzp173vmeeeYZFixYcM70rKwszGZzU4cprqAdBXW8+n05xac8B3KnCH+m9wmja1TTXfthrMqh49dTUdCSM+ZDHIGxTbYtIYRoaoqisD7vFO/sqKKizvO3tE+skQfSw4kOugoGiRcNWK1WMjIysFgsBAcHX3TeFl/YAdTV1fHee+8RFxfHDTecf/iJ87XYJSQkUFFRccmdcLlcLhc5OTl06tQJna719Z5syvzr7C7e/i6Pv2T+QK3d80fphrRofj2qE4nhAVd0WwCaf81Eu28F7q7jUSa+1ejl5BiQ/CX/1ps/tMx9sOekhUVfHGD7sSoAEsMDeHpsKtelRl3xbbXE/JtTc+VfXV1NeHh4owo71U7Fjhw5kszMzPN+9tRTT/HUU09535tMJqZPn05MTAwHDhwgLCzsnGUMBgMGg+Gc6TqdrskPtubYRkvWFPmbTToe/kUnJvdP5I+rc/ho2wm+2FfE1wdKmDoomV8N73jlbk1WdQKyPwFAO/gRuIxc5BiQ/CX/1ps/tIx9kF9VxwtfeS5nATD56Zh1XUemD2mHQS/fg02pqfP/KetWrfPE6tWrsdls532cXdSdoSgKVquVwsKr4HZU4oqJCjLy3MQerHx4CIM7RmJ3uXkt8weGL13P37LycLiuwPAom/8MiguSh7C3XM/QoUMxmUzExcWxcOFCGtOovXLlSvr374/JZCIyMpIJEyZ4PysvL2f06NHExsZiMBhISEhg1qxZ3utAL6WyspJFixbRr18/oqKiSEpK4sYbb+Tjjz9udIrLli2jXbt2GI1G+vTpw4YNGy46/8aNGxk0aBARERGYTCZSU1N58cUXG8yTnZ3NpEmTGDVqFHq9npdeeqnR8QghrhxrvZMXVh3kuqXrvUXdhN5xfPPYUB4c3rHJizrRsrTYzhO7d+/GYrEwYMAAHA4Hzz77LKGhoaSkpKgdmlBBl5hg3v2ffqw/VMrvvzjAkRIrv/ssm79uyuO3Y7swvHPU5XWwqKuCHX8FoLrndK6//nqGDx/O1q1bycnJ4d577yUwMPCC13YCrFmzhmeffZY//OEPXHfddSiKwt69e72fa7VabrnlFhYtWkSbNm04cuQIDz74IBUVFbz//vsXDW/t2rVMnjyZfv36MXfuXDp16oTL5WLr1q3Mnz+ft956i08++QST6cJDs3z44Yc8+uijLFu2jEGDBvHaa68xZswY9u/fT2Ji4nmXCQwMZNasWfTo0YPAwEA2btzIzJkzCQwMZMaMGQDU1tbSrl07MjIy+OMf/3jRPIQQV57d6eYfW47zyjeHKbPaAejfLpynxnale3yIytEJ1Sgt1NatW5VrrrlGMZvNSnh4uDJq1Chl9+7djV7eYrEogGKxWJosRqfTqezdu1dxOp1Nto2WTK38HU6X8resPKXXwtVK0uOfK0mPf6788o0sJTv/Mv6tM/9XUeYHK8qrA5Rlr76qhISEKDabzfvx4sWLldjYWMXtdp93cZvNpkRFRSmvv/76T9rsyy+/rMTHx190nh07digRERHKv//97/N+7nA4lKlTpyq33377RdfTr18/5f77728wLTU1VXniiSd+Uszjx49X7rrrrgbTzhwDSUlJyosvvviT1ucL5G9A685fUdTZBy6XW/nXjpPK4CVrvX8Dh72wTlm1r/CCf6uaSms/Bpor/59S07TYcez69u3Lzp07qampoby8nK+++ooePXqoHZZoAfQ6LXcPSGL9r4cxc2h7/HVavjtSzthXNjDnw1380Njbkznr4fu/eF4PfJiszZsZOnRog2s1R40aRUFBAXl5eeddxY4dOygpKUGr1dKrVy9iYmIYM2YM2dnZF9xsQUEBn3zyCUOHDr1oeLNmzWLRokXcdNNNHDx4kBEjRhAVFcXYsWP5/e9/z6xZs/jLX/7C9u3b2bx583nXYbfb2b59OyNHjmwwfeTIkWzatOmi2z/bzp072bRp0yVjFkI0HUVRWHewhBv+tIFHP9zFiYo62gQZWDQujdWzr2Vkt2i5FZhouQMUC3EpwUY/5o3pwtq5Q7mxRwyKAp/szOcXf/yWRz7YyZGSmouvYM9HYC2GoFhIm0hRURFt2zYcff3M+6KiovOu4szYigsXLuSpp57i888/JywsjKFDh1JRUdFg3jvuuIOAgADi4uIIDg7mzTffvGBoR44c4YcffmD69Om4XC7Gjx9PUlISq1at4rbbbmPx4sXYbDb8/f2ZPHkyn3766XnXU1ZWhsvlOm9eF8rpbPHx8RgMBvr27cuDDz7I9OkycLMQzU1RFDJzShm/bBNTl2/lYFENQUY9vx7VmW9/PYy7BiThp5Ovc+HRYq+xE6KxEsID+L9f9mbGtVX8ae0Rvj5QzGe7CvhsVwGxoUZSooIIMupRFFBQPM9uF/NPPE8M8JHfjYQc8hRh//1rVzndceJCv4Ldbk/njXnz5jFx4kQA3nnnHeLj41mxYgUzZ870zvviiy8yf/58Dh06xJNPPsmcOXNYtmzZede7Z88e0tPT0ev17N+/n+PHj7Nnzx78/Pzo1asXGzZswOn03JkjJiaG3bt3X3QfnS+vxvyy37BhA1arlc2bN/PEE0/QsWNH7rhD7qErRHNQFIVNR8v545octh/z3GrR6KflnoxkHhjagbBAf5UjFC2RFHbCZ/SID+XNKX3Zl2/hj6tz+OZQCQVVNgqqbOfMO0K7nRj/41QrJl4oy2B1cjjR0dHntGKVlJQAnNPidUZ0dDSA9y4p4Bl6p3379hw/fvyceaOjo0lNTSUiIoIhQ4bw9NNPExMTc856nU4nRqNnQGa73Y6/vz9+fj8O72I2m6mqqgI8HY06dOhw3vgiIyPR6XTnzetCOZ2tXbt2AHTv3p3i4mKeeeYZKeyEaGKKovDdkXL+9M1htuR6fnQa9FruGpDEzKHtiQpqusHaxdVP2m6Fz0mLC+Htqem8eFtPLtQoNUO/EoD3XSOYmNGVsEB/MjIyyMzMxG63e+dbvXo1sbGxJCcnn3c9ffr0wd/fn5ycHO80h8NBXl4eSUlJF4zxTEvg2YNqn61jx47s2bMHgNTUVPz9/XnppZdwuVxkZ2fzwQcf4Ha7WbFiBZ9//vkF76Ps7+9Pnz59WLNmTYPpa9asYeDAgReM70IxXyheIcTP53YrrM4uYtyyTdz11vdsya3AX6/l3oHJbPjNcJ6+sasUdeKSpMVO+KzxveOpqnOw4D/7G0y/RnOE/tqD2BUd/9CM5ZMhnlapX/7ylyxYsIB7772XJ598ksOHD/OHP/yB3/3ud97Tllu2bOGee+5h7dq13mvlbrvtNhYsWEBSUhJJSUm88MILAEyaNAmAL774guLiYtLT0zGbzezfv5/f/OY3DBo06IIFY69evaivr2fNmjVcf/31vPvuu9x555089thjxMbGMm7cOF5//XWOHDnCypUrL9r6NmfOHO6++2769u1LRkYGr7/+OsePH+f+++/3zjNv3jzy8/P529/+BsCrr75KYmIiqampgGdcu6VLl/LQQw95l7Hb7ezdu5fc3Fzsdjv5+fns2rULs9lMx44df8o/lRCtmtPlZuXeQpatO8qhYs+1wUY/LXf0S2TmtR2IDpFiTjSeFHbCp907MJktuRV8ue/HU5Ez9J8D8G/3INzmaA4V1ZDRwZ+QkBDWrFnDgw8+SN++fQkLC2POnDnMmTPHu2xtbS2HDh3C4XB4p82ZM4c2bdpw9913U1dXR//+/fnmm2+8d0gxmUy88cYbzJ49m/r6ehISEpgwYQJPPPHEBePWaDQ8//zzTJ06lczMTEaOHElxcTGFhYVER0dTV1fHkiVLCAm59FhVt99+O+Xl5SxcuJDCwkLS0tL44osvGrQoFhYWNjh17Ha7mTdvHrm5uej1ejp06MBzzz3X4JrBgoIC+vbt632/dOlSli5dytChQ1m/fv0l4xKitau1O1mx7SRvbczleEUtAEEGPXdnJDFtcDsizefeTUmIS7kq7hV7OaqrqwkJCWnUfdUul8vl4sCBA3Tp0qVV3krlasm/2ubgplc2cqy8liRNEev856LVKIysX0KOkgBAanQQ9w5MZlyvOIx+jc+lqffBkiVLeP7553n88ceZPHkyiYmJOBwONm3axOLFi7n11ltV7al6tRwDTUXyb935w+Xtg5IaG3/bdIx3Nx/DUuf5kRgW4Mf/DG7H3RnJV+52ic2gtR8DzZX/T6lppMVO+Lxgox+v/rI3E/68iel8gVaj8I3rGnr0yqC/v46Pt5/kYFENT3yylyVfHeSOfoncnZFETMiF7+bQXB5//HEGDx7MokWLePrpp1EUBafTSadOnfjVr37F1KlT1Q5RCNFIh4pqeGvjD3y6swD76dshJkcE8D9D2nNr73hM/q2vMBJXnhR2olVIiwth8cgYxq79FoC3uYn/Hd2ZtsFGHhvVmY+2nuCvWXmcrKxj2fqjvJb5A6PTopk2KJneiWGqDvo5aNAgvvzyS+x2OyUlJQQGBnpP8wohWjany83XB4pZvimPzT/8OLZln6Qw7hvSnuu7tkWnlUGFxZUjhZ1oNSa4vkCjcbDb3Z4OfUbRNthzQXKIyY/7rm3PtMHtWLO/mHe+y+X73ApW7ilk5Z5CesSHMHVQMmO7x+KvV68jub+/P/Hx8aptXwjReBWn7Hyw9Th/33yc/Ko6AHRaDSO7tmX6kPb0SZIfZ6JpSGEnWgd7LZotbwDwRdAk7h9+bq9NnVbD6LRoRqdFk11gYfl3eXy2u4A9Jy3M/nA3f/jiIHf2T+TO/km0CZKLmoUQDSmKwo7jVbz//XH+s6cAu9NzujU80J87+iVwZ/8kYkPVv8RD+DYp7ETrsOvvUFcBoUk8PHMOgaaLDx/QLTaEFyb15Ikxqfxjy3He3XyM4up6Xvr6MMvWHeX6rm25tW88g9qHN1MCQoiWylrv4q9Zx/hw60nvcCUA3eNCmDIwmRt7xPykTllC/BxS2Anf53ZB1v95XmfMumRRd7YIs4FZ16Uw49oOfLmvkHe+y2PXiSpW7i1k5d5C2gYZGJJoYGaklZToSw89IoTwDYqisP1YJe9/f4zP9xRid3kGmDD6abmxRyx39Eukd2KoqtfnitZJCjvh+w78GyrzwBQGve68rFX467Xcck0ct1wTx758Cx9vP8lnu/Iprqnn4+x6Ps7eSO/EUCb1TeDGHjEEGa+e4QqEEI1XUFXHv3bm8/H2k+SWnfJO79TWzJ39kxjXK+6qGq5E+B4p7IRvUxT47k+e1+n3gX/gz15lWlwIaXEhzLshla+zi1ieeYjtBXXsOF7FjuNVLPhPNmPSYpjUJ54B7SPQSo83Ia5qdXYXq7KL+Hj7Sb47WsaZ0V9Nfjpu6B5NRhsX44b0RK+Xr1ShPjkKhW879h0U7AC9EfrNuKKrNuh1jE6LJklXSURcOz7bU8SKbSc4WnqKf+3M518784kPMzGxdzy39oknITzgim5fCNF0nC43WT+U8+9dBXy5rwhrvdP7Wf924dzaJ54x3WMw6TUcOHBATrmKFkMKO+HbzrTWXfNLMLdpss1EBRu5f2gHZl7bnp0nqlix7SSf7y7gZGUdL689zMtrD9M7MZQbuscwOi2a+DAp8oRoadxuhR3HK/n37gK+2FtImdXu/Swh3PMjbWLvhj/SXC6XGqEKcUFS2AnfVXIADq8CNJAxq1k2qdFo6J0YRu/EMH53Y1dW7y9ixTbP6Zszp2oXrTxAz/gQbugew5i0GBIjpMgTQi2KopBdUM1/9hTw+e5C75hz4LnN15juMdzSM5b05HC5rEJcFaSwE75r0yue5y43QkSHZt+8yV/n7XBRXG3jq31FfLG3kC15Few+aWH3SQuLvzxIWlwwY9JiuKF7DO0if/41gEKIizvTMvflviK+2lfUoJgL9Ncxqls0N10Ty+COkfjp1BuUXIjLIYWd8E3VBbDnI8/rgY+oGwvQNtjIlIHJTBmYTEmNjdXZxXy5r5Cso+Xsy69mX341L6w6RGp0EGO7xzCmewwdo8xqhy2Ez3C43Gz+oZyv9hWxen8xpTX13s9MfjqGdW7DTT1juS41SsacE1c1KeyEb/r+L+B2QGIGJKSrHU0DUUFG7hqQxF0Dkii31rNmfzEr9xay6Wg5B4tqOFhUw/+uyaFTWzPXpbZlWOc29EkKk5YDIX6iylN21ueU8M3BUr49VEK17ccOEEFGPb/o0pZR3aIZ2qkNJn8p5oRvkMJO+B5bNWx7x/N64MPqxnIJEWYDk/slMrlfIpWn7Kw5UMyXewvZeKSMnGIrOcVW/vLtUcwGPYM6RjCscxRDO7WR2xIJcR6KonCwqIZvDpbwzcESdh6vxK38+HlEoD8ju3mKuYEdIlW997MQTUUKO+F7dvwV6qshshN0Gq12NI0WFujPbX0TuK1vApY6B+sOlvBtTimZOaWUn7KzKruYVdnFgGcw1KGd2jCscxR9k8Mw6KW1QbROVbV2vjtSzsYjpXx7qJQCi63B56nRQVyXGsWILlFckxCGTjpACB8nhZ3wLS4HbP6z5/XAh0B7df4iDzH5Ma5XHON6xeF2K+wrsLD+UCnf5pSy83iltzXvjQ25BPjrGNghgqGdoxjWqY2Mlyd8Wr3TxfZjlWw8XMbGI2Xszbd4BwwGMOi1DOoYyfDUKK5LjSJOWrdFKyOFnfAt+/4J1flgbgs9blc7mitCq9XQIz6UHvGhPDwihapaOxsOl/FtjqfQK62p5+sDJXx9oASA+DAT/ZLD6dfO82gXGSiDp4qrlsPlZm++hS25FWw6Ws6W3HJsDneDeVKizAxOiWRISiQZ7SPlejnRqklhJ3zH2bcP6z8T9AZ142kioQH+3NQzlpt6xuJ2Kxwoqva25m0/VsnJyjpOVubzyc58ACLNBvq3Cyc9OYx+7SJIjQ6S8bhEi2VzuNh1oootuRVsya1g+7FK6hwNBwGONBsYkhLJoI6RDO4YSXSIUaVohWh5pLATvuPoWijJBr9A6DtN7WiahVaroVtsCN1iQ3hweEes9U52HKtka14F3+dWsOtEFWXWelbuLWTl3kIAgo160pPDST/dotc9LkR63ArVlNbUs+tEFTuPV7Itr5JdJ6qwuxq2yIUG+HlboQenRNK5bZC0QgtxAVLYCd/x3cue5z5TwBSmbiwqMRv0XNupDdd28tw+zeZwseekxVvobc+roNrmZO3BEtYe9Jy6NfppSYsNIS0uhB7xnke7SLNcZC6uOJvDRXZBtbeQ23WiipOVdefM1ybI08rcv104/dtH0LGNWVqZhWgkKeyEbyjYBbmZoNHBgAfUjqbFMPrpvNfaPTjcc2Pz/YXV3tNcW/IqqKp1sO1YJduOVXqXC/DXkRYbQvf4ELrHeZ7bRQTKl6toNJvDxcGiGrILLGQXVJOdb2F/YTUOl9JgPo0GOkUF0SsxlF6JofRrF0FyRIC0yAlxmaSwE75h0+lr69ImQGiiurG0YHqd1tsRY/qQ9rjdCj+UWdmbb2HPSQt7T3q+hGvtLrbkeQq/M8wGPd1ig+kR72ndS4kKIjlcrm0SniFHDpWcYn9BtaeIK7BwtPQULrdyzryRZn+uSQjzFHIJoXSPDyHI6KdC1EL4JinsxNWv8hhkf+p53cIHJG5ptFoNHaOC6BgVxPhe8QC43ApHS63sPWk5XfBVsb+wGmu9k+9zPad0vctroK1ZT7ftdXRqG0RKWzMpUUF0aGOWnok+qOKUncPFNRwusXKkxEpOcQ0HC6qoqDt23vkjAv3pGht8+jrQYK5JCCU+zCStcUI0ISnsxNVv8zJQXNB+OMT0UDuaq55Oq6FT2yA6tQ1iYh9Psed0uTlSamXPSQv78j2teoeLa6i2OSmscVJ41nAr4Dm9lhAWQEqUmY6ni712kYEkhJtoYzbIF3sLZnO4OFFRy7HyWvLKT5FXfoojJVYOF1spP2W/4HIJ4Sa6xXgKuG5xnmIuKkj+rYVoblLYiatbbQXs+Jvn9SBprWsqep2W1OhgUqODua1vAuC5fVOxpY6127KxGyM4WnaKnGIrh4trqKx1cLyiluMVtd5OGmcY/bTEhwWQEGYiITyAhLAAEsJNnmnhAYSY5LRcU3K7FcpP2Sm01HH8dAF3rPwUx8o9/16F/3Xnhv8WH2YiJcpMStsgOkQGoK8tY0R6GqGBvjm8kBBXm6uisHvuueeYN28eWVlZDBgwQO1wREuy7S1w1EJ0d0+LnWg2Go2GNkEGekab6NIlCZ3ux1Ov5dZ6DpdYPafsTp+6O1ZeS6GlDpvDzZHTp/LOJ9ioJyE8gPgwE1FBRtoEGYgKMpx+9ryPNPujlyFazmF3uqmstVNcbaOgykaRpY5Ci41Ci40ii40CSx3F1bZzOjD8tyCDnsSIAJIiAkiKCKRjGzMpbc10jDIT4P/j14bL5eLAgRqCjFfFV4kQrUKL/9+Yn5/P+++/T3R0tNqhiJbGYYPvX/O8Hviw5/yfaBEizAYizAYGtI9oMN3hclNQVceJijpOVNZyoqKWE5V1nKio5WRlLWVWO9U25+kL8KsvuH6NBsID/GlzuuA78wgx+RFs9PM8m/wINupPP3umXS03fVcUhTqHC6vNSU29kxqbkxqbg4pTdipO2Sm32ik/ZafcWu95f/p1tc3ZqPVrNBAVZCA+LICkcE/xlhQR4CnmwgMID/SXU6hCXKVafGE3d+5cFixYwOzZs9UORbQ0u/8Bp0ohOB66jVc7GtEIfjrt6SIi8Lyfn6p3cvJ0oVdgqaO0pp6S6npKrfWU1NgoramnzGrHdfp0YvkpOweLahq9faOflmCjp+gzG/QY/bQY/XQY9FoMeh1GP8+zQX/W9NPzaE8XOmfqHQ0a3G43RUU17LaeQHf6vsQaDbjcYHe6sLvc2J2eR/1Zr+1Ot/ezMwWc9awCzlrv5DwdShtFq/GMAxcTYiImxOh9jg4xEhtqJDrERFSQQQalFsJHtejCbv369ZSVlTF+/PhLFnb19fXU19d731dXe37tu1wuXC7XhRb7Wc6st6nW39Kpmr/iRrvp/9AA7v73o6AFFeKQY+DK5m/Ua+jYJoCObQIuvE23QmWtndIaT8FXWmM/XfB5Wqyq6xxnPXte15xuybI53Ngc9ZTU1F9w/Zen4tKzXAatxjPMjNmox2zQExbgT4TZn4jTz+GB/kQEnn4+/T7E6NeI8QaVK/Jv1tqPf5B9IPk3T/4/Zf0aRVEu83dh03I6naSnp/Puu++SlpZGcnIyH3zwwQWvsXvmmWdYsGDBOdOzsrIwm81NHa5oZkH5mSRlzcPlZ+bQDZ/g9jt/C5AQ4CkG6xxurA43p+wKp+xuah1u7C7F+3Cc9fp8D0UBBc+fS+8fTaXBE2f+mmo14KfToNdq8NNp8NNq0Gvxvj772aDXEOinJcBPg8lPS4CflkA/DQH+Wgw6jZwSFUJgtVrJyMjAYrEQHBx80XlVa7EbOXIkmZmZ5/3sqaeeIigoiMGDB5OWltao9c2bN485c+Z431dXV5OQkEDnzp0vuRMul8vlIicnh06dOjW4cLy1UDN/7WZPC64mfTqde/Rt1m2fTY4ByV/yb735g+wDyb958j9zFrIxVCvsVq9efdHPx40bR2ZmJitWrACgtLSUsWPHsnTpUqZOnXrO/AaDAYPh3O72Op2uyQ+25thGS9bs+R//Hk5uAZ0/2owHoAXsezkGJH/Jv/XmD7IPJP+mzf+nrLvFXmO3fPlybLYfx1NKT0/ntddeY9iwYeoFJVqGM7cP63E7BElvaSGEEOKMFlvYhYaGNniv0+kIDw8nIODCF1WLVuK6p8EYCgMfUjsSIYQQokVpsYXdf8vLy1M7BNFSRKXCuFfVjkIIIYRocWQgIyGEEEIIHyGFnRBCCCGEj5DCTgghhBDCR0hhJ4QQQgjhI6SwE0IIIYTwEVLYCSGEEEL4CCnshBBCCCF8hBR2QgghhBA+Qgo7IYQQQggfIYWdEEIIIYSPkMJOCCGEEMJHSGEnhBBCCOEjpLATQgghhPARUtgJIYQQQvgIvdoBNBVFUQCorq5usm24XC6sVivV1dXodLom205L1drzB9kHkr/k35rzB9kHkn/z5H+mljlT21yMzxZ2NTU1ACQkJKgciRBCCCHEz1dTU0NISMhF59EojSn/rkJut5uCggKCgoLQaDRNso3q6moSEhI4ceIEwcHBTbKNlqy15w+yDyR/yb815w+yDyT/5slfURRqamqIjY1Fq734VXQ+22Kn1WqJj49vlm0FBwe3ygP6jNaeP8g+kPwl/9acP8g+kPybPv9LtdSdIZ0nhBBCCCF8hBR2QgghhBA+Qgq7n8FgMDB//nwMBoPaoaiitecPsg8kf8m/NecPsg8k/5aXv892nhBCCCGEaG2kxU4IIYQQwkdIYSeEEEII4SOksBNCCCGE8BFS2AkhhBBC+Agp7K6w5557Do1Gw+bNm9UOpdlYrVYGDx5MREQEYWFhjBgxgoMHD6odVrM5dOgQN954I5GRkbRp04a77rqLyspKtcNqVk6nk4kTJxIXF4dGo6GoqEjtkJpcaWkpY8eOJSAggM6dO7N27Vq1Q2pW8+fPp2vXrmi1Wj744AO1w2l29fX1TJ06lfj4eEJCQhg2bBh79+5VO6xmNWPGDGJiYggODqZ79+58/vnnaoekiqysLLRaLc8995zaoQBS2F1R+fn5vP/++0RHR6sdSrMyGAy88cYblJaWUl5ezoQJE5gyZYraYTUbi8XCbbfdxtGjR8nLy8Nut/PYY4+pHVazu/baa/nnP/+pdhjN5sEHHyQ2NpaysjKWLFnCpEmTWlVBn5KSwssvv0y/fv3UDkUVTqeT9u3bs3nzZioqKrj55psZN26c2mE1qzlz5pCXl0d1dTVvv/12q/xR63a7mT17Nunp6WqH4iWF3RU0d+5cFixY0KLGs2kOfn5+dOnSBa1Wi6IoaLVacnNz1Q6r2fTr14977rmHkJAQAgMDue+++9iyZYvaYTUrvV7PI488woABA9QOpVlYrVY+++wzFi5cSEBAAOPGjSMtLY3//Oc/aofWbO666y6uv/56jEaj2qGoIjAwkKeffpr4+Hh0Oh2zZs0iNzeX8vJytUNrNqmpqd7vO41Gg81mo7CwUOWomtfrr79O//796dKli9qheElhd4WsX7+esrIyxo8fr3YoqunRowdGo5FZs2bx+OOPqx2OajZt2kS3bt3UDkM0ocOHDxMSEkJMTIx3Ws+ePcnOzlYxKqGmrKws2rZtS0REhNqhNKtf/epXmEwm0tPTGT16NF27dlU7pGZTUVHBSy+9xDPPPKN2KA3o1Q7AFzidTmbPns27776rdiiq2rNnD3V1dbz33nvExcWpHY4qdu3axZ/+9CcyMzPVDkU0IavVes4Nv4ODg6mqqlInIKEqi8XCzJkz+f3vf692KM1u2bJlvPLKK6xbt67VXWP45JNP8uijjxIWFqZ2KA1Ii10jjBw5EqPReN7HokWLePXVVxk8eDBpaWlqh9okLpX/2UwmE9OnT2fatGk+c61FY/PPzc3lpptu4q233vK5Frufcgy0Bmazmerq6gbTqqurMZvNKkUk1GKz2Rg3bhxjx45l2rRpaoejCp1Oxy9+8QvWrl3LqlWr1A6nWezcuZMtW7Zw3333qR3KOaTFrhFWr1590c/HjRtHZmYmK1asAH7sLbd06VKmTp3aHCE2qUvl/98URcFqtVJYWNjifslcjsbkX1RUxPXXX8/TTz/tkxdQ/9RjwNelpKRgsVgoKirydpbavXs306dPVzky0ZycTieTJ08mNjaWpUuXqh2O6txuN0ePHlU7jGbx7bffkpOT4z07ZbFY0Ov1HD16lDfeeEPV2KSwuwKWL1+OzWbzvk9PT+e1115j2LBh6gXVjHbv3o3FYmHAgAE4HA6effZZQkNDSUlJUTu0ZmGxWBg1ahT33HMPM2bMUDsc1dTX13Pm1tP19fXYbDafvbDebDZz8803M3/+fF566SXWrFnDvn37uOmmm9QOrdk4HA5cLhdutxuHw4HNZsPf3x+ttvWcCLrvvvuoq6tjxYoVaDQatcNpVmc6EN1yyy0YjUY+++wz1q1bx5IlS9QOrVnMmDGDyZMne98/8sgjpKSktIwRERRxxSUlJSlZWVlqh9Fstm7dqlxzzTWK2WxWwsPDlVGjRim7d+9WO6xms3z5cgVQAgMDGzxam6SkJAVo8PBlJSUlypgxYxSTyaSkpKQoa9asUTukZjVlypRz/r3XrVundljNJi8vTwEUo9HY4P99Zmam2qE1C6vVqgwfPlwJCQlRgoODld69eyuffPKJ2mGpZsqUKcrixYvVDkNRFEXRKMrpn9hCCCGEEOKq1nrazIUQQgghfJwUdkIIIYQQPkIKOyGEEEIIHyGFnRBCCCGEj5DCTgghhBDCR0hhJ4QQQgjhI6SwE0IIIYTwEVLYCSHEZdBoNBQVFV2x9R0/fpzIyMgrtj4hROskhZ0QwqclJycTEBCA2WwmNjaW2bNn43K51A7rHImJiZSVlakdhhDiKieFnRDC533zzTdYrVY2bNjARx99xNtvv612SEII0SSksBNCtBodOnRg0KBB7Nq1yzvt448/plu3boSHh3PzzTdTUlICgNvtZsKECURFRREeHs6kSZOoqKi45DYuttz69euJi4vzvl+xYgWdO3emrq6OvLw8jEajdx0PP/wwkZGRBAcH07t3b2nNE0I0ihR2QohW4/Dhw2zcuJH27dsDsGXLFubMmcOHH35IcXExqampPPDAA975J0yYQG5uLrm5udTU1LBw4cJGbedCyw0bNoyJEycya9YsSktLeeihh1i+fDkmk6nB8qtXr2bTpk388MMPVFZW8uabb3qLPiGEuBiNoiiK2kEIIURTSU5Opry8HEVROHXqFOPHj+f999/HaDRy//330759e37zm98AYLVaCQsLo66uDr1e32A9q1at4re//S3btm0DPJ0nCgsLiY6Ovuj2/3u52tpaevbsib+/PzfccAMvvPACAHl5eaSmpmKz2Vi7di0PPPAA7733Hunp6Wg0miu9W4QQPkpa7IQQPm/NmjXU1NTw6aefsmPHDqxWK+DpibpgwQJCQ0MJDQ0lPj4evV5PUVERTqeTRx99lKSkJIKDg7n11lspLy+/5LYutVxAQACTJ0/mwIEDPPzww+ddx4gRI3jggQeYMWMGUVFRzJ07F4fDcWV2hhDCp0lhJ4RoFTQaDbfccgsjRozg2WefBSAuLo7FixdTVVXlfdTV1REfH8/f//53NmzYQFZWFtXV1Xz88cc05gTHpZY7fPgwf/7zn5k0aRJz58694Hpmz57Nrl272LFjB6tXr+aDDz74+TtBCOHzpLATQrQqv/71r3nzzTcpLS1l2rRpvPLKK+zZsweAiooKPvvsMwBqamowGAyEhoZSVlbG0qVLG7X+iy3ndruZMmUKv/3tb1m+fDm7du3io48+Omcd27ZtY+vWrTidToKCgvDz80On012B7IUQvk4KOyFEq5KamsqwYcN4+eWXycjIYMmSJdx9993e3qffffcdAPfccw8hISFERUUxZMgQRo8e3aj1X2y5pUuXotPpeOSRRzCZTLzzzjs89NBD3p64Z1gsFqZNm0ZoaCidO3dm0KBB3H777VduJwghfJZ0nhBCCCGE8BHSYieEEEII4SOksBNCCCGE8BFS2AkhhBBC+Agp7IQQQgghfIQUdkIIIYQQPkIKOyGEEEIIHyGFnRBCCCGEj5DCTgghhBDCR0hhJ4QQQgjhI6SwE0IIIYTwEVLYCSGEEEL4CCnshBBCCCF8xP8DEakGLJIcIJIAAAAASUVORK5CYII=", "text/plain": [ "
" ] @@ -385,7 +376,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.6" + "version": "3.13.1" } }, "nbformat": 4, diff --git a/examples/era_msd.py b/examples/era_msd.py new file mode 100644 index 000000000..101933435 --- /dev/null +++ b/examples/era_msd.py @@ -0,0 +1,63 @@ +# era_msd.py +# Johannes Kaisinger, 4 July 2024 +# +# Demonstrate estimation of State Space model from impulse response. +# SISO, SIMO, MISO, MIMO case + +import numpy as np +import matplotlib.pyplot as plt +import os + +import control as ct + +# set up a mass spring damper system (2dof, MIMO case) +# Mechanical Vibrations: Theory and Application, SI Edition, 1st ed. +# Figure 6.5 / Example 6.7 +# m q_dd + c q_d + k q = f +m1, k1, c1 = 1., 4., 1. +m2, k2, c2 = 2., 2., 1. +k3, c3 = 6., 2. + +A = np.array([ + [0., 0., 1., 0.], + [0., 0., 0., 1.], + [-(k1+k2)/m1, (k2)/m1, -(c1+c2)/m1, c2/m1], + [(k2)/m2, -(k2+k3)/m2, c2/m2, -(c2+c3)/m2] +]) +B = np.array([[0.,0.],[0.,0.],[1/m1,0.],[0.,1/m2]]) +C = np.array([[1.0, 0.0, 0.0, 0.0],[0.0, 1.0, 0.0, 0.0]]) +D = np.zeros((2,2)) + +xixo_list = ["SISO","SIMO","MISO","MIMO"] +xixo = xixo_list[3] # choose a system for estimation +match xixo: + case "SISO": + sys = ct.StateSpace(A, B[:,0], C[0,:], D[0,0]) + case "SIMO": + sys = ct.StateSpace(A, B[:,:1], C, D[:,:1]) + case "MISO": + sys = ct.StateSpace(A, B, C[:1,:], D[:1,:]) + case "MIMO": + sys = ct.StateSpace(A, B, C, D) + + +dt = 0.1 +sysd = sys.sample(dt, method='zoh') +response = ct.impulse_response(sysd) +response.plot() +plt.show() + +sysd_est, _ = ct.eigensys_realization(response,r=4,dt=dt) + +step_true = ct.step_response(sysd) +step_true.sysname="H_true" +step_est = ct.step_response(sysd_est) +step_est.sysname="H_est" + +step_true.plot(title=xixo) +step_est.plot(color='orange',linestyle='dashed') + +plt.show() + +if 'PYCONTROL_TEST_EXAMPLES' not in os.environ: + plt.show() \ No newline at end of file diff --git a/examples/kincar-fusion.ipynb b/examples/kincar-fusion.ipynb index 3444ac95a..062345ad3 100644 --- a/examples/kincar-fusion.ipynb +++ b/examples/kincar-fusion.ipynb @@ -23,10 +23,10 @@ "import numpy as np\n", "import scipy as sp\n", "import matplotlib.pyplot as plt\n", + "\n", "import control as ct\n", "import control.optimal as opt\n", "import control.flatsys as fs\n", - "from IPython.display import Image\n", "\n", "# Define line styles\n", "ebarstyle = {'elinewidth': 0.5, 'capsize': 2}\n", @@ -76,11 +76,11 @@ "Outputs (3): ['x', 'y', 'theta']\n", "States (3): ['x', 'y', 'theta']\n", "\n", - "Update: \n", - "Output: \n", + "Update: \n", + "Output: \n", "\n", - "Forward: \n", - "Reverse: \n" + "Forward: \n", + "Reverse: \n" ] } ], @@ -112,7 +112,7 @@ "outputs": [ { "data": { - "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", + "image/png": "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", "text/plain": [ "
" ] @@ -133,11 +133,10 @@ "\n", "# Create the desired trajectory between the initial and final condition\n", "Ts = 0.1\n", - "# Ts = 0.5\n", - "T = np.arange(0, Tf + Ts, Ts)\n", - "xd, ud = traj.eval(T)\n", + "timepts = np.arange(0, Tf + Ts, Ts)\n", + "xd, ud = traj.eval(timepts)\n", "\n", - "plot_lanechange(T, xd, ud)" + "plot_lanechange(timepts, xd, ud)" ] }, { @@ -160,18 +159,19 @@ "name": "stdout", "output_type": "stream", "text": [ - ": sys[3]\n", + ": sys[0]$sampled\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", + "dt = 0.1\n", "\n", "A = [[ 1.0000000e+00 0.0000000e+00 -5.0004445e-07]\n", " [ 0.0000000e+00 1.0000000e+00 1.0000000e+00]\n", " [ 0.0000000e+00 0.0000000e+00 1.0000000e+00]]\n", "\n", - "B = [[0.1 0. ]\n", - " [0. 0. ]\n", - " [0. 0.33333333]]\n", + "B = [[ 9.99999999e-02 -8.33407417e-08]\n", + " [ 0.00000000e+00 1.66666667e-01]\n", + " [ 0.00000000e+00 3.33333333e-01]]\n", "\n", "C = [[1. 0. 0.]\n", " [0. 1. 0.]\n", @@ -179,26 +179,26 @@ "\n", "D = [[0. 0.]\n", " [0. 0.]\n", - " [0. 0.]]\n", - "\n", - "dt = 0.1\n", - "\n" + " [0. 0.]]\n" ] } ], "source": [ "#\n", - "# Create a discrete time, linear model\n", + "# Create a discrete-time, linear model\n", "#\n", "\n", "# Linearize about the starting point\n", - "linsys = ct.linearize(vehicle, x0, u0)\n", + "veh_lin = ct.linearize(vehicle, x0, u0)\n", + "\n", + "# Create a discrete-time model by hand\n", + "veh_lin_dt = ct.sample_system(veh_lin, Ts)\n", "\n", - "# Create a discrete time model by hand\n", - "Ad = np.eye(linsys.nstates) + linsys.A * Ts\n", - "Bd = linsys.B * Ts\n", - "discsys = ct.ss(Ad, Bd, np.eye(linsys.nstates), 0, dt=Ts)\n", - "print(discsys)" + "# Update the model to have full-state output\n", + "# veh_lin_dt = ct.ss(\n", + "# veh_lin_dt.A, veh_lin_dt.B, np.eye(veh_lin_dt.nstates), 0, dt=veh_lin_dt.dt,\n", + "# name=\"vehicle-lin-dt\")\n", + "print(veh_lin_dt)" ] }, { @@ -219,7 +219,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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y2JiYjTz1sqprqsH1XP1obquHqpCPRuGQVJSEnXq1LnmhgzVusXOxsaGgICAm/IuDw+PSvsfjJQt1XX1oHquPlTX1UNlr+drtdTl0+QJERERESuhxE5ERETESiixK2eOjo5MnjwZR0fHig5FypnqunpQPVcfquvqwdrquVpPnhARERGxJmqxExEREbESSuxERERErIQSOxERERErocSuHM2ePZsGDRrg5ORE+/bt+fnnnys6JLlBmzdv5r777qNOnTqYTCZWrlxZ4LphGISGhlKnTh2cnZ3p2bMn+/fvr5hgpdSmTp1Khw4dcHd3x9fXlwceeIDDhw8XKKO6tg5z5syhVatWljXMQkJCWL16teW66tk6TZ06FZPJxNixYy3nrKWuldiVk2XLljF27FgmTZrErl276NatG3379uX06dMVHZrcgJSUFFq3bs0HH3xQ5PW33nqLGTNm8MEHH7Bz5078/Pz4+9//btm+TqqGn376iWeffZZt27axfv16srOz6d27NykpKZYyqmvrEBAQwLRp04iIiCAiIoK//e1v3H///Zb/oauerc/OnTv56KOPaNWqVYHzVlPXhpSLjh07GiNHjixwrmnTpsbLL79cQRFJWQOMFStWWI5zc3MNPz8/Y9q0aZZz6enphqenp/Hhhx9WQIRSVuLi4gzA+OmnnwzDUF1buxo1ahjz5s1TPVuhpKQko3Hjxsb69euNHj16GM8//7xhGNb1M60Wu3KQmZlJZGQkvXv3LnC+d+/ebN26tYKikvJ24sQJYmNjC9S7o6MjPXr0UL1XcZcvXwbA29sbUF1bq5ycHJYuXUpKSgohISGqZyv07LPPcs8993DnnXcWOG9NdV2t94otL/Hx8eTk5FC7du0C52vXrk1sbGwFRSXlLb9ui6r3U6dOVURIUgYMw2D8+PF07dqVFi1aAKpraxMdHU1ISAjp6em4ubmxYsUKmjdvbvkfuurZOixdupSoqCh27txZ6Jo1/UwrsStHJpOpwLFhGIXOifVRvVuX5557jr179/LLL78Uuqa6tg5NmjRh9+7dJCQk8NVXXzF48GB++ukny3XVc9UXExPD888/z7p163Byciq2nDXUtbpiy4GPjw+2traFWufi4uIK/TYg1sPPzw9A9W5FRo8ezapVq9i4cSMBAQGW86pr6+Lg4EBQUBDBwcFMnTqV1q1bM2vWLNWzFYmMjCQuLo727dtjZ2eHnZ0dP/30E++99x52dnaW+rSGulZiVw4cHBxo374969evL3B+/fr1dO7cuYKikvLWoEED/Pz8CtR7ZmYmP/30k+q9ijEMg+eee47ly5ezYcMGGjRoUOC66tq6GYZBRkaG6tmK9OrVi+joaHbv3m35ExwczOOPP87u3btp2LCh1dS1umLLyfjx4xk4cCDBwcGEhITw0Ucfcfr0aUaOHFnRockNSE5O5ujRo5bjEydOsHv3bry9valXrx5jx47lzTffpHHjxjRu3Jg333wTFxcXHnvssQqMWkrq2WefZfHixXz99de4u7tbfov39PTE2dnZsv6V6rrqe/XVV+nbty+BgYEkJSWxdOlSNm3axJo1a1TPVsTd3d0yRjafq6srNWvWtJy3mrquuAm51u+///2vUb9+fcPBwcFo166dZakEqbo2btxoAIX+DB482DCMvCnzkydPNvz8/AxHR0eje/fuRnR0dMUGLSVWVB0DxoIFCyxlVNfW4emnn7b8O12rVi2jV69exrp16yzXVc/W68rlTgzDeuraZBiGUUE5pYiIiIiUIY2xExEREbESSuxERERErIQSOxERERErocRORERExEoosRMRERGxEkrsRERERKyEEjsRERERK6HETkRERMRKKLETERERsRJK7ERERESshBI7EZHr1LNnT8aOHXvDZcoqFpPJhMlkYvfu3Tf0rCeffNLyrJUrV5ZJfCJSMbRXrIjIdbp48SL29va4u7sDeclVmzZtePfdd4stU1569uzJrbfeypQpU/Dx8cHOzq7Uz7p8+TJpaWn4+/uzYsUKHnjggbILVERuqtL/SyAiUs14e3uXSZmy4uLigp+f3w0/x9PTE09PzzKISEQqmrpiRaRSWrJkCU5OTpw9e9ZybujQobRq1YrLly8XKt+zZ0+ee+45nnvuOby8vKhZsyb/+te/uLJTIiMjgzFjxuDr64uTkxNdu3Zl586dBZ7z5Zdf0rJlS5ydnalZsyZ33nknKSkplnfkd7M++eST/PTTT8yaNcvSjXny5MlCXbHX886ePXsyZswYJkyYgLe3N35+foSGhpb476xnz56MHj2asWPHUqNGDWrXrs1HH31ESkoKTz31FO7u7jRq1IjVq1eX+NkiUjUosRORSumf//wnTZo0YerUqQCEhYWxdu1aVq9eXWzr0ieffIKdnR3bt2/nvffeY+bMmcybN89yfcKECXz11Vd88sknREVFERQURJ8+fbh48SIAZrOZAQMG8PTTT3Pw4EE2bdrEQw89RFEjVmbNmkVISAjDhg3DbDZjNpsJDAwsVO5a77wydldXV7Zv385bb73FlClTWL9+fYn/3j755BN8fHzYsWMHo0ePZtSoUfTv35/OnTsTFRVFnz59GDhwIKmpqSV+tohUAYaISCX1zTffGI6OjsYbb7xh1KhRw9i3b1+xZXv06GE0a9bMyM3NtZybOHGi0axZM8MwDCM5Odmwt7c3Fi1aZLmemZlp1KlTx3jrrbcMwzCMyMhIAzBOnjxZ7Duef/75Yo//eu563pl/T9euXQs8p0OHDsbEiROv+nmLeveVz8nOzjZcXV2NgQMHWs6ZzWYDMH799ddCzwSMFStWFPtOEan81GInIpXWvffeS/PmzQkLC2PFihXcdtttVy3fqVMnTCaT5TgkJIQjR46Qk5PDsWPHyMrKokuXLpbr9vb2dOzYkYMHDwLQunVrevXqRcuWLenfvz/h4eFcunSp1PFfzzvztWrVqsCxv78/cXFxJX7nlc+xtbWlZs2atGzZ0nKudu3aAKV6tohUfkrsRKTSWrt2LYcOHSInJ8eSkJSW8Ud36pWJX/75/HO2trasX7+e1atX07x5c95//32aNGnCiRMnyu2d+ezt7Qscm0wmcnNzS/zOop5z5bn895bm2SJS+SmxE5FKKSoqiv79+zN37lz69OnDa6+9ds17tm3bVui4cePG2NraEhQUhIODA7/88ovlelZWFhERETRr1sxyzmQy0aVLF8LCwti1axcODg6sWLGiyPc5ODiQk5NTbDzX+04RkbKi5U5EpNI5efIk99xzDy+//DIDBw6kefPmdOjQgcjISNq3b1/sfTExMYwfP54RI0YQFRXF+++/zzvvvAOAq6sro0aN4qWXXsLb25t69erx1ltvkZqaypAhQwDYvn07P/74I71798bX15ft27dz/vz5YpOwW265he3bt3Py5Enc3NwKLXVyPe8UESlLSuxEpFK5ePEiffv2pV+/frz66qsAtG/fnvvuu49JkyaxZs2aYu8dNGgQaWlpdOzYEVtbW0aPHs3w4cMt16dNm0Zubi4DBw4kKSmJ4OBg1q5dS40aNQDw8PBg8+bNvPvuuyQmJlK/fn3eeecd+vbtW+T7XnzxRQYPHkzz5s1JS0srssv2Wu8UESlL2nlCRKxCUbtAWLPy+Lwmk0k7T4hUcRpjJyJSRc2ePRs3Nzeio6Nv6DkjR47Ezc2tjKISkYqkFjsRsQrVrcXu7NmzpKWlAVCvXj0cHBxK/ay4uDgSExOBvGVWXF1dyyRGEbn5lNiJiIiIWAl1xYqIiIhYCSV2IiIiIlZCiZ2IiIiIlVBiJyIiImIllNiJiIiIWAkldiIiIiJWQomdiIiIiJVQYiciIiJiJZTYiYiIiFgJJXYiIiIiVkKJnYiIiIiV+H/0B8nbiQvAPwAAAABJRU5ErkJggg==", "text/plain": [ "
" ] @@ -230,23 +230,24 @@ ], "source": [ "# Sensor #1: longitudinal\n", - "C_lon = np.eye(2, discsys.nstates)\n", + "C_lon = np.eye(2, veh_lin_dt.nstates)\n", "Rw_lon = np.diag([0.1 ** 2, 1 ** 2])\n", - "W_lon = ct.white_noise(T, Rw_lon, dt=Ts)\n", + "W_lon = ct.white_noise(timepts, Rw_lon, dt=Ts)\n", "\n", "# Sensor #2: lateral\n", - "C_lat = np.eye(2, discsys.nstates)\n", + "C_lat = np.eye(2, veh_lin_dt.nstates)\n", "Rw_lat = np.diag([1 ** 2, 0.1 ** 2])\n", - "W_lat = ct.white_noise(T, Rw_lat, dt=Ts)\n", + "W_lat = ct.white_noise(timepts, Rw_lat, dt=Ts)\n", "\n", "# Plot the noisy signals\n", "plt.subplot(2, 1, 1)\n", "Y = xd[0:2] + W_lon\n", - "plt.plot(Y[0], Y[1])\n", - "plt.plot(xd[0], xd[1], **xdstyle)\n", + "plt.plot(Y[0], Y[1], label=\"measured\")\n", + "plt.plot(xd[0], xd[1], **xdstyle, label=\"actual\")\n", "plt.xlabel(\"$x$ position [m]\")\n", "plt.ylabel(\"$y$ position [m]\")\n", "plt.title(\"Sensor #1\")\n", + "plt.legend()\n", " \n", "plt.subplot(2, 1, 2)\n", "Y = xd[0:2] + W_lat\n", @@ -278,13 +279,14 @@ "name": "stdout", "output_type": "stream", "text": [ - ": sys[4]\n", + ": sys[2]\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", + "dt = 0.1\n", "\n", - "Update: ._estim_update at 0x166ac1120>\n", - "Output: ._estim_output at 0x166ac0dc0>\n" + "Update: ._estim_update at 0x141142d40>\n", + "Output: ._estim_output at 0x141142700>\n" ] } ], @@ -302,7 +304,7 @@ "C = np.vstack([C_lon, C_lat])\n", "Rw = sp.linalg.block_diag(Rw_lon, Rw_lat)\n", "\n", - "estim = ct.create_estimator_iosystem(discsys, Rv, Rw, C=C, P0=P0)\n", + "estim = ct.create_estimator_iosystem(veh_lin_dt, Rv, Rw, C=C, P0=P0)\n", "print(estim)" ] }, @@ -311,7 +313,7 @@ "id": "d9e2e618", "metadata": {}, "source": [ - "Finally, we estimate the position of the vehicle based on sensor measurements. We assume that the input to the vehicle (velocity and steering angle) is available, though we can also explore what happens if that information is not available (see commented out code).\n", + "Finally, we estimate the position of the vehicle based on sensor measurements. We assume that the input to the vehicle (velocity and steering angle) is available, though we can also explore what happens if that information is not available (see commented out code below).\n", "\n", "We also carry out a prediction of the position of the vehicle by turning off the correction term in the Kalman filter." ] @@ -324,7 +326,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "
" ] @@ -341,25 +343,28 @@ "X0 = np.hstack([xd[:, 0], P0.reshape(-1)])\n", "\n", "# Run the estimator on the trajectory\n", - "estim_resp = ct.input_output_response(estim, T, U, X0)\n", + "estim_resp = ct.input_output_response(estim, timepts, U, X0)\n", "\n", "# Run a prediction to see what happens next\n", - "T_predict = np.arange(T[-1], T[-1] + 4 + Ts, Ts)\n", - "U_predict = np.outer(U[:, -1], np.ones_like(T_predict))\n", + "timepts_predict = np.arange(timepts[-1], timepts[-1] + 4 + Ts, Ts)\n", + "U_predict = np.outer(U[:, -1], np.ones_like(timepts_predict))\n", "predict_resp = ct.input_output_response(\n", - " estim, T_predict, U_predict, estim_resp.states[:, -1],\n", + " estim, timepts_predict, U_predict, estim_resp.states[:, -1],\n", " params={'correct': False})\n", "\n", "# Plot the estimated trajectory versus the actual trajectory\n", "plt.subplot(2, 1, 1)\n", "plt.errorbar(\n", " estim_resp.time, estim_resp.outputs[0], \n", - " estim_resp.states[estim.find_state('P[0,0]')], fmt='b-', **ebarstyle)\n", + " estim_resp.states[estim.find_state('P[0,0]')], \n", + " fmt='b-', **ebarstyle, label=\"estimated\")\n", "plt.errorbar(\n", " predict_resp.time, predict_resp.outputs[0], \n", - " predict_resp.states[estim.find_state('P[0,0]')], fmt='r-', **ebarstyle)\n", - "plt.plot(T, xd[0], 'k--')\n", + " predict_resp.states[estim.find_state('P[0,0]')],\n", + " fmt='r-', **ebarstyle, label=\"predicted\")\n", + "plt.plot(timepts, xd[0], 'k--', label=\"actual\")\n", "plt.ylabel(\"$x$ position [m]\")\n", + "plt.legend()\n", "\n", "plt.subplot(2, 1, 2)\n", "plt.errorbar(\n", @@ -369,9 +374,9 @@ " predict_resp.time, predict_resp.outputs[1], \n", " predict_resp.states[estim.find_state('P[1,1]')], fmt='r-', **ebarstyle)\n", "# lims = plt.axis(); plt.axis([lims[0], lims[1], -5, 5])\n", - "plt.plot(T, xd[1], 'k--');\n", + "plt.plot(timepts, xd[1], 'k--');\n", "plt.ylabel(\"$y$ position [m]\")\n", - "plt.xlabel(\"Time $t$ [s]\");" + "plt.xlabel(\"Time $t$ [sec]\");" ] }, { @@ -390,7 +395,7 @@ "outputs": [ { "data": { - "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", + "image/png": "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sOaIiEq9Jk2a5N13cHCAp6cnGjdunLdPbmVJTU3FqVOn8PjxY3Tp0kXnHJmZmWjevHmh14iLi0PTpk1Niq9p06Z49tln0bhxY3Tt2hUhISF47bXXULly5WLjSUhIQEZGBp599lmTrk1EymNyRESlnqOjo85jlUqls0+lUgEQtTu5ubkAgD/++ANPPPGEzuucnZ0LvUZ8fLzJyZGDgwNiYmKwb98+bNu2DfPmzcPEiRNx8ODBYuO5e/euSdckIsthckREdqVBgwZwdnZGUlISOnbsaPDrjh8/jpdfftnk66pUKrRt2xZt27bFlClTUKtWLaxfvx5DhgwpMp6qVavCxcUFf/31FwYPHmzy9YlIOUyOiMiuuLu7Y+zYsRgzZgxyc3PRrl07pKenY9++fahYsSL69++v93W5ubk4duwYrl27Bjc3N6OGzh88eBB//fUXQkJC4O3tjYMHD+LGjRsICAgwKJ5x48bh/fffh5OTE9q2bYsbN27g5MmTGDRokFIfCxEZgckREdmdjz76CN7e3oiKisL58+dRqVIltGjRAh988EGhr5kxYwbGjRuHL7/8EpGRkZg1a5bB1/Pw8MDu3bsxZ84cpKeno1atWpg1axa6detmUDyTJ09G+fLlMWXKFFy7dg2+vr4YNmyYeR8CEZlMJUn/jTUlIqJiderUCc2aNcOcOXNK/NoqlQrr1683aBZvIjId5zkiIjLSggULULFiRRw/frxErjds2DBUrFixRK5FRGw5IiIyytWrV/Ho0SMAQM2aNeHk5GTxa6ampiI9PR0A4OvrCzc3N4tfk6gsY3JEREREpIXdakRERERamBwRERERaWFyRERERKSFyRERERGRFiZHRERERFqYHBERERFpYXJEREREpIXJEREREZEWJkdEREREWv4f2kPWVI1ZlOoAAAAASUVORK5CYII=", "text/plain": [ "
" ] @@ -404,12 +409,16 @@ "plt.subplot(2, 1, 1)\n", "plt.errorbar(\n", " estim_resp.time, estim_resp.outputs[0] - xd[0], \n", - " estim_resp.states[estim.find_state('P[0,0]')], fmt='b-', **ebarstyle)\n", + " estim_resp.states[estim.find_state('P[0,0]')],\n", + " fmt='b-', **ebarstyle, label=\"estimated\")\n", "plt.errorbar(\n", " predict_resp.time, predict_resp.outputs[0] - (xd[0] + xd[0, -1]), \n", - " predict_resp.states[estim.find_state('P[0,0]')], fmt='r-', **ebarstyle)\n", + " predict_resp.states[estim.find_state('P[0,0]')],\n", + " fmt='r-', **ebarstyle, label=\"predicted\")\n", "lims = plt.axis(); plt.axis([lims[0], lims[1], -0.2, 0.2])\n", "# lims = plt.axis(); plt.axis([lims[0], lims[1], -2, 0.2])\n", + "plt.ylabel(\"$x$ error [m]\")\n", + "plt.legend(loc='lower right')\n", "\n", "plt.subplot(2, 1, 2)\n", "plt.errorbar(\n", @@ -418,7 +427,9 @@ "plt.errorbar(\n", " predict_resp.time, predict_resp.outputs[1] - xd[1, -1], \n", " predict_resp.states[estim.find_state('P[1,1]')], fmt='r-', **ebarstyle)\n", - "lims = plt.axis(); plt.axis([lims[0], lims[1], -0.2, 0.2]);" + "lims = plt.axis(); plt.axis([lims[0], lims[1], -0.2, 0.2])\n", + "plt.ylabel(\"$y$ error [m]\")\n", + "plt.xlabel(\"Time $t$ [sec]\");" ] }, { @@ -429,6 +440,7 @@ "### Things to try\n", "\n", "To gain a bit more insight into sensor fusion, you can try the following:\n", + "\n", "* Remove the input (and update P0)\n", "* Change the sampling rate" ] @@ -451,7 +463,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjkAAAGzCAYAAADNKAZOAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAdvlJREFUeJzt3Xl8TNf7wPHPZE/IgshCUkJiS+wpopRSlC5UF6W1tHxbS1X4dbG0vtWq0CrVarWWov1WaRG0WkmKJNrUntROrQkSEWSPSTJzf3+MDCEhGZNMZvK8X6/7Yu49997nOGQe5557jkpRFAUhhBBCCAtjZeoAhBBCCCEqgiQ5QgghhLBIkuQIIYQQwiJJkiOEEEIIiyRJjhBCCCEskiQ5QgghhLBIkuQIIYQQwiJJkiOEEEIIi2Rj6gBMSavVcvHiRZydnVGpVKYORwghhBBloCgKWVlZ1KtXDyur0vtrqnWSc/HiRXx9fU0dhhBCCCEMkJSUhI+PT6nHq3WS4+zsDOj+kFxcXEwcjRBCCCHKIjMzE19fX/33eGmqdZJT9IjKxcVFkhwhhBDCzNxrqIlZDDwOCwtDpVIRGhqq36coCu+//z716tXD0dGR7t27c/jwYdMFKYQQQogqpconOXv27GHx4sW0atWq2P6PP/6YefPmsXDhQvbs2YOXlxe9evUiKyvLRJEKIYQQoiqp0klOdnY2L774IkuWLKFWrVr6/Yqi8NlnnzFt2jQGDhxIUFAQK1euJDc3l1WrVpkwYiGEEEJUFVV6TM64ceN4/PHHefTRR5k5c6Z+/5kzZ0hJSaF37976ffb29nTr1o24uDhee+01o8ah0WgoKCgw6jWF6dja2mJtbW3qMIQQwiIlJMDu3fDXX9kcOlSTsWPBwQECA6FNm8qNpcomOatXr2b//v3s2bPnjmMpKSkAeHp6Ftvv6enJuXPnSr2mWq1GrVbrP2dmZt41BkVRSElJIT09vRyRC3Pg5uaGl5eXzI8khBBGkpEBmzZBaChcvaoANQEYNUp3vFs3iI6u3JiqZJKTlJTEhAkTiIyMxMHBodRyt39BKYpy1y+tsLAwZsyYUeY4ihIcDw8PnJyc5AvRAiiKQm5uLqmpqQB4e3ubOCIhhDBfWVmwalUWixZd5dCh+mg0RWmFCgeHswQGXuGll9pTt66uJ6eyqRRFUSr/tne3YcMGnn766WKPFDQaDSqVCisrK44fP46/vz/79++nbdu2+jL9+/fHzc2NlStXlnjdknpyfH19ycjIuOMVco1Gw4kTJ/Dw8KBOnTpGrqEwtStXrpCamkqTJk3k0ZUQQpRDdjasXp3NokVXSEjwRqu10x9r3LiAl16y5bnnwN9fjb29fYXEkJmZiaura4nf37eqkj05PXv25ODBg8X2vfzyyzRr1ox33nmHRo0a4eXlRVRUlD7Jyc/PJyYmhjlz5pR6XXt7+zL/gReNwXFycjKwFqIqK2rXgoICSXKEEOIe/v4bfvwRoqJSOX7cBUWpSdHjKDiBp2cMgwapmDatPx4edW/sr5gEpzyqZJLj7OxMUFBQsX01atSgTp06+v2hoaHMmjWLgIAAAgICmDVrFk5OTgwZMsSoscgjKssk7SqEEHeXlwfh4XmsW2fNhg12aLUAHjeOngK24+2tsH17N5o2/Y/pAr2LKpnklMXbb79NXl4eY8eO5dq1a3Ts2JHIyMh7TvEshBBCiJKp1bBx43U+//wSu3Z5UFjoqD9Wty60a6cmP38lffp0xcdnFIGB0LSpCQO+hyo5Jqey3O2Z3vXr1zlz5gx+fn53Hfwsym7EiBGkp6ezYcMGU4ci7SuEEDfk58Ovv17n889T+OsvDwoLbx2mkYi/fzw//NCfBx+EqtIJbtZjcoTpvP/++2zYsIGEhARThyKEEKKC5OfDN9/Azz/Dvn0KubkOQMMbR8/j6hpF//5qQkNDaNPmqSqT3JSXJDlCCCFENaBWw2+/FfDFFynExbmjVhc9ilIB14CNQB5t23Zk374RFjF2UZKccsrJySn1mLW1dbFHH3cra2VlhaOj4z3L1qhRo9wxbtmyhZkzZ3Lo0CGsra0JCQlhwYIFNG7cGIDz58/z5ptvEhkZiVqtpnnz5nz55ZccPXpUP49Q0V/u5cuX0717d/z8/IiPj6fNjekq09PTqVWrFtu3b6d79+5oNBpeffVVtm3bRkpKCg888ABjx45lwoQJ5Y5fCCGEcajVsHlzAV9+eYkdO2pTUOAE+ALg5lbAgw/a0qED+PpaU6PGcFQqFYGBVeex1P2SJKecatasWeqxfv36sXnzZv1nDw8PcnNzSyzbrVs3om+Z+rFhw4akpaXdUc6QIVM5OTlMmjSJli1bkpOTw/Tp03n66adJSEggNzeXbt26Ub9+fTZt2oSXlxf79+9Hq9UyaNAgDh06xJYtW/jjjz8AcHV15dKlS/e8p1arxcfHh59++gl3d3fi4uJ49dVX8fb25vnnny93HYQQQhjm+nWIjITFi68SGelwI7HxuXH0IjVq/E7fvjnMnv0UjRs3vLG/9HEt5kySHAv0zDPPFPu8bNkyPDw8OHLkCHFxcVy+fJk9e/ZQu3ZtAPz9/fVla9asiY2NDV5eXuW6p62tbbHZpP38/IiLi+Onn36SJEcIISqYWg1ffaXhp5+0/POPLXl5ALVvHL2Ao+Nv9O2bzRtvBNO168tYWVXp9bmNRpKccsrOzi712O2TyhUtHVCS2/+CnT179r7iutWpU6d477332LlzJ2lpaWh1kxuQmJhIQkICbdu21Sc4xvT111+zdOlSzp07R15eHvn5+frHW0IIIYwrPx8iIzUsXJjK9u2u5Oc7Abd+D2mAL2jVqg37979SLSc+lSSnnMozRqaiyt7Lk08+ia+vL0uWLKFevXpotVqCgoLIz88vNg6orIoSslsfnd2+KvtPP/3ExIkT+fTTTwkJCcHZ2ZlPPvmEXbt23V9lhBBC6BUUwB9/aFm4MJWtW51Rq2sARWvwXcTFJZbQ0Bfw9wcrK2sglMBAqIb5DSBJjsW5cuUKR48e5ZtvvqFr164A/Pnnn/rjrVq1YunSpVy9erXE3hw7Ozs0Gk2xfXXr6qboTk5O1i+jcfsr5jt27KBz586MHTtWv+/UqVNGqZMQQlRnhYW61bt/+gnWr1e4csUKKBpSkIK9/S/07HmV8ePb0rPnM9jamjDYKkaSHAtTq1Yt6tSpw+LFi/H29iYxMZHJkyfrjw8ePJhZs2YxYMAAwsLC8Pb2Jj4+nnr16hESEkLDhg05c+YMCQkJ+Pj44OzsjKOjI506dWL27Nn6AdLvvvtusfv6+/vz3XffERERgZ+fH99//z179uzBz8+vsv8IhBDC7BUWwvbtCrNmXSYurgb5+UW9/SpsbTNRlJ/p2fMy48a1ok+f4djZ2d31etVV9Rh5VI1YWVmxevVq9u3bR1BQEBMnTuSTTz7RH7ezsyMyMhIPDw/69etHy5YtmT17tv5Z7TPPPMNjjz3GI488Qt26dfnxxx8B+PbbbykoKCA4OJgJEyYwc+bMYvcdPXo0AwcOZNCgQXTs2JErV64U69URQghxd4WFEBWlMHDgZVxcsundW0V0tMeNBOfmEIGCgnxCQl5iy5bJPPlkP0lw7kKWdZBlHaolaV8hRFVQ9Chq2bIsNm60Ii/v1vGZaVhb/0KTJhcZPPgJGjVqrT8SGAjV+b0OWdZBCCGEqIL27oW1axV27tSwf78NWVkARYtLp2FtvYmHHrrA2LEtePLJQTg5Od3lauJuJMkRQgghKlhhIcTE6CboW7vWHq22BsW/ghVq1fqUhQsfoH//QUZ947Y6kyRHCCGEqAAajS6xWbIknV9+sSUnpwY3J+hLw94+kgkTBhMYqMLaWkVg4JvV+hFURZAkRwghhDASjQZiY3Wre69bB7o5Yd1uHE1DpdrIgw+eYfToZgwc+CSurhaySFQVJUmOEEIIcR80Gli+HFasyGTfPmuuX7/5qMnOLoeCgjW0b3+KV18N4NlnB1KrVi0TRlu9SJIjhBBClJNWC3Fxurei1q9XkZlZk5uLXOYDute627bNZvPm/tSpU8dUoVZrkuRUoORk3XY7b2/dJoQQwnxotbBzJ6xcmceaNRoyMmpy862oa8AGfH2PM2RIX1q27AZAYKAnkt+YjiQ5Feibb+CWhbn1/vtfeP/9Sg9HCCFEOSkK7N4Na9YorF2rIikJoGgNwAxgA4GBR3j1VT+ef34AXl4vmy5YcQdJcirQa6/BU0/pfh8aCp99pvu9ufXijBgxgvT0dDZs2GDqUMrMHGMWQlQNigI//AArVuSyc6eGnBxnQDdAuEYNePpphcTET+nf35EXXniaevWGmzZgUSpJcirQrY+l3NygXTuThnNPZ8+exc/Pj/j4eNrc8h7jggULqIyJsSUxEUKYiqLAvn2wcmUuP/6o4coVZ6BoEr5s4HdgAO3a2fL99yrgTZPFKspOkhxxT66urqYOQQghjE5RYP9+3eveP/0EZ87AzcQmB/gFD4/9PPywN126DMTd3ZbAQNPFK8pPFui0QIqi8PHHH9OoUSMcHR1p3bo1a9euBeDatWu8+OKL1K1bF0dHRwICAli+fDmAfsXwtm3bolKp6N69O6DrYRkwYID++t27d2f8+PGEhoZSq1YtPD09Wbx4MTk5Obz88ss4OzvTuHFjfv/9d/05Go2GkSNH4ufnh6OjI02bNmXBggX64++//z4rV65k48aNqFQqVCoV0dHRAFy4cIFBgwbpV1jv378/Z8+eLXbtSZMm4ebmRp06dXj77bcrpedJCGF+FAXi42HixOt4emYRHAxz5ugSHFvbfGANfn5v8sEHX3PqVAcuXfqYn3+eyIQJDXjxxeq9XpQ5MrgnZ9OmTeU+p1evXjg6Ot67YBWkKJCba/j5hYWQk2PYuU5OoCrHfFHvvvsu69evZ9GiRQQEBBAbG8tLL71E3bp1+fnnnzly5Ai///477u7unDx5kry8PAB2795Nhw4d+OOPPwgMDLzryrYrV67k7bffZvfu3axZs4YxY8awYcMGnn76aaZOncr8+fMZOnQoiYmJODk5odVq8fHx4aeffsLd3Z24uDheffVVvL29ef7553nzzTc5evQomZmZ+qSrdu3a5Obm8sgjj9C1a1diY2OxsbFh5syZPPbYYxw4cAA7Ozs+/fRTvv32W5YtW0aLFi349NNPCQ8Pp0ePHob9gQshLIqiwKFDMHeumo0b1WRkuAAOgAM2NoV0727Dq69C+/bX0GjaERAwyNQhC2NRDKRSqcq1WVlZKadOnTL0dhUiIyNDAZSMjIw7juXl5SlHjhxR8vLyFEVRlOxsRdH9U6n8LTu77HXKzs5WHBwclLi4uGL7R44cqQwePFh58sknlZdffrnEc8+cOaMASnx8fLH9w4cPV/r376//3K1bN6VLly76z4WFhUqNGjWUoUOH6vclJycrgPL333+XGuvYsWOVZ555ptT7KIqiLFu2TGnatKmi1Wr1+9RqteLo6KhEREQoiqIo3t7eyuzZs/XHCwoKFB8fnzuudavb21cIYXkOH1aUqVPzlXr10m/7uZqrwFoFJiqwXunWzdSRivK62/f3re5rTE5KSgoeHh5lKuvs7HzvQuK+HTlyhOvXr9OrV69i+/Pz82nbti3vv/8+zzzzDPv376d3794MGDCAzp07l/s+rVq10v/e2tqaOnXq0LJlS/0+T09PAFJ1c5oD8PXXX7N06VLOnTtHXl4e+fn5xQY4l2Tfvn2cPHnyjr8/169f59SpU2RkZJCcnExISIj+mI2NDcHBwfLISohq6MQJWLNGN8bm0CEAW8AVUAO/4+oaS5cutenSZQC+vs8AyDgbC2ZwkjN8+PByPXp66aWXcHFxuXfBKsrJCbKzDT//ued0g9sMvXdZabVaADZv3kz9+vWLHbO3t8fX15dz586xefNm/vjjD3r27Mm4ceOYO3duuWKytbUt9lmlUhXbp7rxfK0onp9++omJEyfy6aefEhISgrOzM5988gm7du26Z33at2/PDz/8cMexunXrlitmIYRlOn0a/ve/AlasyOHMGTf9fltb6N0bLl9eSJcuVxk+fAAtW/bX/3wSls/gJKdo3ERZLVq0qFxlFy1apB9cGhgYyPTp0+nbty+gG1g7Y8YMFi9ezLVr1+jYsSNffvklgRWYjqtUuvkRDGVjc3/nl1WLFi2wt7cnMTGRbt26lVimbt26jBgxghEjRtC1a1feeust5s6dqx+Do9FojB7Xjh076Ny5M2PHjtXvO3XqVLEydnZ2d9y7Xbt2rFmzBg8Pj1KTZG9vb3bu3MnDDz8MQGFhIfv27aNdVX9nXwhhsKQk+OGHAr76KpukpFroemzcgAJUqm28805X3n7bCd0yUa+bMlRhQlXyFXIfHx9mz56Nv78/oBvk2r9/f+Lj4wkMDOTjjz9m3rx5rFixgiZNmjBz5kx69erF8ePHq/1jMWdnZ958800mTpyIVqulS5cuZGZmEhcXR82aNTl16hTt27cnMDAQtVrNr7/+SvPmzQHw8PDA0dGRLVu24OPjg4ODg9FeH/f39+e7774jIiICPz8/vv/+e/bs2aN/owugYcOGREREcPz4cerUqYOrqysvvvgin3zyCf379+eDDz7Ax8eHxMRE1q9fz1tvvYWPjw8TJkxg9uzZBAQE0Lx5c+bNm0d6erpR4hZCVB3JybB2LaxerVs3SpfY1AI0wDbgD8ABRXmSuDhHZB1MYbQk5/r16xw4cIDU1FT9I4oiTxVN+1tGTz75ZLHPH330EYsWLWLnzp20aNGCzz77jGnTpjFw4EBAlwR5enqyatUqXnvttfuriAX48MMP8fDwICwsjNOnT+Pm5ka7du2YOnUqSUlJTJkyhbNnz+Lo6EjXrl1ZvXo1oBvL8vnnn/PBBx8wffp0unbtqn+N+36NHj2ahIQEBg0ahEqlYvDgwYwdO7bYa+b/+c9/iI6OJjg4mOzsbLZv30737t2JjY3lnXfeYeDAgWRlZVG/fn169uyp79n5v//7P5KTkxkxYgRWVla88sorPP3002RkZBgldiGE6aSlwU8/afjmm3QOHqyNougeNalUCooSS82aETz4oA3duvWjcePZ+kdRMs5GAKgUI4zO3LJlC8OGDSMtLe3OG6hU9/X4Q6PR8PPPPzN8+HDi4+NxcHCgcePG7N+/n7Zt2+rL9e/fHzc3N1auXFnma2dmZuLq6kpGRsYdj0KuX7/OmTNn8PPzw8HBweD4izz1FBjw1r2oIMZuXyGE8cTEwPffa9i69Rpnz9YCrPXHOnWCQYOgR48rZGYepXPnzlhZyZRv1c3dvr9vZZSenNdff53nnnuO6dOn69+quV8HDx4kJCSE69evU7NmTcLDw2nRogVxuj7KO+7j6enJuXPn7npNtVqNWq3Wf87MzDRKrKW5dRXy9HTdzJogq5ALIcTtrl6F9eu1LF58jT173NAlNu43ju4DfqVBAz/+/nvYjX11gC4miFSYE6MkOampqUyaNMloCQ5A06ZNSUhIID09nXXr1jF8+HBiYmL0x28fHa8oyj1HzIeFhTGjpGXBK8jtq5C3b6/7VVYhF0IIuHYNNmzQvXkaFQWFhVbokheABOzsfqNdu+s88kh3mjd/l5YtrUu9lhAlMUqS8+yzzxIdHU3jxo2NcTlA96ZN0cDj4OBg9uzZw4IFC3jnnXcA3Rw93rd0h6Smpt4zyZoyZQqTJk3Sf87MzMTX19doMd/u1lXIbyW9OEKI6uraNQgP17JkSTq7d7ug1d78GmrVCjSa1TRrdpDXXuvOI4+8jY1NlXw/RpgJo/ztWbhwIc899xw7duygZcuWd8yh8sYbb9z3PRRFQa1W4+fnh5eXF1FRUfoxOfn5+cTExDBnzpy7XsPe3h57e/v7jqWs5LGUEELAjh3www8K27alc/KkM7p5aGvfOHqAt97y45VXnGnWDOCFG5sQ988oSc6qVauIiIjA0dGR6OjoYo+NVCpVuZOcqVOn0rdvX3x9fcnKymL16tVER0ezZcsWVCoVoaGhzJo1i4CAAAICApg1axZOTk4MGTLEGNURQghxn7Ky4JdfdLMP//KLBkWxRve6N8BBYBO1a2eycmVXevduxl2WyhPCYEZJct59910++OADJk+ebJRR7pcuXWLo0KEkJyfj6upKq1at2LJli36pgrfffpu8vDzGjh2rnwwwMjKyQubIkaUBLJO0qxDGl5MDv/6qsHhxBnFxrly/XvQfXmvgKNbW4QQFXaNHjy60bPl/tG3rIKt6iwpllFfIa9euzZ49e4w6Jqcy3O0VNI1Gw4kTJ/Dw8KBOnTqlXEGYqytXrpCamkqTJk2wtpbBjEIYKi8PfvtNYcmSDLZtc6Kg4GaXjL+/7nXvvn0zSUn5g379+pZrOSAhSlOpr5APHz6cNWvWMHXqVGNcrkqwtrbGzc1Nv8Ckk5OTrHdiARRFITc3l9TUVNzc3CTBEcIAajV8/TWsXJnOwYOOFBbao1tSAeA01tbrGDHCiSVLxqH7sekCDDRVuKIaM0qSo9Fo+Pjjj4mIiKBVq1Z3DDyeN2+eMW5T6by8vIDiK2kLy+Dm5qZvXyHEvRUUwLZtujE24eG6ub9uJjbngHVAMs2atWP37tHVfokdUTUYJck5ePCg/k2nQ7q17fXMufdDpVLh7e2Nh4cHBQUFpg5HGImtra304AhRBhoNxMbC4sUZbNpkS26uk/6YuzvY2PyGi8s2HnmkNe3bj8LJyYXAQJD8RlQVRhmTY67K+kxPCCGqC60W/v4blizJYP16a7Kyat5yNJUhQ+x49VU3unQBK6t7T8IqREWo8DE5Bw4cICgoqMxvUx0+fJimTZvKxE5CCFHFKArs2QNffAEbNuSRne0IuN44eg2Vaj3t2p3k1VcDeOGFZ7n5nSIJjqjaDM442rZtS0pKCnXr1i1T+ZCQEBISEmjUqJGhtxRCCGEkigIJCbB0aSa//lqDxMSiR7iOQCawCTgCNKJTp/7ExZXtZ70QVYnBSY6iKLz33ns4OTnduzC6WYmFEEKY1uHDsHRpFj/8UMjly7XQvfkETk7QtSsEBKhJT19NSEh/XF1fAiAw0IQBC3EfDE5yHn74YY4fP17m8iEhITI/ghBCmMDx4/Dtt9l8/72a5OQ6QNHI4DxgM926XeK338ah+z+rPfCqqUIVwqgMTnKio6ONGIYQQghj+vdf+Pxz2LQJEhMBat7Y1MAW/P33M3KkB0OHDqB+/fomjVWIiiKjgIUQwkKcOgUrV+aycmUuiYnutx09AIQDdejY8Sl27uxvggiFqFyS5AghhBk7cwa++y6XFStyOXvWHXC6sRXSqlUOHTu60r49ODg0x8amFSBjbET1IUmOEEKYkYQEiImB3bshJiaLCxecuTWxgW34+u5k2DAXxo0bhLd30avgtqVdUgiLJUmOEEKYgaQk+N//rjNrljXZ2UUJizOgAaKxs/uTSZOcGTHicZo27W3CSIWoOiTJEUKIKur8eVi1Ss3SpVn8+6874ACASgXNmsGDD2q4dm0hXbr0onfv/9KmjUnDFaLKMVqSs3XrVrZu3UpqaiparbbYsW+//dZYtxFCCIt24QL8+GM+y5ZlcuyYO7pXuu0BLbCDgIAEYmMnoFtf1hqYYMJohajajJLkzJgxgw8++IDg4GC8vb1lLRMhhCiHqCj43/9g1y44cUJBUeyAorejdlCnzjYGD7Zj5Mi+tG79BvIjVoiyMUqS8/XXX7NixQqGDh1qjMsJIYTFS0mBNWsKWLIkk8OHawFF6wCqgNPA93h7W7Np02O0bz9d/vMohAGMkuTk5+fTuXNnY1xKCCEs1qVLsGZNIcuWZXDgQC10bzzVAaB+/Qy6d3elQweoUcMTe/vpBAWpZJyNEPfBKEnOqFGjWLVqFe+9954xLieEEBYjNRXWr4cVK3LYvdsRRbGhKLGBnTg7b+HZZ2Hy5CE0aVL0uncNE0UrhGUxSpJz/fp1Fi9ezB9//EGrVq2wtS0+H8O8efOMcRshhDALV6/CvHka1q/XcuyYLYoCNxOX3dSs+TtPP61h1KhH6dJlOlZWVne5mhDCUEZJcg4cOECbG32qhw4dKnZMniMLIaqDjAwID9fy9dfX2LPHDa3WGt3bT0UU4GNaterA/v3vYm1tXcqVhBDGYpQkZ/v27ca4jBBCmJWcHNi0ScuiRdeIi3NBo7k5xgb+oWbNP3j//Ul4eanQDSh+h8BAkPxGiMohkwEKIUQ5XL8Ov/8Oa9bAL79Abq4VNxObo9jbb6RfvyxefbUrPXu+ga2t9GYLYSpGS3LS09NZtmwZR48eRaVS0bx5c0aOHImrq+u9TxZCiCosPx+++UZh2bIrHD5ck8JCB/0xZ+erqNXL6d37Gq+9FkLv3pOws7MzYbRCiCIqRdENibsfe/fupU+fPjg6OtKhQwcURWHv3r3k5eURGRlJu3btjBGr0WVmZuLq6kpGRgYuLi6mDkcIUYVoNLB9u8KXX15hyxYnrl93uuVoHuAIQOfOGWzb5oC9vb1J4hSiOirr97dRkpyuXbvi7+/PkiVLsLHRdQ4VFhYyatQoTp8+TWxs7P3eokJIkiOEuJVWC3FxsHRpNmvXKuTkON9yNAUrqw00b57Ms88+TkBABwACA5G5bISoZJWa5Dg6OhIfH0+zZs2K7T9y5AjBwcHk5ube7y0qhCQ5QghFgb174fvvCwgPt+X8+VuPXsHaegMPPXSesWMDefLJfjg5OZV2KSFEJSnr97dRxuS4uLiQmJh4R5KTlJSEs7NzKWcJIYTpHD4M77+fxu+/W5GTUxvd7MPg6AiPPgpWVt/w7LNuDBgwiJo1a5o2WCGEQYwyA9WgQYMYOXIka9asISkpifPnz7N69WpGjRrF4MGDy329sLAwHnzwQZydnfHw8GDAgAEcP368WBlFUXj//fepV68ejo6OdO/encOHDxujOkIIC3X6NEyalIaXVypBQbB2rfuNBCcHWA8UkJcHmZmwYcNrvPSSJDhCmDOj9OTMnTsXlUrFsGHDKCwsBMDW1pYxY8Ywe/bscl8vJiaGcePG8eCDD1JYWMi0adPo3bs3R44coUYN3ayhH3/8MfPmzWPFihU0adKEmTNn0qtXL44fPy69R0IIvYsX4aef4McfYfduuLm6dz4qVQQPPHCUnj196NixHzVq6HpzAgNNFa0QwpiMMianSG5uLqdOnUJRFPz9/Y327Pry5ct4eHgQExPDww8/jKIo1KtXj9DQUN555x0A1Go1np6ezJkzh9dee61M15UxOUJYprQ0WLw4jWXLcjlzxhdF0c1Vo1JpUZRtBAYeYPRoT158sR+1atUycbRCiPKq1DE5RZycnGjZsqUxLwlARkYGALVr1wbgzJkzpKSk0Lt3b30Ze3t7unXrRlxcXKlJjlqtRq1W6z9nZmYaPVYhhGlcvQrLll3lyy8zOXfOh5s9NhAQAAMHwogRmbi7t8Hd/VHTBSqEqDQGJzmTJk3iww8/pEaNGkyaNOmuZe9ngU5FUZg0aRJdunQhKCgIgJSUFAA8PT2LlfX09OTcuXOlXissLIwZM2YYHIsQompJT4dVq3JZuDCVY8d8UJTaQO0bR/cBe4Em/PvvI+zcCbNnu5kqVCGECRic5MTHx1NQUKD/fWnud4HO119/nQMHDvDnn3/e89qKotz1flOmTCmWkGVmZuLr63tf8QkhKldmJqxfr2HdOmsiIqCgwAloeONoAvXq7aFjR0d69nwUN7f2+vNknI0Q1Y/BSc6ti3KuXLkSHx8frKyKv6ylKApJSUkGBzd+/Hg2bdpEbGwsPj4++v1eXl6ArkfH29tbvz81NfWO3p1b2dvby6ykQpgh3QR9GWzdepWkpPooys1lE4KCwMnpVx599Bpjx/agfv3/mDBSIURVYpQxOX5+fiQnJ+Ph4VFs/9WrV/Hz80Oj0ZTreoqiMH78eMLDw4mOjsbPz++O+3l5eREVFUXbtm0ByM/PJyYmhjlz5txfZYQQVUJuLqxZk8XChZfZv78e4HpjAzgK+BEc7MCePQBPmCpMIUQVZpQkp7QXtLKzs3FwcCjx2N2MGzeOVatWsXHjRpydnfVjcFxdXXF0dESlUhEaGsqsWbMICAggICCAWbNm4eTkxJAhQ+6rLkII01GrISICVq+GtWvVFBQ4A0VTQvyLq2ssISFW9O79CB4eDvIISghxV/eV5BSNb1GpVEyfPr3YK+MajYZdu3bRxoBFXRYtWgRA9+7di+1fvnw5I0aMAODtt98mLy+PsWPHcu3aNTp27EhkZKTMkSOEmSkogI0bc1iwIJkDBxqRmVn02NseOIuHRzTPP68QGtqNxo1HmjJUIYSZua95ch555BFAN3lfSEgIdnY3n5Pb2dnRsGFD3nzzTQICAu4/0gog8+QIYRp798IPP+QQEXGREyc80Whu/vurXx+eew4efzwLX99kmjZtYsJIhRBVUaXMk1M0+Pjll19mwYIFkigIIUql0cC2bWo+/jiRrVvroihuQNF/gC4Bf+DrW4ezZx9D9w7DrY+qhBCi/IwyJmf58uXGuIwQwsJotRAXp/DTTyrWroXkZHtuJjZpODr+Qdu2efTr9yANG75IYCBYGWVFPSGEMIPJAIUQ5kVRIDb2Op9+msQff9QmL6+O/pibG3h6xtGmzXHefLMd7dsPuu+5tIQQojRVfjJAIUTVpyiwcmU+CxcmcuiQC2q1Bzd7bDIZONCaV16pQa9eYGfXGehswmiFENWFURfoNDcy8FgIwykK7NkDP/8M336bwdWrrrcczQb+AK7RunUQ8fHB8h8eIYTRVOoCnXl5eSiKon+F/Ny5c4SHh9OiRYtii2gKIcybosDffxcyb14Su3b5cv580Y8QVyAbW9utBAZeoV+/QJo1eworKysCA0HyGyGEKRglyenfvz8DBw5k9OjRpKen06FDB+zs7EhLS2PevHmMGTPGGLcRQphAUWLz2Wfn+f33mmRnuwO6Wchr1IAnn4QnnsjD0/MAPXo8ecfyLkIIYSpG+Wm0f/9+unbtCsDatWvx8vLi3LlzfPfdd3z++efGuIUQohLpHkVpeOyxRJyc0njoIRt+/rnhjQQnG1vb9QwdGs7ly/Djj/Dii448+mhnSXCEEFWKUXpycnNz9TMNR0ZGMnDgQKysrOjUqRPnzp0zxi2EEBVMUeDQIVizRredPGkNPHDjaDYQCaQCzQgJeYrvvjPKjw8hhKgwRvkp5e/vz4YNG3j66aeJiIhg4sSJgG5VcBnQK0TVdviwlnnzLrBhgy1Xr3rp9zs6Qp06+3Fx2cljjzWhVasnsbGxBZA1o4QQZsEoSc706dMZMmQIEydOpGfPnoSEhAC6Xp2iVcKFEFXHv/8qzJt3nrVrrUlLqwf43jiipkcPNaNGufDkk1CzZjugnQkjFUIIwxntFfKUlBSSk5Np3bq1/rn87t27cXFxoVmzZsa4hdHJK+SiOklKgvnz4YcfrpKaWvuWIwVYW2+jY8czjB/fgKef7oG9vb3J4hRCiHsp6/e3zJMjSY6wYCkpCgsWXGDrVnf27HG45UghEAOcAurTtWtPYmMdSr6IEEJUMZU6Tw5Aeno6y5Yt4+jRo6hUKpo3b87IkSNxdXW998lCCKO5elXhiy8usHLldc6c8QN89MfatYOgoELs7LYQEtIDe/uegIyxEUJYJqP05Ozdu5c+ffrg6OhIhw4dUBSFvXv3kpeXR2RkJO3aVc1n+tKTIyxFRgZ8/fUFvv02mxMnGgG2+mMq1R66dDnPqlVP4+NT+jWEEMJcVOrjqq5du+Lv78+SJUuwsdF1DhUWFjJq1ChOnz5NbGzs/d6iQkiSI8zZlSuwcSMsXw5//62g0dw6rfAB/Pz+4Y03XBg5sod+igchhLAElZrkODo6Eh8ff8cA4yNHjhAcHExubu793qJCSJIjzM2lS7B4cSrffZfDqVMPoCjWtxxNBrYDNYFudOvmSnS0ScIUQogKValjclxcXEhMTLwjyUlKSpL/QQpxny5cgCVLrvD99zmcPl0f8NAfCwjIplevmjRoAPXqeaFSDdEfk3E2QojqzihJzqBBgxg5ciRz586lc+fOqFQq/vzzT9566y0GDx5sjFsIUa1ERsL338P27elcuOAG1LmxAezB3/8fXn7ZhbFje+PmVnSWrIIphBC3MkqSM3fuXFQqFcOGDaOwsBAAW1tbxowZw+zZs41xCyEs3qVLsGxZOps2ObBrV9Hr3G43fv0L+IeGDV3Zvbs3des+aJoghRDCjBh1npzc3FxOnTqFoij4+/vj5ORkrEtXCBmTI0wtLQ2WL09n6dIsTpyoB9wcYxMQAB06aNFofqRLl564uXkRGAht2pgsXCGEqBIqfZ4cACcnJ4KCggBQqaTrXIiSXLsGK1dmsmRJOkeO1EfXW+N24+hugoKOsHnzCB54AMAKeNE0gQohhJmzMtaFli1bRlBQEA4ODjg4OBAUFMTSpUuNdXkhzFpGBnz4IbRtC3XrKkyc6MKRIw+g67mJx9f3K6ZN+5akpHocPFiU4AghhLgfRunJee+995g/fz7jx4/XL875999/M3HiRM6ePcvMmTONcRshzEpmJqxalc3XX1/h4MF6aLVFE/Sp0L3uvQGwo2PHR9m5c6zJ4hRCCEtllDE57u7ufPHFF3e8SfXjjz8yfvx40tLS7vcWFULG5Ahjy8qC1atzWLToCv/844VWa6c/5uWVTefONenYEby9NVhZ6cbfyDgbIYQon0odk6PRaAgODr5jf/v27fVvWwlhqbKz4ddfYfHidGJinNBqawA1bhw9hodHNC+8YMVbb/XDx6fmjf3WpVxNCCGEsRglyXnppZdYtGgR8+bNK7Z/8eLFvPiiDJoUlicvD+bNy2PtWoUjR5zIz4ebg4dP4O6+jeefh9df707z5qNNF6gQQlRjRnu7atmyZURGRtKpUycAdu7cSVJSEsOGDWPSpEn6crcnQqWJjY3lk08+Yd++fSQnJxMeHs6AAQP0xxVFYcaMGSxevJhr167RsWNHvvzySwJlmldRQdRq2LjxOl98cYmdOz0oLHS8rYQCfE/79u3Zu1cSGyGEMDWjJDmHDh3SrzR+6tQpAOrWrUvdunU5dOiQvlx5XivPycmhdevWvPzyyzzzzDN3HP/444+ZN28eK1asoEmTJsycOZNevXpx/PhxWUpCGE1BAfz2m5rPPkvhr7/cKSioATS4cfQsLi4xvPnmMPz8VDf+fg+T5RSEEKKKMOpkgBVFpVIV68lRFIV69eoRGhrKO++8A4BarcbT05M5c+bw2muvlem6MvBYlKSwEGJiYM0aWL9et9r3TRdwcYngqafyCA0NoV27tjInlBBCVDKTTAZYWc6cOUNKSgq9e/fW77O3t6dbt27ExcWVmuSo1WrUarX+c2ZmZoXHKsxDYSFERRUwc+ZFdu+uTWHhzd5Ae/tsrK3X8+ST2Uyc+CAdOrwsiY0QQpgBs0xyUlJSAPD09Cy239PTk3PnzpV6XlhYGDNmzKjQ2IT50CU2hXz+eTLbt7uhVjtz81GUGrDX/U5tw8MPD2X1aklshBDCnJhlklPk9v9NK4py1/9hT5kypdgg6MzMTHx9fSssPlH1FBTA9u2wbFkmGzeqbiQ2RX8H0rC330JQUCYDB3ajQYOiwTUOMs5GCCHMkFGSnKysrEod7Ovl5QXoenS8vb31+1NTU+/o3bmVvb099vb2FR6fqFr27oW1azX8+Wc+//zjSHY2QNEz3Ms4OPxOr17phIa2oVu3wVhbyxw2QghhCYyS5HTt2pUtW7bok4+K5ufnh5eXF1FRUbRt2xaA/Px8YmJimDNnTqXEIKo2rRZ27NCwYEEKGzc6o9W6AMVf+fb0XMX333vTo8eLktgIIYQFMkqSExwcTMeOHYmIiKBZs2b6/fHx8UybNo3ffvut3NfMzs7m5MmT+s9nzpwhISGB2rVr88ADDxAaGsqsWbMICAggICCAWbNm4eTkxJAhQ4xRJWGGFAX27NEyf34yv/7qRHZ2LaD+jaNp2Nn9RmjoYAIDbbG2hsDAIbKcghBCWDCjJDlLly5lxowZdOnShQ0bNuDh4cG7777LunXreOqppwy65t69e3nkkUf0n4vG0gwfPpwVK1bw9ttvk5eXx9ixY/WTAUZGRsocOdXQoUOwerVuO3XKipuJTQa2tpvp3j2FN94IpE+fwdja2t7tUkIIISyIUefJCQsL44MPPkCj0dCnTx9mzJihnySwKpJ5csxXeLjCwoUX2b3bmuzsm49JbWwKgE089FASEyY05fHHe2JnZ1f6hYQQQpidSp0nJzk5mbCwMJYuXUqLFi04duwYL7zwQpVOcIT5OXlS4bPPkvn5Z0hNrcfNHhsNRQtePvhgAdu2PY6Dg4OpwhRCCFFFGCXJadSoEc2aNePnn3/m8ccfJyIigueff57z58/rZyQWwhBnz8K332azZEkGKSn1gXo3jhSgUm3Hz+8UAwe2pk2bzgAEBjoh+Y0QQggwUpKzfPlyXnjhBf3nPn36sH37dp544gnOnTvHV199ZYzbiGoiKQn+97/rbNjgwO7dADVvbIVYWUXTtu2/jB1bjxde6IWTU++7X0wIIUS1VaFrV509e5Z+/fpx5MiRirrFfZExOVXH1q2wcOElduxQc+XKA/r9KhV07w5OTr/y1FMFDBnSi5o1a5ouUCGEECZXJdauatiwIX/99VdF3kKYsfR0WLToEsuW5XDqVAOgaCJHLRAHtKNTJye2bQN4wkRRCiGEMFcVvqxDrVq1KvoWwozk5MAvv8CPP8Kvvxai1d46Q/Ue6tVLoHt3V7p1602NGk6ynIIQQgiDmfXaVcI8qNXw3XepfPXVFY4fb0pentWNIzbAIfz99zJyZA1efbUntWs/aMpQhRBCWBBJckSFKCiA2bMvs2JFKmfPPoBW6wF4AODjA8OGQf/+uTRq5IW7+wiTxiqEEMIySZIjjKawEH77LZfZs0+zZ48vhYV1gbo3jl5AN86mLo0adeejjwCcbmxCCCGE8UmSI+6LRgPbtxewfr0ta9fC5ctOQNCNo5dwdf2LTp2gX78Q6tR5DkDG2QghhKgUkuSIctNq4bffrjFv3nn++sub/Hx3/bHateGBB/YQEpLIO+90okGDgSaMVAghRHUmSY4oE60WtmzJYMaMJPbv97zxKKrozblr9Oply//9X0169ABb2wcBGUAshBDCtCTJEaXSaiEuDn7+GVasyCQz0xVwvXE0E9gBXAfakZ/vR58+JgtVCCGEuIMkOaIYrRYiIrKZP/88Bw74c+lS0V8RFyADZ+cdtGqVxxNPtMPX93H9eTLORgghRFUjSY5Ao4GoqFzmz08iJqYuanVtoBkALi7Qvz/0759PkyaXaNlSZh4WQghhHiTJqaY0GoiOLuC9986yd687BQW1gKY3jqZTs+Z2hg1zYN68vtjbA9gBTUwWrxBCCFFekuRUIxoN/Pmnws8/q1i3DlJSbIGAG0evAduBbKAd7doN4MsvVSaLVQghhLhfkuRYOI0Gtm1TM3/+BbZvr8X16zfXEnNzg7p191Or1gEef7wtjRo9jUqlS2xkjI0QQghzJ0mOBdq3D37+OZ+IiIscPuxGQYEb0OjG0Ws8+aSW0aPr8OijYGfXDmhnumCFEEKICiJJjoUoLITYWFi7FhYvzkOjcQQa3jh6DYiiTp0MNm5sQ+fOwajkSZQQQggLJ0mOGSsshK1bNXz++UV27vTm6tWi5nQErmJnF0lgYDr9+rWmadNnadnSijZtTBiwEEIIUYkkyTEzBQW6xOaLL1LYts2F69edAV9At6TC00/DwIEaHB2P0K3b81hZWZk2YCGEEMJEJMkxA4WFsGSJlsWLUzh82IWCgppA/RtHL+Pg8DvPPKOwfPlwbG0BrIEuJotXCCGEqAokyamiNBrYsQPWrIF16+DyZSug3o2jqcBm4BotW7Zm//4h2NhIUwohhBC3km/GKkSrhR07tCxceInffqtBbq6L/pibG7i57cHFJZpevVrRsuVL2NjYEhgIkt8IIYQQd5KvRxNTFPj7b4XPP7/E5s2OZGe7At43jl6lX7/rTJhQj0cekdW9hRBCiPKQJMdELl6E2bPhf//L4dq1GoDXjSPpWFtvpmvXi4wf35zHH+91Y1kFIYQQQpSH2Sc5X331FZ988gnJyckEBgby2Wef0bVrV1OHVSK1WuHLL8+xaZM7O3bURKsFqIFuKYVfgSSgCSEhA9m+3dGUoQohhBBmz6yTnDVr1hAaGspXX33FQw89xDfffEPfvn05cuQIDzzwgKnDA0BRFDZsOMmcOans3dscjaah/ljbthAcrGBnF027dk9hb+8EyJIKQgghhDGoFEVRTB2EoTp27Ei7du1YtGiRfl/z5s0ZMGAAYWFh9zw/MzMTV1dXMjIycHFxuWf58ti9+zgffvgvf/zxANevt7rlSDItW8bz88/9aNq01NOFEEIIUYqyfn+bbU9Ofn4++/btY/LkycX29+7dm7i4uBLPUavVqNVq/efMzEyjxpSQAIcOwZIlCrGxDYCiLKYAb++9DBmiZtq09tSq1c+o9xVCCCHEncw2yUlLS0Oj0eDp6Vlsv6enJykpKSWeExYWxowZMyosptBQiIkBUAEOwDngMg8+2ITdu0Mq7L5CCCGEuJPZJjlFVLetNKkoyh37ikyZMoVJkybpP2dmZuLr62u0WD77DA4fhsRE3fILjRo1QKVqIGNshBBCCBMw2yTH3d0da2vrO3ptUlNT7+jdKWJvb499Bb6P3aYNsgCmEEIIUUWY7eqNdnZ2tG/fnqioqGL7o6Ki6Ny5s4miEkIIIURVYbY9OQCTJk1i6NChBAcHExISwuLFi0lMTGT06NGmDk0IIYQQJmbWSc6gQYO4cuUKH3zwAcnJyQQFBfHbb7/RoEEDU4cmhBBCCBMz63ly7ldFzpMjhBBCiIph8fPkGENRfmfs+XKEEEIIUXGKvrfv1U9TrZOcrKwsAKO+Ri6EEEKIypGVlYWrq2upx6v14yqtVsvFixdxdnYudW4dQxTNv5OUlGSxj8EsvY5SP/Nn6XW09PqB5ddR6mc4RVHIysqiXr16WFmV/qJ4te7JsbKywsfHp8Ku7+LiYpF/cW9l6XWU+pk/S6+jpdcPLL+OUj/D3K0Hp4jZzpMjhBBCCHE3kuQIIYQQwiJJklMB7O3t+e9//1uhS0iYmqXXUepn/iy9jpZeP7D8Okr9Kl61HngshBBCCMslPTlCCCGEsEiS5AghhBDCIkmSI4QQQgiLJEmOEEIIISySJDkG+uqrr/Dz88PBwYH27duzY8eOu5aPiYmhffv2ODg40KhRI77++utKitQw5alfdHQ0KpXqju3YsWOVGHH5xMbG8uSTT1KvXj1UKhUbNmy45znm1IblrZ+5tWFYWBgPPvggzs7OeHh4MGDAAI4fP37P88ylDQ2pn7m14aJFi2jVqpV+oriQkBB+//33u55jLu0H5a+fubXf7cLCwlCpVISGht61XGW3oSQ5BlizZg2hoaFMmzaN+Ph4unbtSt++fUlMTCyx/JkzZ+jXrx9du3YlPj6eqVOn8sYbb7Bu3bpKjrxsylu/IsePHyc5OVm/BQQEVFLE5ZeTk0Pr1q1ZuHBhmcqbWxuWt35FzKUNY2JiGDduHDt37iQqKorCwkJ69+5NTk5OqeeYUxsaUr8i5tKGPj4+zJ49m71797J371569OhB//79OXz4cInlzan9oPz1K2Iu7XerPXv2sHjxYlq1anXXciZpQ0WUW4cOHZTRo0cX29esWTNl8uTJJZZ/++23lWbNmhXb99prrymdOnWqsBjvR3nrt337dgVQrl27VgnRGR+ghIeH37WMubXhrcpSP3Nvw9TUVAVQYmJiSi1jzm1YlvqZexsqiqLUqlVLWbp0aYnHzLn9itytfubafllZWUpAQIASFRWldOvWTZkwYUKpZU3RhtKTU075+fns27eP3r17F9vfu3dv4uLiSjzn77//vqN8nz592Lt3LwUFBRUWqyEMqV+Rtm3b4u3tTc+ePdm+fXtFhlnpzKkN74e5tmFGRgYAtWvXLrWMObdhWepXxBzbUKPRsHr1anJycggJCSmxjDm3X1nqV8Tc2m/cuHE8/vjjPProo/csa4o2lCSnnNLS0tBoNHh6ehbb7+npSUpKSonnpKSklFi+sLCQtLS0CovVEIbUz9vbm8WLF7Nu3TrWr19P06ZN6dmzJ7GxsZURcqUwpzY0hDm3oaIoTJo0iS5duhAUFFRqOXNtw7LWzxzb8ODBg9SsWRN7e3tGjx5NeHg4LVq0KLGsObZfeepnju23evVq9u/fT1hYWJnKm6INq/Uq5PdDpVIV+6woyh377lW+pP1VRXnq17RpU5o2bar/HBISQlJSEnPnzuXhhx+u0Dgrk7m1YXmYcxu+/vrrHDhwgD///POeZc2xDctaP3Nsw6ZNm5KQkEB6ejrr1q1j+PDhxMTElJoImFv7lad+5tZ+SUlJTJgwgcjISBwcHMp8XmW3ofTklJO7uzvW1tZ39GqkpqbekaEW8fLyKrG8jY0NderUqbBYDWFI/UrSqVMn/v33X2OHZzLm1IbGYg5tOH78eDZt2sT27dvx8fG5a1lzbMPy1K8kVb0N7ezs8Pf3Jzg4mLCwMFq3bs2CBQtKLGuO7Vee+pWkKrffvn37SE1NpX379tjY2GBjY0NMTAyff/45NjY2aDSaO84xRRtKklNOdnZ2tG/fnqioqGL7o6Ki6Ny5c4nnhISE3FE+MjKS4OBgbG1tKyxWQxhSv5LEx8fj7e1t7PBMxpza0FiqchsqisLrr7/O+vXr2bZtG35+fvc8x5za0JD6laQqt2FJFEVBrVaXeMyc2q80d6tfSapy+/Xs2ZODBw+SkJCg34KDg3nxxRdJSEjA2tr6jnNM0oYVNqTZgq1evVqxtbVVli1bphw5ckQJDQ1VatSooZw9e1ZRFEWZPHmyMnToUH3506dPK05OTsrEiROVI0eOKMuWLVNsbW2VtWvXmqoKd1Xe+s2fP18JDw9XTpw4oRw6dEiZPHmyAijr1q0zVRXuKSsrS4mPj1fi4+MVQJk3b54SHx+vnDt3TlEU82/D8tbP3NpwzJgxiqurqxIdHa0kJyfrt9zcXH0Zc25DQ+pnbm04ZcoUJTY2Vjlz5oxy4MABZerUqYqVlZUSGRmpKIp5t5+ilL9+5tZ+Jbn97aqq0IaS5Bjoyy+/VBo0aKDY2dkp7dq1K/Zq5/Dhw5Vu3boVKx8dHa20bdtWsbOzUxo2bKgsWrSokiMun/LUb86cOUrjxo0VBwcHpVatWkqXLl2UzZs3myDqsit6XfP2bfjw4YqimH8blrd+5taGJdUNUJYvX64vY85taEj9zK0NX3nlFf3PmLp16yo9e/bUJwCKYt7tpyjlr5+5tV9Jbk9yqkIbqhTlxqgfIYQQQggLImNyhBBCCGGRJMkRQgghhEWSJEcIIYQQFkmSHCGEEEJYJElyhBBCCGGRJMkRQgghhEWSJEcIIYQQFkmSHCGEEEJYJElyhBBCCGGRJMkRQgghhEWyMXUApqTVarl48SLOzs6oVCpThyOEEEKIMlAUhaysLOrVq4eVVen9NdU6ybl48SK+vr6mDkMIIYQQBkhKSsLHx6fU49U6yXF2dgZ0f0guLi4mjkYIIYQQZZGZmYmvr6/+e7w01TrJKXpE5eLiIkmOEEIIYWbuNdREBh4LIYQQwiKZbZITFhbGgw8+iLOzMx4eHgwYMIDjx4+bOiwhhBBCVBFmm+TExMQwbtw4du7cSVRUFIWFhfTu3ZucnBxThyaEEEKIKkClKIpi6iCM4fLly3h4eBATE8PDDz9cpnMyMzNxdXUlIyNDxuQIIYQQZqKs398WM/A4IyMDgNq1a5daRq1Wo1ar9Z8zMzMrPC4hhBCiouTl5ZGenq7frl27hrW1NX369NGX+eyzz0hKSiIvL4/r16+Tl5en32rXrs2PP/6oL/vCCy+QkJBAYWEhGo2m2K9ubm6cOHFCX/aJJ54gJiaGor6SW3+1t7fn2rVrlfSnUDqLSHIURWHSpEl06dKFoKCgUsuFhYUxY8aMSoxMCCGEKLucnBwuXrxIcnKyfrt48SJubm5MnTpVX659+/YcPny42H/cizRr1oyjR4/qP3/77bccPHjwtlIeQCtq1GjO00+DoyN4eEBcXFOSkpKBi8AlIE9/RkFBQbEr5Obmkp2dXWI9tFptOWteMSzicdW4cePYvHkzf/75510nBSqpJ8fX11ceVwkhhKhwGo2G8+fPc/LkSU6ePImNjQ0jR47UH2/atGmxnpJbNW3alGPHjuk/t2rVSp+4WFlZ4ebmpt8aN27MTz/9BMD16zB58necOGHP1au+pKXV49IlD7KzncoUs7NzIR4eBdSqVYiLixY/P1fc3MDeHvLzr1GrVj6enlocHcHBQcHRUcHBQcHJCQICfHBy0pU19qIC1eZx1fjx49m0aROxsbF3TXAA7O3tsbe3r6TIhBBCVDdarbbYMgPvvvsuCQkJnDx5kjNnzpCfn68/FhAQUCzJqVGjBgBOTk7Uq1cPb29v/a+NGjUqdp/w8HBsbW1xc3OjZk1n0tJU7NwJCQmQlAS9e8O//0JiImi1w+6IU6UCNzco6YlSrVqQnw85OZCVZUNWVmmpQq0y/Zn83/9B27YQGAht2pTpFKMx2yRHURTGjx9PeHg40dHR+Pn5mTokIYQQ1YSiKKSkpPDPP//otwMHDqBSqYo9GtqyZQv79u3Tf7a1taVRo0Y0btyY5s2bF7vmL7/8grOz8x3rKSoKFBZCSgqcPFm0Nebff29+vtsQUwcHCAmBVq2gZUvdr4GBkJEBycl3lvf2Bi8v3TUvXNBtn34KERF3lq1fX1c+Nxfy8nS/pqWBRnOzzKef6n7t1g2io+/6x2p0Zvu4auzYsaxatYqNGzfStGlT/X5XV1ccHR3LdA15u0oIIcS9aDQarK2t9Z9fffVVNmzYwOXLl28pVRN4CCurEAYPfo/CQivy8+H8+dNotQr29i7Y2NREpXLg6lUVmZm6xEWjublZWd1MaIq2ggIoy/AWlQpq1oSsrDuPTZwI8+bd359BcnLpCZG3d/F9CQlw+LAu/vx8sLMDGxvj9uSU9fvbbJOc0qZyXr58OSNGjCjTNSTJEUIIcbuUlBT++usv/Xby5EkuX76sfww1ePBgVq/+HZXqYdzc+qNSdePq1UZU5tRz3t66x0ABAeDvD35+kJ5e9kTE3Fn8mBwzzc2EEEJUQb/++itr1qzhr7/+4syZM3cc37fvDBcuNCYmBhISlmFl5YhWqypxTMutHn4Ynn1W98jI3l63XbyoS0ZsbXU9HFZWYG0NTZpAUJBuX9GxY8d0j6OsrXXn2tz41i6pV8TR0fKSmftltkmOEEIIUV4FBQX8/fff+lnzi+ZW27VrF//73w+AN9AVT89uODqGYGvbnOzsenTsaMfN/1vr3kwKCNCNM+nWDZo10yUrt7vfXhRfX+jVy/DzqztJcoQQQli0U6dOERERQUREBFu37iInxx1oxLlzF3Fyqs3p03D48FSsraej0dgCcOlSydfy9taNb3n4YahXr/LqIAwjSY4QQgiLoVbDuXNw5gxERf3LsmXbSE93A4KB54C6+rLLlt16pu6FFWtraNBANzGek5PuV09P3aMkV1fTvAYtDCdJjhBCCLO1cSOsWaOwa1c2yckKeXnOQNGLKQE3ttspt5TRPXb66ito3Fj3eMhGvhkthjSlEEIIs6HRwK5dsHGjwk8/5XH2rBO6hMW5WDknJ+jRQ8HK6hwdO3rRvLkD+fm6uV+cnIq/nSu9M5ZLkhwhhBBVWk4OREXBpk3w668Kly+r0CU2TkABEI21dQT+/tChQzC9e79AUBC0aaMCGpoydGFikuQIIYSocjIzYc0a2LBBy9atoFYXvbqkwto6C43mFxwconjiCRsGD+7LY499gJNT2dZjEtWHJDlCCCGqjEuXYMoULatWaVCrbSmaYK9OHQ19+lgzciRcv74TRXHl0Ue/lvUIxV1JkiOEEMLkTp+GqVOvsnat843XuK2AY8D3wF9cuTKLCxc606MHgEwcI8pGkhwhhBAmEx8Pc+bATz9pUZTaN/buxN5+IV26uBESMogmTT7AysqawECThirMkCQ5QgghKpVanc+cObvZtKk5+/bVubHXCiurCDp1imHSpGCeeGKZPIoS902SHCGEEJUiPv4A06btISqqHYWFXQDd5HuDBsHbb0OjRp1xdu5j4iiFJZEkRwghRIVRq9V89NEmFi26RFpaX2DkjSN5NG26j99+60yjRkVvTjmXchUhDCNJjhBCiApx8CA8+WQM5849TtGilpANpAAN8fLqQqNGpotPWD5JcoQQQhiFVqslImIryckd+O47V2JiAHoD4Op6iX797Hn0UTfs7f0BZCCxqHCS5AghhLgvV69eZeHCNSxYkMvVq88DroBuvM2AAVrGjdPSvbsnKtXdryOEsUmSI4QQwiBHjhxhypS1/PprI7TaVwDd21A1auQQGlqD0aPBx8eKogn9hKhskuQIIYQol4ICLe3bf8LBg52B6fr97u6pjBnjyrRpNZC3v0VVIOm1EEKIe9JqtWRlweefQ7NmVhw8+A7QFSgEUgGFtDQPYmPtJcERVYb05AghhChVTk4On376M/PmFaDVvkJWljUAzs4aOnTIYMCA2tSq5aEvL4OJRVUiSY4QQog7pKamMnnyen74wYP8/Jco+rpo0gQmToRhw6xxcqp994sIYWKS5AghhNA7efIMY8dG8McfrVCU0fr9TZqcZ9Ysd55+2gErGeggzES5kpxNmzaV+wa9evXC0dGx3OcJIYSoPPn5MHOmho8+0qLVFiU3BTRvfoF33/VlyBAfk8YnhCFUiqIoZS1sVc70XaVS8e+//9Koik5pmZmZiaurKxkZGbi4uJg6HCGEqHSHDp3hjz8a8OmnVpw/X7Q3C7gG+AIqunWD6GhTRSjEncr6/V3ux1UpKSl4eHjcuyDg7CzrkAghRFW0a9cJXn31AAcOdKfoRVt3d+jVS0uPHs44Ot78+S2DiYW5KleSM3z48HI9enrppZekh0QIIaqQmJjjjB59nGPHHgGaAODqeoWPP67DsGHg4CADboTlKNff5uXLl5erd2bRokW4u7uXO6iyio2N5cknn6RevXqoVCo2bNhQYfcSQghz9vvvx2jcOJLu3Rtw7NhTgDMuLmf56KMzpKXV4dVXwcHB1FEKYVxm/XZVTk4OrVu35uWXX+aZZ54xdThCCFGlJCTAX3/B2rUK0dH+QDMAXF2P8cEHdowf30jWkxIW7b6SnOvXr3PgwAFSU1PRarXFjj311FP3FVhZ9O3bl759+1b4fYQQwtycOHGB/v3rkphoB6jQ/bhPAJxp3boZb7xh0vCEqBQGJzlbtmxh2LBhpKWl3XFMpVKh0WjuK7CKoFarUavV+s+ZmZkmjEYIIYwvNfUKw4ZFERHRFbADwN8fhgyBJk3aADKQWFQfBic5r7/+Os899xzTp0/H09PTmDFVmLCwMGbMmGHqMIQQwuiysrIYP34D33/fCq32BQCcnFJYvtyL555DHkuJasngYfSpqalMmjTJbBIcgClTppCRkaHfkpKSTB2SEELcF7VazZQp3+Pu/jcrVw5Fq22NlVUWo0Yd48oVT55/XhIcUX0Z3JPz7LPPEh0dTePGjY0ZT4Wyt7fHXpbHFUJYiEuXoEePnRw5Mhjdj/MCHnvsDN9950/dus1MHZ4QJmdwkrNw4UKee+45duzYQcuWLbG1tS12/A0Z1SaEEEYXH68QEVFAXJwdUVFw/Xo3AJo2PcP69T60aNHExBEKUXUYnOSsWrWKiIgIHB0diY6ORnVLf6hKpaqUJCc7O5uTJ0/qP585c4aEhARq167NAw88UOH3F0KIypKeDp9+mkRYWAYaTdBtRzV4efnRooUpIhOi6irX2lW38vLy4o033mDy5MnlXtPKWKKjo3nkkUfu2D98+HBWrFhxz/Nl7SohRFVWWAhRUfD117n8+qstWm1Rj7mGwMBCHn3UnvbtwcpK98ZUmzamjFaIylNha1cVyc/PZ9CgQSZLcAC6d++OgTmaEEJUWYcOwcqV8P33Wi5dsgKcbhw5SOvW//DNNw/TsaP0VgtxLwZnKMOHD2fNmjXGjEUIIaql5GTYtQumTIEWLaBlS5g7lxsJzmVgAa1avUxcXA4JCS9JgiNEGRnck6PRaPj444+JiIigVatWdww8njdv3n0HJ4QQlk5RYOxYuHPpvXxsbV/Bx2cvH388k2eeeaPY2EchxL0ZnOQcPHiQtm3bAnDo0KFix+QfohBC3NvRozBxIkREFO3JAmqiW4bBjkGD/o+lS1vI1BdCGMjgJGf79u3GjEMIIaqNq1dhxgz48kvQaMDKqhBFmY+ifMjcud/xyCMDAPD2bovkN0IYrlxjcg4cOHDHQpx3c/jwYQoLC8sdlBBCWKLCQvjqKwgIgM8/1yU4dna/odU2Q1Hepn//HgwY0JJ27aBdO/D2NnXEQpi3ciU5bdu25cqVK2UuHxISQmJiYrmDEkIIS7N1K7RtC+PG6XpyHBxOAo+Sn/84LVrYExkZyYYNG8xqFnkhqrpyPa5SFIX33nsPJyenexdG95q5EEJUZydPwptvwsaNus+1ayvY2c0kJWUGbm7OzJixgDFjxtzx8oYQ4v6VK8l5+OGHOX78eJnLh4SE4OjoWO6ghBDC3CUk6MbcrFihe0xlZaXw6KMqpk5VkZ/fifXr/8OHH36Iu7u7qUMVwmIZPOOxJZAZj4UQFUFRwM8Pzp0r2hMDnAJeoVs3iI42WWhCWISyfn+bbrpiIYSwQAUFMHLkrQnOh0B3fHzm8913Gj77zHSxCVHdGPwKuRBCiOKys+Hppwv54w8bQAOMwcHheyZPfp+33noLJydrU4coRLUiSY4QQhhBSgo8/HAm//7rAuQAg+jf34b584/g5+dn6vCEqJYkyRFCiPt0/Dg89hicPesCpFK//miWLBlH3759TR2aENWajMkRQggDZWZmMmtWNJ07w9mz4O8PK1ee5OTJVZLgCFEF3FdPztatW9m6dSupqal3zIT87bff3ldgQghRVSmKwqpVq3j99a2kp38JQIcO8OuvULduZxNHJ4QoYnCSM2PGDD744AOCg4Px9vaWRTmFENXCoUOHGDduHLGxLYGlgBUPPXSViIja1Khh6uiEELcyOMn5+uuvWbFiBUOHDjVmPEIIUSVlZ2czY8YM5s37DK12JvAOAKNGaVi0qDY2MsJRiCrH4H+W+fn5dO4s3bJCCMun1Wpp164z//5rD2wBegLw3HMwdqy1JDhCVFEGDzweNWoUq1atMmYsQghRJZ04YcXFi+HAHooSHICff4aJE00WlhDiHgz+/8f169dZvHgxf/zxB61atbpjcbl58+bdd3BCCGEKarWajz/+mAceeIgdO3qwfDlotY1RqRQeekjFwIHg4aErGxho2liFEKUzOMk5cOAAbdq0AXQD8W4lg5CFEOYqKiqK0aPf5fTp54GH9Pufego++khFUJDpYhNClI/BSc727duNGYcQQpjUxYsXGT9+KuvXPwBEAbpF/x5+WGH2bBUhISYNTwhhABkuJ4So1goLC1mw4GumTUtErf4Y0D2HatVKw5w51vTpo0I6p4UwT/eV5KSnp7Ns2TKOHj2KSqWiefPmjBw5EldXV2PFJ4QQFSYhAT766BBr1/YFGgNQu/Z13n7bgbfessZK5oQXwqypFEVRDDlx79699OnTB0dHRzp06ICiKOzdu5e8vDwiIyNp166dsWM1uszMTFxdXcnIyMDFxcXU4QghKolWq+XcOSsefBCuXCnamwM4AlZ06wbR0SYLTwhxD2X9/jY4yenatSv+/v4sWbIEmxuTRBQWFjJq1ChOnz5NbGysYZFXIklyhKheFEXhu+9+4s03L5GdPZ7r11VYW0PfvjBgADg46MoFBsKN9yqEEFVQhSc5jo6OxMfH06xZs2L7jxw5QnBwMLm5uYZctty++uorPvnkE5KTkwkMDOSzzz6ja9euZTpXkhwhqo9///2XQYOWEx//MhAAwCOPwMKF0KKFaWMTQpRPWb+/DX7i7OLiQmJi4h37k5KScHZ2NvSy5bJmzRpCQ0OZNm0a8fHxdO3alb59+5YYlxCielKr1Uya9BnNmh0iPn4WEICzcxbffVfA1q2S4AhhyQxOcgYNGsTIkSNZs2YNSUlJnD9/ntWrVzNq1CgGDx5szBhLNW/ePEaOHMmoUaNo3rw5n332Gb6+vixatKhS7i+EqNq2bNmGj88XzJ//H7Tap1GpNLzyyjXOn3dm6FBbeWtKCAtn8NtVc+fORaVSMWzYMAoLCwGwtbVlzJgxzJ4922gBliY/P599+/YxefLkYvt79+5NXFxcieeo1WrUarX+c2ZmZoXGKIQwnT/+gMGDA0lP7wFA8+aprFlTl5Yta5k4MiFEZTG4J8fOzo4FCxZw7do1EhISiI+P5+rVq8yfPx97e3tjxliitLQ0NBoNnp6exfZ7enqSkpJS4jlhYWG4urrqN19f3wqPUwhReTQaDRERV+jdG3r1gvR0T+zts3jllVx++MGDli2l60aI6uS+Z4FwcnKiZcuWtGrVCicnJ2PEVC63LyGhKEqpy0pMmTKFjIwM/ZaUlFQZIQohKkF8fDxt2rxEv34ZREXd3K9WO/Ptt06ykKYQ1VC5HldNmjSJDz/8kBo1ajBp0qS7lq3oBTrd3d2xtra+o9cmNTX1jt6dIvb29pXSyySEqDxZWVm89950Pv88H0X5FnCkZs1Cxo61oVWrm+VkIU0hqp9yJTnx8fEUFBTof1+aylig087Ojvbt2xMVFcXTTz+t3x8VFUX//v0r/P5CCNNSFIX169fz+uvvk5IyE9D9u+/R4zo//uigXyVcCFF9lSvJuXVRzpUrV+Lj44PVbfOeK4pSaY+BJk2axNChQwkODiYkJITFixeTmJjI6NGjK+X+QgjTuHLlCsOGDeO33/KALUB9bG21fPKJFW+84SBvTQkhgPt4u8rPz4/k5GQ8bvvv0tWrV/Hz80Oj0dx3cPcyaNAgrly5wgcffEBycjJBQUH89ttvNGjQoMLvLYQwHUdHF3bvfhp4BbCiaVMta9ZY0bq1qSMTQlQlBg88Lm2i5OzsbByK5kavBGPHjuXs2bOo1Wr27dvHww8/XGn3FkJUnri4OPLz8zl1Crp3tyUtbRRgxauvwv79kuAIIe5U7p6cogHHKpWK6dOnF3ujSqPRsGvXLtrIoi9CCCNJTU3lrbfe4rvvvuO55zbx++9Pkp0NtWrBkiXwzDOmjlAIUVWVO8kpGnCsKAoHDx7Ezs5Of8zOzo7WrVvz5ptvGi9CIUS1pNFoWLJkCVOmTCE93QvYzM8/9wOgWTMYMwYaNzZtjEKIqs3gBTpffvllFixYYNYLW8oCnUJUTfv372fMmDHs3n0S+C8wlpL+T9atG0RHV3JwQgiTK+v3t8EDj5cvX27oqUIIUapvvvmGMWPeQFFeQ/fmlG4ZhvbtYfBg8PK6WVbmvhFC3I3ZTgYohLA8igIq1RMoSnegKQAtW8L8+dCzp0lDE0KYIbOdDFAIYRmOHTvG1q1b6d59HJMmQWRkfQDq1oWZM2HkSLC2NnGQQgizZPBkgLf+XgghyisnJ4ePPvqITz5ZTmHhe1hbK2g0KuzsIDQUpk4FV1dTRymEMGcGj8nJy8tDURT9K+Tnzp0jPDycFi1a0Lt3b6MFKISwLIqi8Omn6wkLm8LVq/2Bo4AbGg306AGLF8tbU0II4zA4yenfvz8DBw5k9OjRpKen06FDB+zs7EhLS2PevHmMGTPGmHEKISzA8ePHGTt2Etu2+QOxQNEoYgVQodFIgiOEMB6Dk5z9+/czf/58ANauXYuXlxfx8fGsW7eO6dOnS5IjhCgmOzufDh2+JTPzG8AHAHd3LQMHWtGliworK3lbSghhXAYnObm5uTg7OwMQGRnJwIEDsbKyolOnTpw7d85oAQohzJeiKBQWwvffq/jwQzsyM+cA4O1dwPvv2/Lyy1bY2po4SCGExTJ47Sp/f382bNhAUlISERER+nE4qampMrGeEILDh4/RsuUcHnggh5Ej4exZ8PJS+PxzhTNnbHn1VSTBEUJUKIOTnOnTp/Pmm2/SsGFDOnbsSEhICKDr1Wnbtq3RAhRCmJfMzGwGDPiBoCCFw4cnk5JSE3d3hblz4dQpFePHq7C3N3WUQojqwOBlHQBSUlJITk6mdevWWFnp8qXdu3fj4uJCs2bNjBZkRZFlHYQwnvh4hZkzI9m40RuNphUA1tZZDBmSz1df1aFmTRMHKISwGBW+rAOAl5cXXrfOsQ506NDhfi4phDBDsbGHePTRkxQUPIWugzgLuIhG05TERCTBEUKYxH0lOenp6SxbtoyjR4+iUqlo3rw5I0eOxFVm8BKiWlAU+P57mDChCQUFQQA0bPgPoaFNcXfXLcsgb0wJIUzF4MdVe/fupU+fPjg6OtKhQwcURWHv3r3k5eURGRlJu3btjB2r0cnjKiEMk5+fT3j4cRYtaklMjG6fl9cVFi7U8swzdU0bnBDC4pX1+9vgJKdr1674+/uzZMkSbGx0HUKFhYWMGjWK06dPExsba1jklUiSHCHKLzw8glGjznL16iuALY6O8N//wsSJYGdn6uiEENVBhSc5jo6OxMfH3zHA+MiRIwQHB5Obm2vIZSuVJDlClN2JEycYMmQV+/YNB/wA6Nz5Cj/8UIeGDU0amhCiminr97fBr5C7uLiQmJh4x/6kpCT9JIFCCPOXnp7Oq6/OpFmzo+zb9z7gh7PzNX74IYe//pIERwhRdRk88HjQoEGMHDmSuXPn0rlzZ1QqFX/++SdvvfUWgwcPNmaMQggT+euvPHr1mk9e3ltATaCQbt0ymTWrNp07mzo6IYS4O4OTnLlz56JSqRg2bBiFhYUA2NraMmbMGGbPnm20AIUQppGQAH37OpKXN+PGnqtAbWJiajN1KkRHmy42IYQoi/uaDBB0a1idOnUKRVHw9/fHycnJWLFVOBmTI0Rxe/fuZdKkd/HzW8EPP3ih0YCjo8ILL2h55BFrbsz5SWAgtGlj0lCFENVYpUwGCODk5ERQkG5+DJVKdb+XE0KYQGJiIlOnTuWHH1KAb9ixQzfJ57PPwuefq/D2tjZtgEIIYQCDBx4DLFu2jKCgIBwcHHBwcCAoKIilS5caKzYhRAXLzMxkypQpBASE8MMPvYA/gMZ4exeycSP8/DN4e5s6SiGEMIzBPTnvvfce8+fPZ/z48frFOf/++28mTpzI2bNnmTlzptGCFEIY3/fff8+kSf9HWlpvIAGoi0qlMG6cio8+skGe4AohzJ3BSc6iRYtYsmRJsTepnnrqKVq1asX48eMrPMn56KOP2Lx5MwkJCdjZ2ZGenl6h9xPC0pw7Z0Va2nfAYwAEBSksWaKiUyfTxiWEEMZicJKj0WgIDg6+Y3/79u31b1tVpPz8fJ577jlCQkJYtmxZhd9PCHOmKAoRERGcPKng4NCXLVvgl1+GACpsbBRee03FvHkqmbFYCGFRDE5yXnrpJRYtWsS8efOK7V+8eDEvvvjifQd2LzNm6F5rXbFiRYXfSwhzFhcXx5QpU4iN3YWNzTQKCx8DVDc2KCxUceiQLMkghLA89/V21bJly4iMjKTTjf7tnTt3kpSUxLBhw5g0aZK+3O2JkBCi4h08eJBp06bxyy+/AcOA/1FY6AuAl5fuzamOHUGlkpXChRCWyeAk59ChQ/qVxk+dOgVA3bp1qVu3LocOHdKXq0qvlavVatRqtf5zZmamCaMRomKcPXuWd999lx9+WAU8DRwEmgNQv75uMc0RI8DW1oRBCiFEJTA4ydm+fbsx4wDg/fff1z+GKs2ePXtKHAtUFmFhYfe8vhDm7uzZc/zwwyVgF/AgAHXqwJQpMHYsODqaNDwhhKg09z3jsTGlpaWRlpZ21zINGzbEwcFB/3nFihWEhoaW6e2qknpyfH19ZcZjYdYuXLjA3r176d+/P7t26ZKZov+D1KwJkybB//0f8kq4EMJiVNqMx8bk7u6Ou7t7hV3f3t4ee3v7Cru+EJUpKSmJ9977iv/97xTQmQceKODMGd0zKBsbeP55mD8fPDxMG6cQQphKlUpyyiMxMZGrV6+SmJiIRqMhISEBAH9/f2rWrGna4ISoAAUFcOAAbN58le+/P8XJk+5AmP74mTM3yxYWwoULkuAIIao3g5OcrKwsnJ2djRlLuUyfPp2VK1fqP7dt2xbQjRXq3r27iaISwng0Gti6Vbfad1wc7N6tJS/PCqh9YwPQ4OOTR5MmNQgIUNG8ORR1hsobU0KI6s7gMTlt2rRhy5YteHl5GTumSiOrkIuq6Nw5mDUL1q6Fq1dvP3oN2ImfXwrjxrXjP/9pLWNthBDVTlm/vw1eoDM4OJiOHTty7NixYvvj4+Pp16+foZcVolrKz4d16+Cxx8DPDxYvLkpw8oqVa9z4R3bscOb06Zf5v/+TBEcIIe7G4CRn6dKlvPLKK3Tp0oU///yTEydO8PzzzxMcHCyDe4UooxMn4O23wddXNzlfRAQoCri6JgAvALX48MP9/O9/8L//wdq1Y+nSpYuJoxZCCPNwXwOP//vf/2JnZ0evXr3QaDT06dOHPXv26CcJFELcKS9P12uzdCnExNzc7+aWh4PDj6SkzCIj4xQqlYqBAwcycKADLVqYLl4hhDBXBic5ycnJhIWFsXTpUlq0aMGxY8d44YUXJMERohTbtsHnn8Mff0BOjm6fSgXt2mWRmPh/XL68HCjEwcGBl18ew6RJk/D39zdpzEIIYc4MTnIaNWpEs2bN+Pnnn3n88ceJiIjg+eef5/z587zzzjvGjFEIs5aYCHPnwpdfglZbtFcBVCgKODnZYWPzK3XquPL6668zbtw46tata8KIhRDCMhic5CxfvpwXXnhB/7lPnz5s376dJ554gnPnzvHVV18ZJUAhzNWxYzBnjm4sTWGhbl/9+rnUqrWSa9cWERYWj5WVNYGB9ijKZpo2bYqTk5NpgxZCCAti9GUdzp49S79+/Thy5IgxL1sh5BVyURH27oWwMAgP1w0iBggMvIRKNZtDhz7Tl4uIiKB3796mCVIIIcyYyZZ1aNiwIX/99ZexLytElaYoukn7wsIgKurm/qZNj3D58v9x+PAWAKytrRkwYAATJkyQt6SEEKKCVciyDrVq1aqIywpRpSQn68bbbN8OP/wAhw7p9ltbw5Ah0LfvAYYMaQ2At7c3r776Kv/5z3+oX7++CaMWQojqw2zXrhLClP79V5fI7N17695CIIERI4JZuhQUpSWxsaPp2bMn/fv3x9bW1kTRCiFE9SRJjhBlpFbDhg3wzTe63pubrgFfA58BOTg4XABcUalULFq0qPIDFUIIAUiSI8Q9nTgBS5bAihWQlla0V4u9/XbU6gXAb4AGf/+WPP/8OEaOtDNZrEIIIW6SJEeIEly/frPXJjr65v569SAgIIaYmKGo1Um4uroyaNBIhg8fTkhICCqVylQhCyGEuI0kOaLaKyiAw4d142siImDfPkhKujm3DWhp0SKVsDAv+vWD8+cbMHZsEMOHf8JTTz2Fo6OjKcMXQghRCqPPk2NOZJ6c6qewEI4e1SU0Rds//+jG29zpIrAEWEbt2q25cuWXyg1WCCFEiUw2T44QVYFWC+fOwZEjsHWrrnfmwgVdD01+/p3lXV0VatY8wZUrUVy/HgPsA87g4lKXkJAhjBgxvLKrIIQQ4j5JkiPMWkEBnDql6505cuTmr8eO6Vb7Lp0WD49LLFjgTXAwNGqk4qGHRnDhwk5cXV156qmneO65BTz22GPy6rcQQpgpSXKE2UlP163mHR6um4Dv5tiZ4uzsoGlT8PaGGjXAw0NNXl4s//77HQkJm7h6NZc+fVL1k1fOmDEDrVZLjx49sLOTN6SEEMLcSZIjzEJ6OmzaBD/9BJGRuh6ckvj5wfz50KKF7vcXLpwjPDyciIgIvvsuhrxbune8vb05ceIEHTt2BJB1pIQQwsJIkiOqrKLE5uefdW893ZrYNG4MrVtDhw6617qtrHT7fX2v0bq1Fa6urgBERUUxceJE/XkNGjTgmWee4ZlnnqFTp05YFZ0ohBDC4kiSI6qUq1dh8+abPTa3DhJu0QKefx6ee073ewCNRsPu3buJiIggIiKC3bt3M3/+fN544w0A+vTpQ69evejTpw99+vQhMDBQ5rIRQohqQpIcYVJqNfz1l26By+3b4exZ3YreRRo1gqFDdYlNYKBuX2ZmJmFhX/LXX3/x119/kZ6eXuyahw8f1v/e19eXyMjIiq+IEEKIKkeSHFGptFo4eBCiouCPPyA29u5vQXl4JNOyZRzHj6sIDBwIgJ2dHf/9738puPH8ys3NjUcffVTfW+Pr61sZVRFCCFHFSZIjKty5c7Btmy6x2boVUlOLH/fygvbtwcsrn9q1j5GWFseJE39x4sRf7Nx5hmefhTZt2jBwoC7JcXBw4K233qJu3bo89NBDtG3bFhsb+asshBCiOPlmsGDZ2XDlCvj63hyYW9EURTdXTWysbtDw7t26GG7l6KgQEqKmZctkRo3yIzAQVCpo0aINR48eLVZWpVLRsmVLunTpgqIo+vE0H330UeVUSAghhNmSJMfCaDS6FbO//163ZEF+Ptjb695AatkSHn4YgoJ0W716uuTifhQUQHw87Nih2/78886kBhQgDUgAfqOgYA3btiWze3dN5s3LQKXSZWBBQUFcvnyZNm3a0LlzZx566CE6deokS24IIYQwiFmuXXX27Fk+/PBDtm3bRkpKCvXq1eOll15i2rRp5ZrEzZLWrjp+HFau1CU358+X7Rw3N91g3qKkJyBAl/Tk55e+paXBtWuQm6ubWfjAAYXr14tnSo6OCp06qQgIgOjo/3LixFwgt1gZKysrmjZtSkxMDHXr1gUgNzcXR0dHeftJCCHEXVn02lXHjh1Dq9XyzTff4O/vz6FDh/jPf/5DTk4Oc+fONXV4lebaNVizRpfc7Nx5c7+LCzz4IHTtqpsQ79IlXeKTn6/rZTl0CE6c0M1D89dfus1wKuAq8CewA9jB0aPhNGjgDcDbb+fx3XfONGv2IK1bt6Z169a0atWKwMDAO1bvdnJyup9AhBBCiGLMsienJJ988gmLFi3i9OnTZT7H1D05yclw+jTs2aN7zGRvr1uKoF498PEBR0dwcLi5OTrqxtZERuoSm40bb66ebW0Njz0GI0bAk0/qrnUrjUZDRkYG6enppKenk5qaQd26XXjpJVuOHQNIBrSAGshDpcoFslEUNZBPv369cHV15J9/4MiRncBe4DC6xOYIzs4+tG/fGH9/f95//33q168PgFarlQn3hBBCGJVF9+SUJCMjg9q1a5s6DL29e/eSkpJCUQ55+6/Nmj3Biy9as2/f/d3HxeU8TZr8ibf3NiCFRx/9Dnt7NwA+/PBDli5dSnp6OpmZmXece+7cOX788QEOH4ZVq+bx2283e8FuTX3r1KnDnDnRBAUFkZwMv/1WwLFjWurX74ev7xvUq+dHw4YOeHvfGZ8kOEIIIUzFIpKcU6dO8cUXX/Dpp5/etZxarUZd1PUBJX7xG8usWbMIDw+/ba8KeAx4HZXK6pZE4jJwAnAEHErYbn+McxlYBawgMzOBvXtvHsnKysLNzQ2A9PR0EhMTi53p5OSEm5sbbm5u5Ofn06YNtGkD7u6P0q6dA97e3vqtXr16eHl5FRvn5O0NI0d2Bboa9OcihBBCVJYq9bjq/fffZ8aMGXcts2fPHoKDg/WfL168SLdu3ejWrRtLly416PoV8bjqnXfeITo6GgCNxpXLl5/g0qWBqNU++jI9ekD//nDkyIfs3h2FtbUN1tbWODnZ4ORkjY2N7vO33y7n+HEX/vkHduz4icTE7Tg42GNn50j9+g74+Tni6Kjbnn/+eX1dTp8+TVpaGrVq1cLNzQ1XV1dZXVsIIYTZK+vjqiqV5KSlpZGWlnbXMg0bNsTBwQHQJTiPPPIIHTt2ZMWKFfd8NFJST46vr2+FjcmJj4cvv4RVq27O6uvmBq+8AmPGgL+/0W8phBBCWDyzHJPj7u6Ou7t7mcpeuHCBRx55hPbt27N8+fIyjf2wt7fH/vYRuUaUnAwXL+pWzP7pJ/jnn5vHWreG11+HIUNAXiISQgghKl6VSnLK6uLFi3Tv3p0HHniAuXPncvnyZf0xLy8vk8U1dy7Mm3fn/kGD4Mcf73/iPSGEEEKUnVkmOZGRkZw8eZKTJ0/i4+NT7FgVevqmV7++JDhCCCFEZatSY3Iqm7HnyUlO1m238/amxNerhRBCCFF+Zjkmx9xJMiOEEEJUHTJTmxBCCCEskiQ5QgghhLBIkuQIIYQQwiJV6zE5RWOuK3J5ByGEEEIYV9H39r3enarWSU5WVhYAvr6+Jo5ECCGEEOWVlZWFq6trqcer9SvkWq2Wixcv4uzsjMqIE9kULReRlJRUIctFVAWWXkepn/mz9Dpaev3A8uso9TOcoihkZWVRr169u654UK17cqysrO6YTNCYXFxcLPIv7q0svY5SP/Nn6XW09PqB5ddR6meYu/XgFJGBx0IIIYSwSJLkCCGEEMIiSZJTAezt7fnvf/9boSuem5ql11HqZ/4svY6WXj+w/DpK/SpetR54LIQQQgjLJT05QgghhLBIkuQIIYQQwiJJkiOEEEIIiyRJjhBCCCEskiQ5Bvrqq6/w8/PDwcGB9u3bs2PHjruWj4mJoX379jg4ONCoUSO+/vrrSorUMOWpX3R0NCqV6o7t2LFjlRhx+cTGxvLkk09Sr149VCoVGzZsuOc55tSG5a2fubVhWFgYDz74IM7Oznh4eDBgwACOHz9+z/PMpQ0NqZ+5teGiRYto1aqVfqK4kJAQfv/997ueYy7tB+Wvn7m13+3CwsJQqVSEhobetVxlt6EkOQZYs2YNoaGhTJs2jfj4eLp27Urfvn1JTEwssfyZM2fo168fXbt2JT4+nqlTp/LGG2+wbt26So68bMpbvyLHjx8nOTlZvwUEBFRSxOWXk5ND69atWbhwYZnKm1sblrd+RcylDWNiYhg3bhw7d+4kKiqKwsJCevfuTU5OTqnnmFMbGlK/IubShj4+PsyePZu9e/eyd+9eevToQf/+/Tl8+HCJ5c2p/aD89StiLu13qz179rB48WJatWp113ImaUNFlFuHDh2U0aNHF9vXrFkzZfLkySWWf/vtt5VmzZoV2/faa68pnTp1qrAY70d567d9+3YFUK5du1YJ0RkfoISHh9+1jLm14a3KUj9zb8PU1FQFUGJiYkotY85tWJb6mXsbKoqi1KpVS1m6dGmJx8y5/YrcrX7m2n5ZWVlKQECAEhUVpXTr1k2ZMGFCqWVN0YbSk1NO+fn57Nu3j969exfb37t3b+Li4ko85++//76jfJ8+fdi7dy8FBQUVFqshDKlfkbZt2+Lt7U3Pnj3Zvn17RYZZ6cypDe+HubZhRkYGALVr1y61jDm3YVnqV8Qc21Cj0bB69WpycnIICQkpsYw5t19Z6lfE3Npv3LhxPP744zz66KP3LGuKNpQkp5zS0tLQaDR4enoW2+/p6UlKSkqJ56SkpJRYvrCwkLS0tAqL1RCG1M/b25vFixezbt061q9fT9OmTenZsyexsbGVEXKlMKc2NIQ5t6GiKEyaNIkuXboQFBRUajlzbcOy1s8c2/DgwYPUrFkTe3t7Ro8eTXh4OC1atCixrDm2X3nqZ47tt3r1avbv309YWFiZypuiDav1KuT3Q6VSFfusKMod++5VvqT9VUV56te0aVOaNm2q/xwSEkJSUhJz587l4YcfrtA4K5O5tWF5mHMbvv766xw4cIA///zznmXNsQ3LWj9zbMOmTZuSkJBAeno669atY/jw4cTExJSaCJhb+5WnfubWfklJSUyYMIHIyEgcHBzKfF5lt6H05JSTu7s71tbWd/RqpKam3pGhFvHy8iqxvI2NDXXq1KmwWA1hSP1K0qlTJ/79919jh2cy5tSGxmIObTh+/Hg2bdrE9u3b8fHxuWtZc2zD8tSvJFW9De3s7PD39yc4OJiwsDBat27NggULSixrju1XnvqVpCq33759+0hNTaV9+/bY2NhgY2NDTEwMn3/+OTY2Nmg0mjvOMUUbSpJTTnZ2drRv356oqKhi+6OioujcuXOJ54SEhNxRPjIykuDgYGxtbSssVkMYUr+SxMfH4+3tbezwTMac2tBYqnIbKorC66+/zvr169m2bRt+fn73PMec2tCQ+pWkKrdhSRRFQa1Wl3jMnNqvNHerX0mqcvv17NmTgwcPkpCQoN+Cg4N58cUXSUhIwNra+o5zTNKGFTak2YKtXr1asbW1VZYtW6YcOXJECQ0NVWrUqKGcPXtWURRFmTx5sjJ06FB9+dOnTytOTk7KxIkTlSNHjijLli1TbG1tlbVr15qqCndV3vrNnz9fCQ8PV06cOKEcOnRImTx5sgIo69atM1UV7ikrK0uJj49X4uPjFUCZN2+eEh8fr5w7d05RFPNvw/LWz9zacMyYMYqrq6sSHR2tJCcn67fc3Fx9GXNuQ0PqZ25tOGXKFCU2NlY5c+aMcuDAAWXq1KmKlZWVEhkZqSiKebefopS/fubWfiW5/e2qqtCGkuQY6Msvv1QaNGig2NnZKe3atSv2aufw4cOVbt26FSsfHR2ttG3bVrGzs1MaNmyoLFq0qJIjLp/y1G/OnDlK48aNFQcHB6VWrVpKly5dlM2bN5sg6rIrel3z9m348OGKoph/G5a3fubWhiXVDVCWL1+uL2PObWhI/cytDV955RX9z5i6desqPXv21CcAimLe7aco5a+fubVfSW5PcqpCG6oU5caoHyGEEEIICyJjcoQQQghhkSTJEUIIIYRFkiRHCCGEEBZJkhwhhBBCWCRJcoQQQghhkSTJEUIIIYRFkiRHCCGEEBZJkhwhhBBCWCRJcoQQQghhkSTJEUJUmO7duxMaGmrqMErVvXt3VCoVKpWKhISESrnniBEj9PfcsGFDpdxTiOpKkhwhhEGKvqhL20aMGMH69ev58MMPTRJfaGgoAwYMuGe5//znPyQnJxMUFFTxQQELFiwgOTm5Uu4lRHVnY+oAhBDm6dYv6jVr1jB9+nSOHz+u3+fo6Iirq6spQgNgz549PP744/cs5+TkhJeXVyVEpOPq6mrSPxchqhPpyRFCGMTLy0u/ubq6olKp7th3++Oq7t27M378eEJDQ6lVqxaenp4sXryYnJwcXn75ZZydnWncuDG///67/hxFUfj4449p1KgRjo6OtG7dmrVr15YaV0FBAXZ2dsTFxTFt2jRUKhUdO3YsV93Wrl1Ly5YtcXR0pE6dOjz66KPk5OSUKR6tVsucOXPw9/fH3t6eBx54gI8++qhc9xdCGIckOUKISrVy5Urc3d3ZvXs348ePZ8yYMTz33HN07tyZ/fv306dPH4YOHUpubi4A7777LsuXL2fRokUcPnyYiRMn8tJLLxETE1Pi9a2trfnzzz8BSEhIIDk5mYiIiDLHl5yczODBg3nllVc4evQo0dHRDBw4EEVRyhTPlClTmDNnDu+99x5Hjhxh1apVeHp63s8fmRDCUIoQQtyn5cuXK66urnfs79atmzJhwoRin7t06aL/XFhYqNSoUUMZOnSofl9ycrICKH///beSnZ2tODg4KHFxccWuO3LkSGXw4MGlxhMeHq7UqVPnnnHfHp+iKMq+ffsUQDl79uwd5e8VT2ZmpmJvb68sWbLknvcGlPDw8HuWE0IYTsbkCCEqVatWrfS/t7a2pk6dOrRs2VK/r6jXIzU1lSNHjnD9+nV69epV7Br5+fm0bdu21HvEx8fTunVrg+Jr3bo1PXv2pGXLlvTp04fevXvz7LPPUqtWrXvGc/ToUdRqNT179jTo3kII45IkRwhRqWxtbYt9VqlUxfapVCpAN7ZFq9UCsHnzZurXr1/sPHt7+1LvkZCQYHCSY21tTVRUFHFxcURGRvLFF18wbdo0du3adc940tPTDbqnEKJiSJIjhKiyWrRogb29PYmJiXTr1q3M5x08eJCnn37a4PuqVCoeeughHnroIaZPn06DBg0IDw/nP//5z13jqVu3Lo6OjmzdupVRo0YZfH8hhHFIkiOEqLKcnZ158803mThxIlqtli5dupCZmUlcXBw1a9Zk+PDhJZ6n1Wo5cOAAFy9epEaNGuV6ZXvXrl1s3bqV3r174+Hhwa5du7h8+TLNmzcvUzzvvPMOb7/9NnZ2djz00ENcvnyZw4cPM3LkSGP9sQghykiSHCFElfbhhx/i4eFBWFgYp0+fxs3NjXbt2jF16tRSz5k5cybvvPMO8+fPZ9KkSXz66adlvp+LiwuxsbF89tlnZGZm0qBBAz799FP69u1bpnjee+89bGxsmD59OhcvXsTb25vRo0ff3x+CEMIgKkW58V6kEEJUM927d6dNmzZ89tlnlX5vlUpFeHh4mWZlFkIYRubJEUJUa1999RU1a9bk4MGDlXK/0aNHU7NmzUq5lxDVnfTkCCGqrQsXLpCXlwfAAw88gJ2dXYXfMzU1lczMTAC8vb2pUaNGhd9TiOpKkhwhhBBCWCR5XCWEEEIIiyRJjhBCCCEskiQ5QgghhLBIkuQIIYQQwiJJkiOEEEIIiyRJjhBCCCEskiQ5QgghhLBIkuQIIYQQwiJJkiOEEEIIiyRJjhBCCCEs0v8Dij6UD7Qcmy4AAAAASUVORK5CYII=", "text/plain": [ "
" ] @@ -462,14 +474,14 @@ ], "source": [ "# System matrices\n", - "A, B, F = discsys.A, discsys.B, discsys.B\n", + "A, B, F = veh_lin_dt.A, veh_lin_dt.B, veh_lin_dt.B\n", "\n", "# Create an array to store the results\n", - "xhat = np.zeros((discsys.nstates, T.size))\n", - "P = np.zeros((discsys.nstates, discsys.nstates, T.size))\n", + "xhat = np.zeros((veh_lin_dt.nstates, timepts.size))\n", + "P = np.zeros((veh_lin_dt.nstates, veh_lin_dt.nstates, timepts.size))\n", "\n", "# Update the estimates at each time\n", - "for i, t in enumerate(T):\n", + "for i, t in enumerate(timepts):\n", " # Prediction step\n", " if i == 0:\n", " # Use the initial condition\n", @@ -489,14 +501,16 @@ " # xhat[:, i], P[:, :, i] = xkkm1, Pkkm1 # For comparison to Kalman form\n", " \n", "plt.subplot(2, 1, 1)\n", - "plt.errorbar(T, xhat[0], P[0, 0], fmt='b-', **ebarstyle)\n", - "plt.plot(T, xd[0], 'k--')\n", + "plt.errorbar(timepts, xhat[0], P[0, 0], fmt='b-', **ebarstyle, label=\"estimated\")\n", + "plt.plot(timepts, xd[0], 'k--', label=\"actual\")\n", "plt.ylabel(\"$x$ position [m]\")\n", + "plt.legend()\n", "\n", "plt.subplot(2, 1, 2)\n", - "plt.errorbar(T, xhat[1], P[1, 1], fmt='b-', **ebarstyle)\n", - "plt.plot(T, xd[1], 'k--')\n", - "plt.ylabel(\"$x$ position [m]\");" + "plt.errorbar(timepts, xhat[1], P[1, 1], fmt='b-', **ebarstyle)\n", + "plt.plot(timepts, xd[1], 'k--')\n", + "plt.ylabel(\"$x$ position [m]\")\n", + "plt.xlabel(\"Time $t$ [sec]\");" ] }, { @@ -515,7 +529,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkcAAAG4CAYAAABPb0OmAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAnYZJREFUeJzs3Xd4U+UXB/Bvuge0jNJSZlkyZLcCRaZAQVFERUGUIUNANvgTUBkOLDhQFEE2LgRliYpAZe9RWjZlFSjQUmZaWujK+f1xyGqTNEmTtCnn8zx52t6899735qbN6TvOqyAighBCCCGEAAC4FHYFhBBCCCGKEgmOhBBCCCF0SHAkhBBCCKFDgiMhhBBCCB0SHAkhhBBC6JDgSAghhBBChwRHQgghhBA6JDgSQgghhNAhwZEQQgghhA4JjoQQQgghdDh9cDR37lxUq1YNXl5eCA0Nxa5du4yWXbNmDTp16oRy5crBz88P4eHh2LRpkwNrK4QQQoiizqmDo5UrV2LMmDH44IMPEBMTg9atW+PZZ5/FlStXDJbfuXMnOnXqhA0bNiA6Ohrt27fHCy+8gJiYGAfXXAghhBBFlcKZF55t3rw5mjZtinnz5mm21a1bF927d0dkZKRZx3jyySfRs2dPTJkyxV7VFEIIIYQTcSvsClgrMzMT0dHRmDhxot72iIgI7N2716xjqFQqpKamokyZMkbLZGRkICMjQ2+fO3fuoGzZslAoFNZVXgghhBAORURITU1FhQoV4OJiuuPMaYOjW7duIScnB0FBQXrbg4KCkJSUZNYxvvrqK6SlpeG1114zWiYyMhIfffRRgeoqhBBCiKIhISEBlSpVMlnGaYMjtdytN0RkVovOb7/9hmnTpuHPP/9EYGCg0XKTJk3CuHHjND8rlUpUqVIFCQkJ8PPzs77iQgghhHCYlJQUVK5cGSVLlsy3rNMGRwEBAXB1dc3TSpScnJynNSm3lStXYuDAgfjjjz/QsWNHk2U9PT3h6emZZ7ufn58ER0IIIYSTMacBxWlnq3l4eCA0NBRRUVF626OiotCyZUuj+/3222/o378/li9fjq5du9q7mkIIIYRwMk7bcgQA48aNQ58+fRAWFobw8HAsWLAAV65cwdChQwFwl9i1a9fw008/AeDAqG/fvpg9ezZatGihaXXy9vaGv79/oV2HEEIIIYoOpw6Oevbsidu3b+Pjjz9GYmIi6tevjw0bNqBq1aoAgMTERL2cR/Pnz0d2djaGDx+O4cOHa7b369cPy5Ytc3T1hRBCCFEEOXWeo8KQkpICf39/KJVKGXMkhBBCOAlLPr+ddsyREEIIIYQ9SHAkhBBCCKFDgiMhhBBCCB0SHAkhhBBC6JDgSAghhBBChwRHQgghhBA6JDgSQgghhNAhwZEQQgghhA4JjoQQQgghdEhwJIQQQgihQ4IjIYQQQggdEhwJIYQQQuiQ4EgIIYQQQocER0IIIYQQOiQ4EkIIIYTQIcGREEIIIYQOCY6EEMLZERV2DYQoViQ4EkIIZ3TpEjB1KlC1KvDRR9rtKpUES0IUkARHQgjhLDIygJUrgYgIoHp14OOPgStXgGee0Zb5808OmAYNAv74A7hzp/DqK4STcivsCgghhMiHUsmtRD//rB/sPPMMMHAg8NRT2m1RUUBCArB4MT9cXPj5iAigc2egeXPAzQn/9A8fDiQlAZmZ/MjI0H5frRoHgmpLlwLlygFdutjuWjMygIsX+XtXV35dXVz4ez8/oHRpfi4nh++XuztQsqRtzi0cTkEk7a+WSElJgb+/P5RKJfz8/Aq7OkKI4ionhz94ASArC6hShYODihWBt97iR/XqefdLTwd27gQ2bwY2bQJOndJ//uJFDibUZX187Hsdlrp0iVu/7tzR7y6sWpVbyQypW1d7nRkZQIUKvH+FCkD//sCAAUCNGtbXac8e4LnngJQUw8+PHQvMmsXfJyTwvQKAJ57goDQiAmjXToKlQmbJ57cERxaS4EgIYVfnzwORkcDevcCJE9oA6ddfuXWic2ftNnNcvaoNlC5dAg4c0D7XvTtw/Lj2A7x9e6BUKRtejBmIgNhYDojWrQOOHuXt3t7ArVva4G3ZMuDBA8DDQ/vw9OSv/v7A009zuXv3gE8+AX76ifdXa9+eW9lefhmJ97xx5Qqwfz+/JOqGKDc3wCU7Ew/OXcUDlQcelKmEe/eA1LvZcDlxFK4KFZ5yi0Erl71o47IbFRRJHMSOGgXMnMnnuXwZCAnJe53u7kDLllz25Zft8EKK/EhwZEcSHAkh7CI+Hvj0U+DHH/kDFwC2bNEfT2RLKhUQGAjcvq3d5uLC3W4REdwl1aKFfc4NvsQ7ny/Cze9WIDkxG8kIRDICcROBSA5uhGul6uGqezXcUbrh4UOgaVOgY0fgpZe0DV8mZWYC69dz1+KmTZpB6scHfI23jo5BdHTBr6FGDaB1a360agXUqgUoQPzapqQA27drA9P4eN5p/nzg7bf5+4QE7gbt1AmoXLngFRImSXBkRxIcCSFsKiEBmD6dP8Szs5EDF/zz5HtI7fo6qr/YAJ5eCgQHA8HBdjh3aiqwYwd/gG/eDMTFaZ9r3Zq759R++w2oU4e7sLy8zD9HdjZ3eR0+jAvrT+JL90nYcjQA589bN6nO3R3o0QN49VWO37y989/n9tGr+G3SMSzbUgnRmQ21x0ImWmMnquIKfJEGH6TDGw/gHVAC3k3qwPuV57BmnQs2bjSvboGBQFgYv0SNG3NPoK8vP1cp4wICYzcD3bpx1ygAfP89MGIEf1+xIlC7tvbxxBPc0uTvb/6LI0yS4MiOJDgSQtjM2bNAgwZAZiZuIgCRpWbi+3tvIBOeesXCwoApU/izsmxZO9bnyhVuydi8mbupRo3i7bdu8QBngLv06tQBGjYEGjXir02bAkFB/HxSEu9/+DBw+DByYo4h6mErLEN/rEN3ZEA/sHJHJty93RAa5oLAQD5NYCCwezewdavp6vr6As8/z4HSs8/qD5/KzuYGm2XLuAEpM5O3u7lxQ01EBND7794I3PIbACC9VkPkvPgKSvZ7GXjySUChAAAkJvLD0LkvXuR67toFHDzIXXPG1KwJvPACB0whIY++Hl6FUou+BA4d4tam3Pbv55Y8gC9mxw4OnJo04ffNozoK80hwZEcSHAkhCiQzk8fJACAV4UCTofg+6RX8frcjMrPyz65Srx534agfISEO+Iw8d467go4eBe7ezfv8iBHAd9/x93/+CXTvjlOoix/RD7/gTVxHRU3RqoEPEP6MN5o1A8qU4WDlySe5pUWXoaBEpeLYa9s2YNUq/fHZ3t78erRpw9X95x/9HsPGjXkM++uva+M8LFrE3V8vvMB9YgWQkcHx4MSJHDCZy9cXqBCUg4aVbqNrpWN4xm0HAm+dgvflOI661LPgRo8Gvv1Wu2PNmkDPnsBrr0mgZCYJjuxIgiMhhFVu3wa++AL46Sc8OHQCv20qg++/B44c0RZp3JjHSEdEcPx09SqPVT57lsudOZP3sOXK8X4NG/JnZLt23CphF0TAtWvAsWP8OHqUv44fDwwYgDt3gBU/3MOyyEQcul9Xs1uZMoTevRXo1w8IDbXN5zgRN7j88Qc/Ll82XK5pU+6xzB182YtuUHf/vvbntDQeK37pEj8uXwZu3jR8jNq1eUz5s88CJUo82vjnn9x6FBcH7NvHg9PV6tThGXVlytjvwooBCY7sSIIjIYTF1q0D+vbFxdQAzMMwLPEZgTvpPFjG0xPo1YvT+OimKzLk5k2exLZ7N09eM9Td4+rKPTHh4dpHhQq2vySAA5Rdu4ANG7gHaO9ezjqgrkfXrkC/fvzV09P0sQpajzffBJYvz/vcuHHAV1/Z79wFMWqUtsHNEE9PDpRfeomHKmm6VO/fB/76C/j9d+Dff3lk+MmT2h3XrgXq1y9wa1hxI8GRHUlwJISwxN3vl+PMqO8xXTUJG/Ac6NHCBJUqASNHcgqegADLjzt+vDa1Tn4qVuSuqwYN+FGpEs/Yr1DB8oHe16/zJLr//uOv164ZLjd0KDBvnmXHLghjY4PsNpjdBnLXWaXiGOfgQR62df689jlXV24Fa9+eJzCquwYr+CpRPvMK31iAc1cFBnJTVZMmHHkPHGjnwWrOQYIjO5LgSAhhrpMfrcL709ywHt3zPDdmDPD119Yf21AwQAQ8fMgfqvv28ePECcNjfQH+vAwP53FLISE8RV79fenS3P117x7PSN+yhR+nT+sfw9VVm3lAV1FusXEGRHzv1q4F1qzRpn/KLc/rfPkyMGQIR6/qG+PrCwwbxhF1+fJ2r3tRJcGRHUlwJITIz6VLwNT+l/DzjioguEABFQgKANrBNo4KHlJTuXVq1SrL9vP15eDp6lX94Eqh4HFDHTsCHTpwku579/LuX5RbbJzRwIHAkiV5t1evzvku1TkwNW7d4qhq3jweuAZwP90vv3AuhMfQYxUczZ07F1988QUSExPx5JNP4ptvvkHr1q0Nlk1MTMT48eMRHR2Nc+fOYdSoUfjmm28sOp8ER0IIY27c4JRFP/ygHXvzYrVj6PN5A1Srrj8K2ZHBQ+5WpowMnvX18CFP1lIPElY/kpIMH+eFFzhHpXoClXAc3Xt46hSnKNi6VZsrqlUrnin33HO5BrwT8bik6dN5BPuFC9qEk7pL1DwGLPr8Jie2YsUKcnd3p4ULF9KpU6do9OjR5OvrS5cvXzZYPj4+nkaNGkU//vgjNW7cmEaPHm3xOZVKJQEgpVJZwNoLIYqLe/eIPvyQyNdXRfxpRNSxI9HBnQ+IVKrCrp7FRo4kzXXoPsaNK+yaCV1xcUSDBhG5u2vvUYMGRL/8QpSVlauwSsU76HrxRaJevYiOHXNUlQuVJZ/fTt1y1Lx5czRt2hTzdEb91a1bF927d0dkZKTJfdu1a4fGjRtLy5EQwmoPHnCS48hIXucUAJ6qdB2RyyqgQ4fCrVtBOOPg5sfZtWvAN99wi+X9+7wtJAR4913O7WRwbeH4eJ7lpg4BunUDPvgAaNbMQbV2vMeiWy0zMxM+Pj74448/8NJLL2m2jx49GrGxsdixY4fJ/c0NjjIyMpChk/Y0JSUFlStXluBIiMeUOnDYsQOYMQNITubttf0TEal8B92xDoqjRznxkBAOdPcuDzGaNUubALNECQ5o/fw4iXmFCpwOqUwZoGx6Asr89zvK7P0bZXAbAbiFCj5Knj45axbwyit8kLg4YOVK3q77eOIJy5aSKWSWBEduDqqTzd26dQs5OTkIUqesfyQoKAhJxjrMrRAZGYmPPvrIZscrKEv+o5P//hxs7VqefztsmHwwFmNffpl7Cj1hIBZhvnIoXBUELFwk918UitKlgfff5zFj6vxJ9+9zxnDDKgMY/+jBnknfgkVXBiFhlwJ+NR4lz4yNBaZOzbt7+fLAggU8GK2YcdrgSE2RK9UqEeXZVhCTJk3CuHHjND+rW44Ky/z5gKFYbepUYNo0biG9f59nj0RGGs4zoi6raU5Vv15nz/JgPXd3TrPr5vRvD8dIT+fU/osW8c/z53M226L4B4OI7/Hu3Xx/33yzsGvkdI4f136vQA5+Rh+8gd+Qo3AFfv2F16cQohC5uxve/swznCfpzh1+3L7NX2Nj+c8YQNiKDqiJ8/Ca/QBhMdxCiqpVgcGDeQac+nH9Okdh3brxWi3PPee4C3QAp/30CwgIgKura55WouTk5DytSQXh6ekJT3umdrXQkCH8mTt/Ps/SDAnhYGjpUl52R6k0ntNkRPlV+Lj0Vyj50y1grpIjqKQkbcr5WbP4wACvyP3bb9rVox8ziYmc8XfGDJ7ZM3Ik51PL0+p27BgnWTt9moPM1q05+NAdcEJk/XoJ6lXTn39eu233bs5lok5KU7484GJkTa7sbE6Qol4dc/dunlIFcAZddXCUk8Nztu227oQTGT2a75evL/dJ6Hydsz8MUVE1AACvvpyN+UkvovTeDVC5uUM5fyXKvP5SPgcXwv7efRd444282431GsTGcvLJpCQFFiwAzp51RTpKICOD/9RUbdECaNFCf6eHD4HJk4EDB4DOne1yHYXKvmPD7atZs2Y0bNgwvW1169aliRMn5rtv27ZtnXa22q5dhmeS6D7c3YnKlCGqXFlFjRRHNdubYx9dQhVtwYsXtQf+/HOiJk2ISpTg5wICiDZuLLTrLCw5OUTt2xt+Xd9+W6fgvHlEnp78RHAw0ZYtvP3uXW2Z7Gyi1q2JPv2U6P598yvw339Eb75J5OOT9z4NHKhfKU9Potq1iTp3Jho6lOj2bW3Zhg3zXoSHB9HTTxNNnMgzWFJTedZKhQpEV69a+apZIT2dr3PSJKK//nLceXXdukW0f7/+NvU9zfX4HO9qfhw/nkj1MIN/R7y8iP79t3DqL4SN5eQQff01v60BopIliRYuNDHpUndaXHo6T9tMSXFEVS1myee3UwdH6qn8ixcvplOnTtGYMWPI19eXLl26REREEydOpD59+ujtExMTQzExMRQaGkq9e/emmJgYOnnypNnnLOzg6Pp1nk6rftNGRhJ99x1/tpw6xc+npfEbeepUoho4R9lwod/wGrnjIQFEPh6ZtP67S0QJCQbmexLR2bNEjRppPxgmTTJcrhi6coWnYJsKOmfOJMrIIKL33+eNzz1HlJxs+IBr12p3Ll+e6IcfiDIzDZc9e5bogw+IKlfWP+kTT3BErPb550Tt2hFVrUrk4pK3kmlp2rL9+hH5+3MdP/uMaOdOogcP9M+rVBI9+STv27Sp+UGcpTIzifbsIfr4Y66/h4e2zq+/ri139y6/ttev26ceDx8SrV5N1L0739AqVfgTgYh/cT79lN/zo0YRDRhAqtd60kdP/Kyp6uTJOh8UDRsSbdtmn3oKUYji4ojCw7W/op0780eGSeoPp6pVtf8sFiGPTXBERPT9999T1apVycPDg5o2bUo7duzQPNevXz9q27atXnkAeR5Vq1Y1+3yFHRxNnWr4Q3vq1Lxlr18nio4mOrI7jU6uPE5//aX9DASI3n3X+Oc0PXhANGyYtvCyZXa8qsKnUhH99BPHEQD/1/Tee0SHDvFr+PPPnD9EN175968sTihiKo9NTg7R8uVE1aoRAZQNF9pWoRcNbB1HTz6pomee4caeHwYdpCuoRCr1Cfz9+Yl9+0wfPzOT6OJFuvvnDvp3xF8U2XYDvfYa0YABRAcOEMVsv0fXE7LzfwHi44nKleNzv/SSNliwlbQ07Yur+6hYkahvX6JVq7RlIyO1LVwDBnDUX1AqFQdmQ4cSlS6tX4fGjYmuXTO628SJ2qLTpxe8KkI4i+xsoi++0Dam+vsTLV1q4k/S9u2av3UEEA0fzi3TRYRd8xytX7/e4q67Tp06wdvb2+L9iqLCznOUmAi0bMlZbGfP5qyogPkz0DIzgQkTOCcGwN3IK1cCVaoY2eH334HVq3n8kbFxLU7u5k1eJHPNGv65eXNOx//EEzqFcnKg+mQ6fvpZgQn3P0RyMo8h6taN18eqXt348TMygC0bs7Du8zj8uS8IyVTOaNky7iloXPsBGj9TFo3D3NCkCVC7tnaA5YMHwJkzPCj4xAl+HD/Ow4WMMXuZir17ebRmZian2s0nV5hJ+/YB0dHAiBHabWFh/MZt357HZD3zDK8anns81ubNwMcfA3v2aLe98ALwv//xG96c8Vvp6VxO/Xfngw+Azz7TPl+xIg/K6NOHx14ZQASMHcu/ZwAPyRs7Nv9TC1HcnDkD9OvHC+ICQNeuPEmtQgUDhe/f59/VH37gn6tX53TeRlaucCS75jlysfADUqFQ4Ny5c6hu6tPDiRR2cJSaCvj78x/upCTOW2GNdeuA/v15AHfp0hwM6I75NSo9nafAjR5dLGazrV/PkzCSk/lypk3j4FHv0q5e5YHLj3JnKRf9gY9O9sB33/F4Z09P/lswaZI22VpKCrBhA7/OGzbwfVPzdX2I53PWoRGO4n18BvV6Wy4uBJUq7we/hwf/fXnwAEhIMD7gvmRJ/fOoWbSG16+/agdpL13KbxJLqFQ81/399/lNun279o/ijRu8lLi5f0P27QO++IJfRPWfqdatec0ENzfeduMG/+XWfcTF8SjSn3/WjkrduxeIiOC8LX36cIBmYtkElQp45x3t/IS5czlDgxCPq+xs/jsyZQr//1SyJNC9O//9c3UFSpXih5sb/+x2/gwUv/4Md+UtuCIHqS/2gap1W/j6ArVu7kGlO8fh55sDP59s+PgACnf1jm5Az558Ahuz6/IhCoWCbty4YXb5EiVK0IULFyw9TZFV2N1qO3dqeyPylZ1N1LYt0TvvGBwgd/EiUViYtgX0f/8z0c2mNmAAF376aR6g46SUSqK33tJee/36REeO6BQ4epQHcn3zDY9sB3ig+s8/a4qcPEnUoYP2GEFB/FI//bR+On/1eO1hw4g2bya6fJno6OYkip+6hI7sfUDR0dx1Fx/PXxcv5uUbWrfWH5aj+6hUiVusf/iBaPduXr5C3Y0aHa0ds+3pacWY+g8/1Lah37lj/n7JyURdumgr2bMnv9AFFRfHI+E9PXmQutqGDaZnJXz8sbasSmX2WKrsbB6qBRApFERLlhT8EoQoLvr2zX9CkKUPF2STP+5SJVyhejhBDes8pAkT+G+ZLYce2nXMUf/+/SnFgpHoQ4cOpZs3b1p6miKrsIOjr7/mN1O3bmYUPnmSC/v68l98Ax4+JBo9WvsmbdSI6J9/tB+yed6Yf/xB5OfHhcuW5cJOICuLX46/1qto/jsxVMlPyR9+yKHxlVfSw+df0d8h9yyv0FAeMJ2LSkX0/POGf+FLlyaaMIEnQ1k7hGfsWMPHzm+Nq5wcoq5duWyVKsbHixvdefhwHrRkru3biSpUoAfwpL0ebWhqxB7q2lVFb71FtGmTjf7IJSXpB+Tnz/OA9Bo1+GLHj+dpNbt2Ed28Sdev87dffMFjhb7+mmjBAq7PuXN8OPXkBbXMTI7pACJXVx4uJoTQUo+5zv2oX5//4ezTh6h3b/49qlXr0T9peKBXtqzXfSrlcZ9cFDn5Bk62XM/vsVlbrTAUdrdanz7AL79wIsgpU/Ip/PPPQN++wNNPc34bE3r25OFFuWkSRuq6cAF47TXgyBH+ecAA4MMPOe+OA6kzgN+4wcOi7tzh7u6sLE7BoVRqH2lpefevjgv4Ef3QCnu4PfjuXe2Tffrw0tfBwUB4OPebeXgYrMf48bkzJrOxYw1vt+YaczNnjNm9e7xM0rlznNNz82bjyeGskZPD6Z0OTtuAQ6uv4CCewjE0RDYMn2TIEO0wBJtQqbh9P9fyBQ8fclfmpEmc1zQ/rq6cykg9POnGDW7Zj4zkXjnJJi+Eli1XaSDikRqpqdwTv3Rp3rIWDQvIx2OxtlphKezgqF49/kD6+28eFGfSmDE8mnTUKO2oUiNiY4Ft2zjlfHw8bytdmgcqT53K/cp6MjI4YFDnqHdzA/74gzuhHcRYUGKKFx6gFO6hMWLQDttxF2XQqHMwXh9bnsekWJGssSgv03LqFA8wv3+fh4lZuM4yi45G+ozZODl2MXbuc8fRo5ww7vRpHgeVm4+POtuuPjc3fiv+73+ct9KWsrKA//4DVqzgVVwMjb1S8/Xl26xeoNMUW/5hFkIY54i/ow4Njh4+fIhjx44hOTkZqlwjRbt161aQQxdJhRkc3b/PiwcS8Zso3w+Y1q25xejHH7kFyYRp0wwvSwIAlStzVD9ggIHGk337eMd9+ziqUmfbzs62+4BtY61dnTtzUOfvr334+QEZZy+h3KvtcP2d6bj7nDZ9bFEIYuxp3TpAvTazGW8FfenpQEgILt4sgQhsxgXU1Hva3R1o2ZLQLPgqmr1SGc2a8W1XJ64n4rfG/Pk8sw7ghp5hw4D33itYkJSTw0m/V6wAVq3SLrQJ8Hv2+ee50bROHf2YV32/VSpuUUxN5clsy5blPYcER0IUHw4LjjZu3Ii+ffvi1q1beQ+sUCAnJ8faQxdZhRkc7d7N8U6FCsC1a/kUzsnhqCAtjT+VnnzSZPHcUXtmJn+o/vij9oOuShX+EOnf30CQlJiojTCIeDZQSAh3t9WsCVtbswbo3ZsbsBo35un06tuhF+yoVPqzox4+dKpVpG1l6lSeHe/pye+jsDDz9iMCFg6Pxbh5NZGGEnBHJprgCF7BGnyKDzBwjD++/tq842zezEH4/v28zZIgKTube3FjYvitFhcHbNnCaRjUAgO5t7dXL+4JtWRibVFu/RNC2IZdZ6vpqlGjBr3zzjuUlJRUkMM4lcIckP3NNzxA7YUXzCh86hQX9vExOhjbHA8eEH37Lc+2Ug+QCwnhca9GZ7ZFR+tMQ3Dh6Q0GBjNba948bWLoF1/kjPUG3bxJ1KIF0bp1Nju3s8rJ4feNeqabORNOr10jevZZ7a1sg+10ESGaDZc+XGjxIGuVigdEt2ihPa6XF9GYMUTHjnGy6aVLOalpv3482bJqVR4cbWzAZv36RFFRj00SdyGElRyWIbtkyZJ0/vz5ghzC6RRmcNSnD38YTJtmRuHt23kZipYtbXLu9HQOzoKCtB9KFSsSTZnCk5ryzG47cEA7XUodJL35ZoGCJPWSKOpDvv22iQ/EhASiOnW00UDuJTMeQ/fu8RJsAFGbNqbTNvz2mzaRtKcn0VdfqijnrUf5Afz8iH7/vUB1UQdJhpZ+M/YwFiDZcjaLEKL4clhw9NZbb9GiRYsKcginU5jBUb16/GFg0RqdRptVrJOWRvTVV5wdwNAHVZ5lTA4e1J/r7u7OiXkslJ3NwZD6MFOmmEhhf/Ysz18HOEA8fdri8xVXp0/zmnwA0YgReZ+/dUs7lR3gpdY0Sw9mZfEyH5cv26w+bdoYfh8FB/NScMuXE+3dy0H31avaIFz3Ya8l2IQQxYvDpvKnp6fj1VdfRbly5dCgQQO455onPGrUKGsPXWQV1pijtDQeU6NSAdevF/44iH37eKLaX3/xQHGFgleDmDrVSJb46Ggef3T9On9vwWDtBw94fNG6dXyeuXN5wLVBR4/yrLPkZF7/IyrKxNooj6f164EXX+TvdZNg//svMHAgj71xdeXxZR9+aNvp/7nFxvLMt9yefJLHkgkhhK04bMzRwoULydXVlUqUKEFVq1alkJAQzaNatWoFOXSRVVgtR7t3a/+jzpdKZXqxUhswtgCury93yRg8vUqln3H54UNONnjpktHz3L3LmaLV3TurV5uo1O7d2sVNGzc2b2DNY2raNO1rumUL0eDB2ntYpw43+AkhRHHisG61oKAgmj59OuXYegXvIqywgqPZs/mD6/nnzSh8+jRnr37pJbvVR3epiuhoovnzeeCs+gM2IoITGJv0ySfaQeMzZhBlZOg9ffUqD7YFOObZvj2f440Zw4VbteIBNsKoq1d5sHPu4HbwYJv3xAohRJFgyed3gZZZz8zMRM+ePS1ejFZYLjqav4aGmln49m3tHHw7CA4GmjbVPt5+m6dXf/QRT/PfvJkXO4+M5LQABr30EtCmDefSmTgRaNwYt1dvx65dvLZtWBhnIQgI4Kn7bdvq7JuezklufvxRu+2rr/ixaROnMRBGzZqlWUdXT8mS2kzRQgjxuCpQVNOvXz+sXLnSVnURJlgcHJld2HY8PXlJk+PHefzRw4ecPLJpUyOrlzz5JO6u3Y6tEzfjS9+peP30ZLTsEYy2bVR45x1tbHfrlgqHfj7DgdCwYXxAPz8OrAYN0qZpdnHhrH0+Pg67ZiGEEMVPgVIY5+Tk4PPPP8emTZvQsGHDPAOyZxV0YSkBgAdjnz7N3xfl4EjtiSd4KYdffuFY5eRJHqTdvTsHTXFxwJkzwPnzwOXLCgCdHj20yuIWbiMAALAUA9B/2Y/AslwnCg7mtTHu3pXmDgu9+y6vG5ZbYQ/0F0KIoqBAwdHx48fRpEkTAMAJ9doAjyisWKNKGHb0KM9SK1+es2ObpFJxGmGg0IIjgGeV9ekDPPcc0KkTV2ndOn7kVq0aNwaFhgI1cuLw1G/jkf7ZN8iozMFR4K+NQHO9oAgNBVq04ICoRQugUiWr1kITkvlZCCFMkYVnLVQYU/m/+44X7OzalRecNSkujheT8vYGUlLsvr6ZOWJjgdWrgZUrgStXgCZNeGWR9u2BV1/lBW5NSkvjgUz2nFMuhBCiWLPk89viMUfHjh3Ls8CsKSdPnkR2dralpxE6rBpv1KhRkQiMAG4t+vRT4Nw5Xgtt/35eLPT6dTMCI4CXUZfASAghhINY/OnZpEkTJCUloVy5cmaVDw8PR2xsLKpXr25x5QSzKDgqWZKbZFq0sGudLDFkCNCtW97t0q0jhBCiKLI4OCIiTJ48GT5mzgjKNDqPW5gjPR04dYq/Nys4euEFfhQhMr5FCCGEM7E4OGrTpg3i4uLMLh8eHg5vmUlkNfVg7KAgMwZjCyGEEKLALA6Otm/fbodqCGN0u9TynZiVlsYZF80ayCOEEEIIQyS1dRFn0XijP/8EypThKWBCCCGEsIoER0WcRcHRkSP8NSjIbvURQgghijsJjoqwBw8sHIxdyJmxhRBCiOJAgqMi7OhRICcHCAwEKlbMp7BKpW05kuBICCGEsJrVwVFWVhbat2+Ps2fP2rI+Qoe6ISgszIzB2BcucEZsT0+gbl27100IIYQorqwOjtzd3XHixAlZQ82OrM6MLdmkhRBCCKsVqFutb9++WLx4sa3qInKxKjiSLjUhhBCiQAq0+FZmZiYWLVqEqKgohIWFwdfXV+/5WbNmFahyj7MHD4CTJ/l7s+Kdtm2Be/eALl3sWS0hhBCi2CtQy9GJEyfQtGlT+Pn54ezZs4iJidE8YmNjbVRF0+bOnYtq1arBy8sLoaGh2LVrl8nyO3bsQGhoKLy8vFC9enX88MMPDqmnpY4ds2AwNgA8/zywcKHhRcyEEEIIYbYCtRxt27bNVvWwysqVKzFmzBjMnTsXTz/9NObPn49nn30Wp06dQpUqVfKUj4+Px3PPPYfBgwfjl19+wZ49e/DOO++gXLlyeOWVVwrhCoyzKDO2EEIIIWzGqafyz5o1CwMHDsSgQYNQt25dfPPNN6hcuTLmzZtnsPwPP/yAKlWq4JtvvkHdunUxaNAgDBgwAF9++aWDa56/w4f5q1ldahcucDSVkWHXOgkhhBCPgwIHR/fu3cNXX32FQYMGYfDgwZg1axaUSqUt6mZSZmYmoqOjERERobc9IiICe/fuNbjPvn378pTv3LkzDh8+jKysLIP7ZGRkICUlRe9hN2fPAt9/D8DC8dXz5/N8/3Hj7Fc3IYQQ4jFRoODo8OHDqFGjBr7++mvcuXMHt27dwtdff40aNWrgiDohoZ3cunULOTk5CMq1VEZQUBCSkpIM7pOUlGSwfHZ2Nm7dumVwn8jISPj7+2selStXts0F5Hb1KtCwITByJB5sP2DZYGx1JNW0qX3qJoQQQjxGChQcjR07Ft26dcOlS5ewZs0arF27FvHx8Xj++ecxZswYG1XRtNx5lojIZO4lQ+UNbVebNGkSlEql5pGQkFDAGhtRqRLQqxdAhGODv0NODlCuHG82iUim8QshhBA2VKAB2YcPH8bChQvh5qY9jJubG9577z2EhYUVuHKmBAQEwNXVNU8rUXJycp7WIbXy5csbLO/m5oayZcsa3MfT0xOenp62qXR+vvwS+OsvRJ/3A2DmYOwLFwClkjNjP/mk/esohBBCFHMFajny8/PDlStX8mxPSEhAyZIlC3LofHl4eCA0NBRRUVF626OiotCyZUuD+4SHh+cpv3nzZoSFhcG9KGSVDggAvvwS0eAWoNCaZozdUrcaNWwombGFEEIIGyhQcNSzZ08MHDgQK1euREJCAq5evYoVK1Zg0KBBeP31121VR6PGjRuHRYsWYcmSJTh9+jTGjh2LK1euYOjQoQC4S6xv376a8kOHDsXly5cxbtw4nD59GkuWLMHixYvx7rvv2r2uZuvfH9G+bQAAofvmcLeZKdKlJoQQQthUgbrVvvzySygUCvTt2xfZ2dkAeM21YcOGYcaMGTapoCk9e/bE7du38fHHHyMxMRH169fHhg0bULVqVQBAYmKiXstWtWrVsGHDBowdOxbff/89KlSogG+//bZI5Th6mKHAyYyaAIDQ6PnAhsZA167Gd5DgSAghhLApBVF+TROGZWVlISIiAvPnz0elSpVw4cIFEBFq1qwJHx8fW9ezyEhJSYG/vz+USiX8/PxsfvyDB4HmzYEAnzQkvz8biv+9C3h4GN9h1y5g716gRw+gRg2b10cIIYQoDiz5/La65cjd3R0nTpyAQqGAj48PGjRoYO2hhA5NQ1BrXyg+eD//HVq35ocQQgghbKJAY4769u2LxYsX26ouAkZ6ybKyOA+SEEIIIeyuQGOOMjMzsWjRIkRFRSEsLAy+vr56z8+aNatAlXsc5QmOTp4EevbkqfoHDgA6aRPw779ASgrQpg0QHOzwugohhBDFUYGCoxMnTqDpo6zMZ8+e1XvOVCJGYdjDh8CJE/y9JjgKCACuXQPu3eOlRUaP1u7w1VfAli3AggXA4MGOrq4QQghRLFk9IPtxZc8B2YcOAc2aAWXLAjdv6iSAnD8fGDoUKFECOH2a02YTccG7d7m5SZYOEUIIIYyy5PPb6jFHWVlZaN++fZ4WI2E93S41vYa3wYOB8HDg/n1ty1F8PAdGHh5A/foOr6sQQghRXFkdHOnOVhMFk5gIHDkCbNrEP1esyD8nJj4q4OIC/PAD4OoKrFkD/PWXfmZsU1P9hRBCCGERma1WBMyfz61F69bxz0uX8s/z5+sUatgQGD+evx8xAti5k7+X5I9CCCGETclstSJgyBCgSxdOV5SdzQ1DFSoYmIA2ZQqwciVQrRqwdStvk+BICCGEsCmZrVYEBAfzhLTsbF47tmvXXGOO1Hx9gd27OXIKCOBtEhwJIYQQNlWg4Gjbtm22qsdjTz2EyN/fSGCkpp6pduQI7ySDsYUQQgibKlBwJGwnOZlbjUqVMqOwQgGEhPBDCCGEEDZVoAHZALBr1y68+eabCA8Px7Vr1wAAP//8M3bv3l3gyj1OJk8GUlOBmjULuyZCCCHE461AwdHq1avRuXNneHt7IyYmBhkZGQCA1NRUfPbZZzap4OPE05Nbj4QQQghReAoUHH366af44YcfsHDhQrjrfKq3bNkSR44cKXDlHhfqPEdHjvAqIervNXmOhBBCCOEwBQqO4uLi0KZNmzzb/fz8cO/evYIc+rGiznMUGgrs2qX9Xi/PkRBCCCEcokADsoODg3H+/HmE5BoYvHv3blSvXr0gh36sDBkCdOuWd3uePEdCCCGEsLsCBUdDhgzB6NGjsWTJEigUCly/fh379u3Du+++iylTptiqjsVecLAEQkIIIURRUaDg6L333oNSqUT79u3x8OFDtGnTBp6ennj33XcxYsQIW9VRCCGEEMJhFEREBT1Ieno6Tp06BZVKhXr16qFEiRK2qFuRlJKSAn9/fyiVSvj5+RV2dYQQQghhBks+v22SBNLHxwdhYWG2OJQQQgghRKEqcBJIIYQQQojiRIIjIYQQQggdBepWS01NRcmSJW1Vl2IlJycHWVlZhV0NIazi7u4OV1fXwq6GEEIUigIFR61bt8bGjRtRvnx5W9XH6RERkpKSJAmmcHqlSpVC+fLloVAoCrsqQgjhUAUKjsLCwtC8eXNs2rQJderU0WyPiYnBBx98gA0bNhS4gs5GHRgFBgbCx8dHPliE0yEipKenIzk5GQAnexVCiMdJgYKjRYsW4aOPPkKrVq2wbt06BAYG4sMPP8Tq1avRzVDK52IuJydHExiVLVu2sKsjhNW8vb0BAMnJyQgMDJQuNiHEY6XAU/mnTp0KDw8PdOrUCTk5OejcuTMOHTqEpk2b2qJ+TkU9xsjHx6eQayJEwanfx1lZWRIcCSEeKwWarZaYmIhRo0bhk08+Qb169eDu7o5evXo9loGRLulKE8WBvI+FEI+rAgVH1atXx65du/DHH38gOjoaa9aswTvvvIOZM2faqn5CCCGEEA5VoOBo6dKliImJQdeuXQEAnTt3xrZt2zB79my88847NqmgcA7bt2+HQqEosrP0zpw5gxYtWsDLywuNGzfGpUuXoFAoEBsbC6Do118IIYTjFCg46tWrV55tTZs2xd69e7F9+/aCHDpfd+/eRZ8+feDv7w9/f3/06dMn3w+2NWvWoHPnzggICND7YHzc9e/fH927d9fbtmrVKnh5eeHzzz8vnErZ2NSpU+Hr64u4uDhs2bIFlStXRmJiIurXr2+w/LJly1CqVCnHVlIIIUSRYJcM2SEhIdizZ489Dq3Ru3dvxMbGYuPGjdi4cSNiY2PRp08fk/ukpaXh6aefxowZM+xaN2e3aNEivPHGG5gzZw7ee++9wq6OTVy4cAGtWrVC1apVUbZsWbi6uqJ8+fJwc7PJ8oJG5eTkQKVS2fUcQgghbMtuy4eULl3aXofG6dOnsXHjRixatAjh4eEIDw/HwoUL8ffffyMuLs7ofn369MGUKVPQsWNHu9XN2X3++ecYMWIEli9fjkGDBmm2//LLLwgLC0PJkiVRvnx59O7dW5MHxxB1y8vff/+N2rVrw8fHBz169EBaWhp+/PFHhISEoHTp0hg5ciRycnLMPo+6+2vLli0ICwuDj48PWrZsafK+KxQKREdH4+OPP4ZCocC0adPydKvp2r59O9566y0olUooFArNPgCQmZmJ9957DxUrVoSvry+aN2+u10qqe9316tWDp6cnLl++bMYrL4QQoqhwyrXV9u3bB39/fzRv3lyzrUWLFvD398fevXtteq6MjAykpKToPaySlmb88fCh+WUfPMi/rJUmTpyITz75BH///TdeeeUVvecyMzPxySef4OjRo1i3bh3i4+PRv39/k8dLT0/Ht99+ixUrVmDjxo3Yvn07Xn75ZWzYsAEbNmzAzz//jAULFmDVqlUWn+eDDz7AV199hcOHD8PNzQ0DBgwwWo/ExEQ8+eSTGD9+PBITE/Huu++arHfLli3xzTffwM/PD4mJiXr7vPXWW9izZw9WrFiBY8eO4dVXX0WXLl1w7tw5veuOjIzEokWLcPLkSQQGBpo8nxBCiCKGnND06dOpVq1aebbXqlWLPvvss3z3j4+PJwAUExOTb9mpU6cSgDwPpVKZp+yDBw/o1KlT9ODBg7wHAow/nntOv6yPj/Gybdvqlw0IyFvGQv369SMPDw8CQFu2bDFrn4MHDxIASk1NJSKibdu2EQC6e/cuEREtXbqUAND58+c1+wwZMoR8fHw0+xARde7cmYYMGWLxef777z9NmX/++YcAGH7dH2nUqBFNnTpV83Pu94Ch+vv7++sd4/z586RQKOjatWt62zt06ECTJk3Su+7Y2FijdXEWJt/PQgjhZJRKpdHP79yKVMvRtGnTNN0Yxh6HDx8GYDgHCxHZPDfLpEmToFQqNY+EhASbHr+oaNiwIUJCQjBlyhSkpqbmeT4mJgYvvvgiqlatipIlS6Jdu3YAgCtXrhg9po+PD2rUqKH5OSgoCCEhIShRooTeNt1uM3PP07BhQ8336uUtTHXz2cKRI0dARHjiiSdQokQJzWPHjh24cOGCppyHh4de/YQQQjgX+45GtdCIESMMzoDTFRISgmPHjuHGjRt5nrt58yaCgoJsWidPT094enoW/ED37xt/Lnf2YVMf8i654tlLl6yukq6KFSti9erVaN++Pbp06YKNGzeiZMmSAHgge0REBCIiIvDLL7+gXLlyuHLlCjp37ozMzEyjx3R3d9f7WaFQGNymHrBsyXl0j6MOiO098FmlUsHV1RXR0dF5MkbrBnze3t6SQFEIIZxYkQqOAgICEBAQkG+58PBwKJVKHDx4EM2aNQMAHDhwAEqlEi1btrR3Na3j61v4ZfNRpUoV7NixA+3bt0dERAQ2bdoEPz8/nDlzBrdu3cKMGTNQuXJlANC04NmSo85jDg8PD72B4gDQpEkT5OTkIDk5Ga1bty6UegkhhLC/ItWtZq66deuiS5cuGDx4MPbv34/9+/dj8ODBeP7551G7dm1NuTp16mDt2rWan+/cuYPY2FicOnUKABAXF4fY2FgkJSU5/BqKqkqVKmH79u24ffs2IiIioFQqUaVKFXh4eOC7777DxYsXsX79enzyySc2P7ejzmOOkJAQ3L9/H1u2bMGtW7eQnp6OJ554Am+88Qb69u2LNWvWID4+HocOHcLMmTOxYcOGQqmnEEII23PK4AgAfv31VzRo0EDTDdOwYUP8/PPPemXi4uKgVCo1P69fvx5NmjTRZPTu1asXmjRpgh9++MGhdS/qKlasiB07duDevXvo1KkT3N3dsWzZMvzxxx+oV68eZsyYgS+//NLm5y1XrpxDzmOOli1bYujQoejZsyfKlSunSYa5dOlS9O3bF+PHj0ft2rXRrVs3HDhwQNPSJYQQwvkpiIgKuxLOJCUlBf7+/lAqlfDz89N77uHDh4iPj0e1atXg5eVVSDUUwjbk/SyEKE5MfX7n5rQtR0IIIYQQ9iDBkRBCCCGEDgmOhBBCCCF0SHAkhBBCCKFDgiMhhBBCCB0SHAkhhBBC6JDgSAghhBBCR5FaPkQAiYn8yC04mB9CCCGEsC9pOSpi5s8HQkPzPubPL+yaCSGEEI8HCY6KmCFDgOhofrRurf1+yJDCrpnthISE4JtvvtH8rFAosG7dukKrjxBCCKFLgqMiJjgYaNqUH6VKab8vzl1qiYmJePbZZ80qO23aNDRu3Ni+FXIS8loIIYR9SHAkrJKZmWmzY5UvXx6enp42O545srKyHHIeY6+To85vjqJUFyGEKAokOLIzIiAtzbpHdrb1+1q6nHC7du0wYsQIjBgxAqVKlULZsmXx4YcfQr0ucUhICD799FP0798f/v7+GDx4MABg7969aNOmDby9vVG5cmWMGjUKaWlpmuMmJyfjhRdegLe3N6pVq4Zff/01z7lzd6tdvXoVvXr1QpkyZeDr64uwsDAcOHAAy5Ytw0cffYSjR49CoVBAoVBg2bJlAIArV67gxRdfRIkSJeDn54fXXnsNN27c0BxT3cqyZMkSVK9eHZ6enjC05rJKpcLMmTNRs2ZNeHp6okqVKpg+fbrm+ePHj+OZZ56Bt7c3ypYti7fffhv379/XPN+/f390794dkZGRqFChAp544glcunQJCoUCv//+O9q1awcvLy/88ssvAIClS5eibt268PLyQp06dTB37ly9+hTmayGEEI8rma1mZ+npQIkS1u9v7b737wO+vpbt8+OPP2LgwIE4cOAADh8+jLfffhtVq1bVBEJffPEFJk+ejA8//BAABwqdO3fGJ598gsWLF+PmzZuaAGvp0qUAOFhISEjA1q1b4eHhgVGjRiE5OdlEve+jbdu2qFixItavX4/y5cvjyJEjUKlU6NmzJ06cOIGNGzfiv//+AwD4+/uDiNC9e3f4+vpix44dyM7OxjvvvIOePXti+/btmmOfP38ev//+O1avXg1XV1eD5580aRIWLlyIr7/+Gq1atUJiYiLOnDkDAEhPT0eXLl3QokULHDp0CMnJyRg0aBBGjBihCUwAYMuWLfDz80NUVJRe0DFhwgR89dVXWLp0KTw9PbFw4UJMnToVc+bMQZMmTRATE4PBgwfD19cX/fr1K/TXQgghHlskLKJUKgkAKZXKPM89ePCATp06RQ8ePNBsu3+fiNtxHPu4f9+y62rbti3VrVuXVCqVZtuECROobt26RERUtWpV6t69u94+ffr0obfffltv265du8jFxYUePHhAcXFxBID279+vef706dMEgL7++mvNNgC0du1aIiKaP38+lSxZkm7fvm2wnlOnTqVGjRrpbdu8eTO5urrSlStXNNtOnjxJAOjgwYOa/dzd3Sk5Odnoa5CSkkKenp60cOFCg88vWLCASpcuTfd1Xtx//vmHXFxcKCkpiYiI+vXrR0FBQZSRkaEpEx8fTwDom2++0Tte5cqVafny5XrbPvnkEwoPDy/014LI8PtZCCGclanP79yk5cjOfHy4Fccar74K/PGH9ee1VIsWLaBQKDQ/h4eH46uvvkJOTg4AICwsTK98dHQ0zp8/r9dVRkRQqVSIj4/H2bNn4ebmprdfnTp1UKpUKaN1iI2NRZMmTVCmTBmz63369GlUrlwZlStX1myrV68eSpUqhdOnT+Opp54CAFStWhXlypUDAOzatUtvEPj8+fNRq1YtZGRkoEOHDkbP06hRI/jqNMk9/fTTUKlUiIuLQ1BQEACgQYMG8PDwyLO/7utw8+ZNJCQkYODAgZqWOQDIzs6Gv7+/Q18LIYQQ+iQ4sjOFwvLuLTU3N+v3tQffXJVRqVQYMmQIRo0aladslSpVEBcXBwB6AVd+vL29La4XERk8R+7tuvUPCwtDbGys5uegoCBcunTJqvMAMHoeXbrbVSoVAGDhwoVo3ry5Xjl1N5ejXgshhBD6ZEC20Ni/f3+en2vVqmV0TErTpk1x8uRJ1KxZM8/Dw8MDdevWRXZ2Ng4fPqzZJy4uDvfu3TNah4YNGyI2NhZ37twx+LyHh4emJUutXr16uHLlChISEjTbTp06BaVSibp16xo8jre3t159S5YsiVq1asHb2xtbtmwxuE+9evUQGxurN+B8z549cHFxwRNPPGH0mgwJCgpCxYoVcfHixTyvXbVq1Rz6WgghhNAnwZHQSEhIwLhx4xAXF4fffvsN3333HUaPHm20/IQJE7Bv3z4MHz4csbGxOHfuHNavX4+RI0cCAGrXro0uXbpg8ODBOHDgAKKjozFo0CCTLSKvv/46ypcvj+7du2PPnj24ePEiVq9ejX379gHgWXPx8fGIjY3FrVu3kJGRgY4dO6Jhw4Z44403cOTIERw8eBB9+/ZF27Zt83QFmuLl5YUJEybgvffew08//YQLFy5g//79WLx4MQDgjTfegJeXF/r164cTJ05g27ZtGDlyJPr06aPpUrPEtGnTEBkZidmzZ+Ps2bM4fvw4li5dilmzZhX6ayGEEI8zCY6ERt++ffHgwQM0a9YMw4cPx8iRI/H2228bLd+wYUPs2LED586dQ+vWrdGkSRNMnjwZwToZK5cuXYrKlSujbdu2ePnll/H2228jMDDQ6DE9PDywefNmBAYG4rnnnkODBg0wY8YMTevVK6+8gi5duqB9+/YoV64cfvvtN00qgNKlS6NNmzbo2LEjqlevjpUrV1r8GkyePBnjx4/HlClTULduXfTs2VMzu87HxwebNm3CnTt38NRTT6FHjx7o0KED5syZY/F5AGDQoEFYtGgRli1bhgYNGqBt27ZYtmyZpuWosF8LIYR4XCmIJMGJJVJSUuDv7w+lUgk/Pz+95x4+fIj4+HhUq1YNXl5eVh1fd+HZMWMA9Sob9l54tl27dmjcuLHesh7i8WaL97MQQhQVpj6/c5OWoyJGd+HZXbtk4VkhhBDC0WS2WhEzZAjQrVve7cV5bTUhhBCiKJHgqIixd/eZMbrZk4UQQojHmXSrCSGEEELokODIDmSMuygO5H0shHhcSXBkQ+7u7gB4gVIhnJ36fax+XwshxONCxhzZkKurK0qVKqWXF8eSpTOEKAqICOnp6UhOTkapUqWMZkgXQojiSoIjGytfvjwAaAIkIZxVqVKlNO9nIYR4nEhwZGMKhQLBwcEIDAxEVlZWYVdHCKu4u7tLi5EQ4rElwZGduLq6yoeLEEII4YScdkD23bt30adPH/j7+8Pf3x99+vQxudp7VlYWJkyYgAYNGsDX1xcVKlRA3759cf36dcdVWgghhBBFntMGR71790ZsbCw2btyIjRs3IjY2Fn369DFaPj09HUeOHMHkyZNx5MgRrFmzBmfPnkU3Q+mohRBCCPHYcsqFZ0+fPo169eph//79aN68OQBg//79CA8Px5kzZ1C7dm2zjnPo0CE0a9YMly9fRpUqVczax5KF64QQQghRNFjy+e2UY4727dsHf39/TWAEAC1atIC/vz/27t1rdnCkVCqhUChQqlQpo2UyMjKQkZGhtw/AL7IQQgghnIP6c9ucNiGnDI6SkpIQGBiYZ3tgYCCSkpLMOsbDhw8xceJE9O7d22QEGRkZiY8++ijP9sqVK5tfYSGEEEIUCampqfD39zdZpkgFR9OmTTMYiOg6dOgQABhMrkhEZiVdzMrKQq9evaBSqTB37lyTZSdNmoRx48ZpflapVLhz5w7Kli1r8wSPKSkpqFy5MhISEopll51cn/Mr7tco1+f8ivs1yvVZj4iQmpqKChUq5Fu2SAVHI0aMQK9evUyWCQkJwbFjx3Djxo08z928eRNBQUEm98/KysJrr72G+Ph4bN26Nd8X39PTE56ennrbTHXD2YKfn1+xfNOryfU5v+J+jXJ9zq+4X6Ncn3XyazFSK1LBUUBAAAICAvItFx4eDqVSiYMHD6JZs2YAgAMHDkCpVKJly5ZG91MHRufOncO2bdtQtmxZm9VdCCGEEMWDU07lr1u3Lrp06YLBgwdj//792L9/PwYPHoznn39ebzB2nTp1sHbtWgBAdnY2evTogcOHD+PXX39FTk4OkpKSkJSUhMzMzMK6FCGEEEIUMU4ZHAHAr7/+igYNGiAiIgIRERFo2LAhfv75Z70ycXFxmtllV69exfr163H16lU0btwYwcHBmsfevXsL4xLy8PT0xNSpU/N04xUXcn3Or7hfo1yf8yvu1yjX5xhOmedICCGEEMJenLblSAghhBDCHiQ4EkIIIYTQIcGREEIIIYQOCY6EEEIIIXRIcORAc+fORbVq1eDl5YXQ0FDs2rXLZPkdO3YgNDQUXl5eqF69On744QcH1dR6llzj9u3boVAo8jzOnDnjwBqbb+fOnXjhhRdQoUIFKBQKrFu3Lt99nOkeWnp9znb/IiMj8dRTT6FkyZIIDAxE9+7dERcXl+9+znIPrbk+Z7uH8+bNQ8OGDTUJAsPDw/Hvv/+a3MdZ7h9g+fU52/3LLTIyEgqFAmPGjDFZrjDuoQRHDrJy5UqMGTMGH3zwAWJiYtC6dWs8++yzuHLlisHy8fHxeO6559C6dWvExMTg/fffx6hRo7B69WoH19x8ll6jWlxcHBITEzWPWrVqOajGlklLS0OjRo0wZ84cs8o72z209PrUnOX+7dixA8OHD8f+/fsRFRWF7OxsREREIC0tzeg+znQPrbk+NWe5h5UqVcKMGTNw+PBhHD58GM888wxefPFFnDx50mB5Z7p/gOXXp+Ys90/XoUOHsGDBAjRs2NBkuUK7hyQcolmzZjR06FC9bXXq1KGJEycaLP/ee+9RnTp19LYNGTKEWrRoYbc6FpSl17ht2zYCQHfv3nVA7WwLAK1du9ZkGWe8h2rmXJ8z3z8iouTkZAJAO3bsMFrGme+hOdfn7PeQiKh06dK0aNEig8858/1TM3V9znr/UlNTqVatWhQVFUVt27al0aNHGy1bWPdQWo4cIDMzE9HR0YiIiNDbHhERYTQB5b59+/KU79y5Mw4fPoysrCy71dVa1lyjWpMmTRAcHIwOHTpg27Zt9qymQznbPbSWs94/dYLYMmXKGC3jzPfQnOtTc8Z7mJOTgxUrViAtLQ3h4eEGyzjz/TPn+tSc7f4NHz4cXbt2RceOHfMtW1j3UIIjB7h16xZycnLyLIobFBSEpKQkg/skJSUZLJ+dnY1bt27Zra7WsuYag4ODsWDBAqxevRpr1qxB7dq10aFDB+zcudMRVbY7Z7uHlnLm+0dEGDduHFq1aoX69esbLees99Dc63PGe3j8+HGUKFECnp6eGDp0KNauXYt69eoZLOuM98+S63PG+7dixQocOXIEkZGRZpUvrHtYpBaeLe4UCoXez0SUZ1t+5Q1tL0osucbatWvrrYUXHh6OhIQEfPnll2jTpo1d6+kozngPzeXM92/EiBE4duwYdu/enW9ZZ7yH5l6fM97D2rVrIzY2Fvfu3cPq1avRr18/7Nixw2gA4Wz3z5Lrc7b7l5CQgNGjR2Pz5s3w8vIye7/CuIfScuQAAQEBcHV1zdOCkpycnCciVitfvrzB8m5ubihbtqzd6mota67RkBYtWuDcuXO2rl6hcLZ7aAvOcP9GjhyJ9evXY9u2bahUqZLJss54Dy25PkOK+j308PBAzZo1ERYWhsjISDRq1AizZ882WNYZ758l12dIUb5/0dHRSE5ORmhoKNzc3ODm5oYdO3bg22+/hZubG3JycvLsU1j3UIIjB/Dw8EBoaCiioqL0tkdFRaFly5YG9wkPD89TfvPmzQgLC4O7u7vd6mota67RkJiYGAQHB9u6eoXC2e6hLRTl+0dEGDFiBNasWYOtW7eiWrVq+e7jTPfQmuszpCjfQ0OICBkZGQafc6b7Z4yp6zOkKN+/Dh064Pjx44iNjdU8wsLC8MYbbyA2Nhaurq559im0e2jX4d5CY8WKFeTu7k6LFy+mU6dO0ZgxY8jX15cuXbpEREQTJ06kPn36aMpfvHiRfHx8aOzYsXTq1ClavHgxubu706pVqwrrEvJl6TV+/fXXtHbtWjp79iydOHGCJk6cSABo9erVhXUJJqWmplJMTAzFxMQQAJo1axbFxMTQ5cuXicj576Gl1+ds92/YsGHk7+9P27dvp8TERM0jPT1dU8aZ76E11+ds93DSpEm0c+dOio+Pp2PHjtH7779PLi4utHnzZiJy7vtHZPn1Odv9MyT3bLWicg8lOHKg77//nqpWrUoeHh7UtGlTvSm2/fr1o7Zt2+qV3759OzVp0oQ8PDwoJCSE5s2b5+AaW86Sa5w5cybVqFGDvLy8qHTp0tSqVSv6559/CqHW5lFPm8396NevHxE5/z209Pqc7f4ZujYAtHTpUk0ZZ76H1lyfs93DAQMGaP6+lCtXjjp06KAJHIic+/4RWX59znb/DMkdHBWVe6ggejSySQghhBBCyJgjIYQQQghdEhwJIYQQQuiQ4EgIIYQQQocER0IIIYQQOiQ4EkIIIYTQIcGREEIIIYQOCY6EEEIIIXRIcCSEEEIIocPpg6O5c+eiWrVq8PLyQmhoKHbt2mW07Jo1a9CpUyeUK1cOfn5+CA8Px6ZNmxxYWyGEEEIUdU4dHK1cuRJjxozBBx98gJiYGLRu3RrPPvssrly5YrD8zp070alTJ2zYsAHR0dFo3749XnjhBcTExDi45kIIIYQoqpx6+ZDmzZujadOmmDdvnmZb3bp10b17d0RGRpp1jCeffBI9e/bElClTDD6fkZGhtyKySqXCnTt3ULZsWSgUioJdgBBCCCEcgoiQmpqKChUqwMXFdNuQm4PqZHOZmZmIjo7GxIkT9bZHRERg7969Zh1DpVIhNTUVZcqUMVomMjISH330UYHqKoQQQoiiISEhAZUqVTJZxmmDo1u3biEnJwdBQUF624OCgpCUlGTWMb766iukpaXhtddeM1pm0qRJGDdunOZnpVKJKlWqICEhAX5+ftZVXgghhBAOlZKSgsqVK6NkyZL5lnXa4Egtd9cWEZnV3fXbb79h2rRp+PPPPxEYGGi0nKenJzw9PfNs9/Pzk+BICCGEcDLmxAhOGxwFBATA1dU1TytRcnJyntak3FauXImBAwfijz/+QMeOHe1ZTSGEEEI4Gaedrebh4YHQ0FBERUXpbY+KikLLli2N7vfbb7+hf//+WL58Obp27WrvagohhBDCyThtyxEAjBs3Dn369EFYWBjCw8OxYMECXLlyBUOHDgXA44WuXbuGn376CQAHRn379sXs2bPRokULTauTt7c3/P39C+06hBBCCFF0OHVw1LNnT9y+fRsff/wxEhMTUb9+fWzYsAFVq1YFACQmJurlPJo/fz6ys7MxfPhwDB8+XLO9X79+WLZsmaOrL4QQQogiyKnzHBWGlJQU+Pv7Q6lUyoBsIYQQwklY8vnttGOOhBBCCCHswam71UQh++knQKkEnn8eqFatsGsjhBBC2IQER8J6330HHD4M3L8PDB0KlC5d2DUSQgghCky61YR1MjKAo0f5+/ffB9auLdz6CCGEEDYiwZGwzrFjQFaW9uc9ewqvLkIIIYQNSXAkrHPokP7PZi72K4QQQhR1EhwJ66iDo3fe4a9nzgC3bxdefYQQQggbkeBIWEcdHHXpAtSuzd/v31949RFCCCFsRIIjYbkHD4CzZ/n7p54C1GvZSdeaEEKIYkCCI2E5b2/gzh0ehF2+vARHQgghihXJcySsU6KENihq3x4YPx5o165QqySEEELYggRHouBq1AC+/LKwayGEEELYhHSrCcu9+iowZgxw40Zh10QIIYSwOQmOhGVu3QJWrQJmzwY8PbXb09KA//7j54QQQggnJt1qwjKHD/PXWrWAUqW02w8eBDp1AipXBnr0KJSqCSGEELYgLUfCMur8Rk89pb/9qacAV1cgIYEfQgghhJOS4OhxMGAA0LQpkJJS8GOpg6NmzfS3lygBNGrE3+/bV/DzCCGEEIVEgqPiLicHWLoUiIkBliwp2LGIjLccAZLvSAghRLEgwVFxp1Rqvy9oi861a0BSEnefNW6c9/mnn+avEhwJIYRwYhIcFXdlygC7d/P3UVFAdrb1x7p6FQgOBurXB3x88j6vbjmKiQHS060/jxBCCFGIJDh6HLRowUHS3bsFaz1q0QK4fh3Ytcvw85UrAxUrcgB28KD15xFCCCEKkQRHjwNXV+C55/j7v/8u+PFKljS8XaEAFi3ilqNWrQp+HiGEEKIQSJ6j4m7GDOCvv7g77PXXrV//jIi/KhSmy3XpYt3xi7Lr1wFfX8Dfv7BrIoQQwgGk5ai4O3qUB0i3bAksXw48+6x1xzl3DihfnpcOUQdKj4MlS4AnngA++aSwayKEEMJBJDgq7q5e5a+VKpkslpgIHDmS95GY+KjAoUNAcjIfL7/Wo59+At56C7hwoeD1LyzqnFAVKvDSKN9+ywGiEEKIYk+Co+JOna26cmVu8TlxAvjttzzF5s8HQkPzPubPf1TAVH6j3BYvBpYtA3butMklONzu3UDVqsDKldxN+OyzQFYW8O67hV0zIYQQDiDBUXGmUnFuIoBbjs6dAxo0APr3B1JT9YoOGQJERwObNvGyafv3889DhjwqYElwpJ7Sv2ePTS7DoW7eBHr2BO7d47FaAPDVVzyoff16XlxXCCFEsSbBUXF24wZPq3dx4QHZtWoBNWsCmZl5PuSDg3mFkaVLOYb67z/+OTgYfIyYGC6Ye9kQQ5w1U3ZODvDmmzwAu04d4IcfeHvdusDw4fz92LEFyxUlhBCiyJPgqDhTjzcKDgbc3His0PPP8zYDU/pzcrjlCOBxyJpx1ydPAg8eAH5+HGDlJzycv54+Ddy5U7BrsKF8x1V99hmweTPg7Q2sWsXrxalNncq5ok6c4HQFQgghii0Jjoqz9HQeO1O9unabOjj65x/udnskMRFYsYLzRALAxYs8dCgxEdoutbAwboXKT0AAz/ACuH+uiDA5rmrLFg6AAGDePODJJ/V3LlMG+OgjwN0duHXL4XUXQgjhOBIcFWdt2wKXLgE7dmi3tW7NSRxv3OBBRY/Mn889SroGD34UOJQqxfu1bWv+uYtg19qgQdrclAoF8Msv/BIMe/kG0Ls3N5UNHAj062f4AEOGAKdOAR9+6LhKCyGEcDinD47mzp2LatWqwcvLC6GhodhlbGkLAImJiejduzdq164NFxcXjBkzxnEVLUy6U+89PIDOnfl7na61IUN4dRAA6NCBv3p7PwqYevTgmWdTpph/TnVwpB4QXgR89JF2mTkiYMIEnrGvKlUG6NsXaNQI+O474wdwd+cxW0IIIYo1pw6OVq5ciTFjxuCDDz5ATEwMWrdujWeffRZXrlwxWD4jIwPlypXDBx98gEaNGjm4tkWIumtNZ1B2mTKcLxIAvv6aY4AHD7TBhMV69eLxRkuXFqyuNjJvXt6hQteuAe3bAz8sdge++ILXnfP2Nu+AR45IC5IQQhRTTh0czZo1CwMHDsSgQYNQt25dfPPNN6hcuTLmzZtnsHxISAhmz56Nvn37wt/MpSAyMjKQkpKi93AaPXpwC07uxWZfeAHYuJHH2Tyyfz8HQ0FBQP36PNsfAJYtygaUSsvPXbIkULq09XW3oU2bgJEj+fvhw7kr7ZdfAHc3HnOlmXxmbmCUnMyDzqdP5wHcQgghihWnDY4yMzMRHR2NiIgIve0RERHYa8NxLpGRkfD399c8KleubLNj292hQ3kDI4CbiTp3Bry8NJvUcdIzz3AvXN++/HXHHjdcLNVEJ+GRczl5EnjtNZ6J168f95o1bQq80SYBczzGAwBmzCBs327BQQMDZWq/EEIUY04bHN26dQs5OTkICgrS2x4UFISkpCSbnWfSpElQKpWaR4I643RRl5PD+XqAfJcOAbTBkXq8UeXKQMeO/P2P6MfLaFhq61YexD1ggOX72kByMvcgpqTwePL58x8Nv8rMBF57DYPTv0HfMn9DpVKgVy+dKf3mmDwZKFuWB2hr0ogLIYQoDpw2OFJT5Frni4jybCsIT09P+Pn56T2cQu4EkLk9eAD8739A06ZITX6Agwd5szo4Anh5NICDI1WoGZmxDdm5U6/7zlEePgS6d+fJejVqAGvWAJ6ej56cNAnYvx8Kf3/M21UfDRrwy9WzJ68SYpbSpbWL0U6Zos2BIIQQwuk5bXAUEBAAV1fXPK1EycnJeVqTHkvqBJAVKnACyNy8vDixUUwMds49gexsTocUEqIt0r29Ev64h8sIwfbMlpbXoVkzXnbjyhVtfRyAiBur9u3jLAT//MOplwAAP/4IzJql+d6nXghWreIhUrt2AR98YMGJBg/mAVp37vBUOCGEEMWC0wZHHh4eCA0NRVRUlN72qKgotGxpxQd5caPu/jPWpaaTLXvLWh5krttqBADep6LRCysAAEvXlrK8DiVK8PR4wKH5jj76iNfWdXMDVq8Gatd+9MS6ddouvokTgRdfBMD5Kpcs4c1ffMHFzOLmpg20vv8eOHvWRlcghBCiMDltcAQA48aNw6JFi7BkyRKcPn0aY8eOxZUrVzB06FAAPF6ob9++evvExsYiNjYW9+/fx82bNxEbG4tTp04VRvXtS91SY2oAuTo4Os3dbrmDIxw6hLfAU/FXr+axOxZzcDLIX3/VNuL88AMPMAfA/WyjRnFW8AEDeKkQHT168NhqgAdunz9v5gk7deL+x+++089ELoQQwnmRk/v++++patWq5OHhQU2bNqUdO3ZonuvXrx+1bdtWrzyAPI+qVauafT6lUkkASKlU2ugK7GTOHKKQEKL33jNeJj2dbnhVIe6IIkpOzvX8K6+QCqA6gbcIIFq40Ip6LF/OB3/qKSt2tszu3UQeHny6//3PQIG4OKIRI4iysgzun5lJ9PTTvH+jRkTp6XatrhBCCAey5PNbQaRZXjRf69evtzj46tSpE7zNzR/jBFJSUuDv7w+lUuk8g7NNWBn6OXodeQ8Ny9/A0cRcY7WWLweiovB5iY8xYU5ltGwJ7Nlj4QkuX+aBTG5unC/Jx8dWVUdionaG2dWr3OJz7x7QpQuPM3JxAQ9KNzTmyohr13iqf3IyNwipu9vM9vAhj7Nyd7dwRyGEEPZkyee3+Z8aALp3725RRRQKBc6dO4fq0t1QZG3xeQEA0EGxDUAv/Sd79wZ690afRGDSXO4ZO3tWu6asWapUARo25K937tg0OJo/3/A46CZNHgVG8fGcz+m777RLpuSjYkUer9SpEyf3rlSJZ72pBQcbnvwHgJdjGTmS++dGjbL0coQQQhQRFo85SkpKgkqlMuvhY8MPQmEfWxJqAQA6NLrJ43EMCA7m1hgAWLbMwhMoFLwuyV9/mZVvyRJDhnAqpSef5J8DAznx98iR4Caljh2Bc+eA9983em2GPPMM0K4df//JJ0BoqPZhMqXRtWucO2DaNOD2besuSgghRKGzKDjq16+fRV1kb775ZrHoenI6OTlAtWq8xMWdO0aLXboEXLzsBjc3QpvfRz5qbnnkyBEgNlaT+Eed8+inn/jwRcGtWxwgnTzJPWezZwPlygGKu3e4pejiRR4k/fff+tdmhp9+4sSRAGc92LGDlx0xmSh80CBuJbt7lwMkIYQQTsmiMUfCScYcJSZyfiMXFyAjw+iYm8WL+fPc4Fii554D/v0XmDMHGD4cGRl8yDt3uHXGzF4qfQkJ3HpkgySd164BjRtzgKTLB2k4U6kjKl/dz01eu3dbPYvs7l0ef3TpEvcw/vKLGVXfto2bnlxducVM3awlhBCiUFny+e3UU/mFEeocR8YSQD6it2SISgUcOMBLaxBBkzL7Kc6M7enJAQJgRdcaEScbqlLFJrmA4uO5VefWLV4od+1abtU5si8Dic1f4sCodGleFNbKwCgxkc8zdSr/vHw5d7Hlu8RI+/Y8SCknBxg3jq9dCCGEU7FoQHZuDx8+xLFjx5CcnAxVrjEd3bp1K1DFRAGocxyZGONDxON1gEfBUZMmwLFjHDFVq8ZjZtzdtUkcwV1rc+ZwMHL3LscfZlEogPLlOTDau1cnK6Pl4uJ4KNHVqxz3bN0KVK366MlZ3wMHogBfX2DDBs5ebSVDg72nTuWA7Ntv89n5yy/5/Js387S5R/mkrKE7I0+X0YHht29zHqeEBE76VLeu1ecWTmL7dk7v/uST3JxarZpNWmeFeJxZHRxt3LgRffv2xa3c/RrgWWo5RWVgyuNI3XJkIgHkyZO8npi3N9CiBXi08bFjPD6nRQsu1LChzoJkHD81aAAcPw6sXAk8yrVpnpYteZ21vXu1A5gsdPw4B0bJyfyZ/99/udbDHTUKOHMGeO017TVYacgQQB3f5+QAw4Zx69TOndy45uFhYucaNYAxY4DPPweiogoUHBmbkTd1qoFhTSdPcqUvXuSfW7fmaLJsWavPL5zAP/8Av//Oy/QAgJ8f/+42bsyPNm2AWrUKs4ZCOB2ru9VGjBiBV199FYmJiXlmqUlgVMjMaDlSd6m1bv0o/lF/gP/9N3DoEH//lP5iswqFNq5ZutTCOqkzZe/aZVVX0+HDPIMsOZn/3u/YkSswArgLccECjqAKKDiYxxs1bcovw9q13FJ29CgwebIZB/jgAw6MZs8uUD2aNdPvGXz5ZR5GlWdg+N9/8wB89SD0p54C3n1XAqPHweef8xTNpk05ak9J4TfJnDk8qHD5cm3Z5GRu+nz4sPDqK4QzsDbTZMmSJen8+fPW7u60nCJDds+enOZ51iyjRV54gYvMnPloQ0oKkbs7bwwO5q+LF+fZ78YNIjc3fvrkSQvqdPs2kadnvvUyZNcuopIledfmzYnu3NF5cutWonHjiDIyLDqmNdasIU028ago+57rwQNObu7iwudTXz9AVLUq0aZNOoVnziRSKPjJdu2Ibt4keviQSKXSlnn40L4VFkVDZibR8eNEP/9MNH48UceORBs3ap9fv57fJzNmFF4dhSgklnx+W91y1KNHD2zfvt1mQZqwobJlOSt1SIjBp7OzueUF0FlPrWRJbXIf9SCXXC1HAOcS6tqVv7doYHaZMtpFWt97D9i3z2CxxETOIqB+zJvHCRlTU4G2bbkxRjPWKTmZR4nPmsUrxtrZSy9pW2z69AFu3jRzx6Qknupmpn37uAvz88+16ZlSU7XPX74MPPss8NVXj55XKjluGjqUxzkFBHBzoHrcSWoq8PTTwKefygDx4ubcOf6FVnN357F2b77JY9+iovSnlh45wl+XLpX3ghCmWBuBpaWl0XPPPUf9+vWjL7/8kmbPnq33KK6couUoH/v28T+PpUsTZWfrPDF7trZ5Yvp0o2uQrVvHRcqXN1rEMJVK26r15ZcGi0ydqq2C7qNGDaK0NJ2COTlEERH85JNP5nrSftLSiOrV49N27arfOGPQ9evc7OPiQnT0qMmi6en8z766Eah8eaIlS4iio7WPLVu4cUj9unTqRHQtIYfor7+MH3jZMu0Ow4bluunCaWVnE/n58fvr3Dnz9klJIfLx4ffCvn32rZ8QRYwln99WB0cLFy4kV1dXKlGiBFWtWpVCQkI0j2rVqll72CKvOARHn37KfxtffjnXE+fP8xNubkR37xrdPzOTqFw5Lvr33xaePCWFaPNmo09fv85BwOef6/cUxcfnKjh9Oj/p7W1h/17BHT2q7SH89lszdujRgwt36GA0mtq1i6hWLW0M07cv90Qaojp0mOY3mUfe3ioCiMqWJfrzz3zqMGeO9gV9+WXutxPO7fBhvp9+fpYFvH378n5DhtivbkIUQQ4JjoKCgmj69OmUk5Nj7SGcUnEIjtq357+N339v4MmZM/mTOp8/tm+/rf28123ZuH7dwsoYCBb++087/On11zkY07Nzp3YwzpIlFp7QNr79lk/v6ZlvgxBHdupoat06TQAYHU20ezdfozpuqVAhn4BzxQoOCAE6/fYsatJEG1ANHZpPA9offxB5eHDh1q1zDd4SRYHueyO/3yvl1K+IALrXqqtlv4Nbt/J7wN+fmyuFeEw4JDgqXbq0DMguig4dIqpUiah7d4NPp6drP6fPnLH+NEOHGu7+mjrVgoPExxO1aMF9RY9ERRH5+vKxAgKIDh7M9Qf/5k2iihW5QJ8+ZvRr2YdKRfT881yNunXN6NV7/31N/+DHHzw0+No1bmyiwS4nh2jyZG3hZ58lunePHj4kevdd7eZq1YiWLzfxwbp9O38oqrsjExJs8noI2zDWrdymDdFXXxEtXEj0++88xnpF5XfpJOrSEMy17HcwJ4dH9QP8ZhHiMeGQ4GjMmDE0ffp0a3d3WkU+OFq9mv/otWhh8OmoKH66YsWCxRXXrxPVqcPHql7dypajkSP5AIGBRNevU3w8UYkS+QRd27bxGIs6dYhSU62/ABtITtZO7Mu3hyI1lah8ebqAavRxh21Uv7722oKCiL77zsRrd/y4dnohwNFQrpa9zZvNeO3Ujh3jJqry5Q30V4rCdP060ddfG76Pph7u7vy7bfbv4JQpvGPPnva+JCGKDEs+v61OApmTk4PPP/8cmzZtQsOGDeHu7q73/Cz1zCThWPkkgNRdMqQgSXSDgzm1yvDhvMzGsWNA//4WHmTGDM7ue/w4br/yNrrcWY/79xWoUYPXfStZUv98AHhG3ZEjnImxRAnrL8AGypXjBWojIjhZY0QE5yHK7cwZYPXqEljtcQIxKAs8ugcKBd+mY8cAf38jJ/n5Z6BvX/7ew4PzOPXrl6dYp048y23ECO1MxOXLORl5nkzaDRpwYaXS6IxGUXjU969UKeCNN4C0NA6BsrM5hZFSCaTcSIcyLgkpCn/ccymDrCwFtm4FPvvMzJMMHsyJUjt1stdlCOHUrA6Ojh8/jiZNmgAATpw4ofecQlLXF558EkDqradWQIMGccbolSs5OeT588DHH/N6t2bx8QH++AMPQluh276JiIMClSpxvJSn+kQAHr2vatYseOVtpGNHzp49dy6/Bl5evN7b+fO8VN3mzZy4mpWFC3LQusIFtOxZGe26eOPTT4ELF/jZ4GAg2DeFUxSor7FLF14OpUsXTiz56HfOkLJleXr/2LGca/O//0ys1FKliq1eAmFD8+YB69bx9/fuAd9/z9/nyYj+zQJg7Fgow7tg8Sv/Yvx4zu3YuTPwxBNGlpbRVamSySSxQjz2HNCSVawU+W41Ewkg797VjmO+erVgp1EPHD10iKhyZW3zfrdulk2Eys4m6v5UAgFEpXCHTny/PW+h27eJmjXjkdpF0Icfmu7ycHMj6tKFx4skX88yOK6kBs7RvmajuMuwTRv9E5iYOajL2HgVk2NQrlwhGjiQ8xKIQvfnn3zPfH2J9u830V19/Dhtaf8JvYqVBRv3R8S/hIU0dk8IR7LbmKOjR49aNDvtxIkTlGVRIpyir7CDo3xnszz9NP+F/P33PPuuXctP1a5d8HoY+yAGiMLDeTxOflQqTrsDEHm6ZtJOtOLkS5cu6Rfq1o0LPfGEgalrhe/6dc79pE4fA/CksIgIoh9/zDspTHMPD6vo7Lz/6G6bF0ilnq4G8HgqMwMiQ8fduVM7KW3FinzGoCQna8+blGTxOYVtvfeedpZmfnT/FqjTc5QqxRk5zPbJJzz+bO9eq+sshLOwW3Dk4uJCyeZ86j1SsmRJunDhgiWnKPIKOzjKt3VAPQvFwB+7ESP4qXfeKXg9DAVpP/ygnQhVvTrR6dOmj6FOVaRQEP2xPJPoqaeImjQhunhRW+ibb7TRRnR0wStuB+rX4vvveXD19OlEO3bkE5TExOS9ic8+y9OQbJAe48UX+ZBTpphRWJ0P4JdfCnxeUTC1a2uDWktkZfHvHMC5XM3Wrx/vNHiwZScUwgnZbUA2EWHy5Mnw8fExq3xmZqaFnXwiP7qrxY8ZA3zzDX8fHAz+iK1RQzvSNxdbjjcKDs47rqFpU17io2tXXv80PBxYswZo3z7v/suW8RAagNdm7fG6O9B+PY9C9fLiJw4dAv73P/7+q6/4BEXQ/PnARx9pf1ZfV55xIrrWr+evvr48wHrUKBMDhCzXowfw55/AqlX6dTOoUycgJoaXmnjjDZvVQVgmLo4f7u68PIxRO3bw2jXt2vFSMeA1lydM4L8PX3zBK8l4eJhx0v79gR9/5IGD33zD4wCFEFAQEZlbuF27dhYPtl6+fDmC8x0d6DxSUlLg7+8PpVIJPz+/QqvHvXv8OfbPP+aVv34dqFiR46Zbt3ipM3u5eRN48UWeEOXmBixcqD+TbeNG4PnngZwcXmZt5kwDB7l3D6halafnvPwyf8oX0YH+iYna5eh0GQogNYiAPXt4HaxSpWxeJ6WSZ9NlZfGA8Hr1TBSOiuKpdhUq8ID+Ivo6F3eff84BTkQEsGmTiYI9egCrVwPTpwPvv6/ZnJEBVKvG78VFi4CBA804qUrF/1BdugT8+iuvVfg4+vRT/oeyWzedxRtFcWPR57e9m7GKm8LuViMiunaNu6/c3XmsQUpK/vv8/DO3noeG2r16RMSDstVjwwEe83voENfjUYJneuUVIz1I2dncxQQQhYRYNf5G8BhrgOjjj/MpqJsZ9NQph9RN5NWyJd8Cg5nr1VQqzo4KcHr1XL7ipNlUs6YFK4qo++o7dbKm2s7v3j3tID317IlFi4hu3Srsmgkbs+Tz29xJ16II2bqVWwaysoAPPwSqV+cFuNPTje9jyy41c3h5cZ4ddRfT4sXAU0/xavYPHvC2unWNTPsn4icCAri53w4tK4+DHj3466pV+RT09gZat+bvo6LsWidh2I0b3NIKaLvNDTp1ipt+vb35FyqXt9/mVuHz582472rqPFr//afNk+aEEhM5BVruh6FWXXzxBTBnDv+tycnhP1QNGnAyqY0bOU9JUBA34/39t8OvRRQ+CY6c0MGD/LVMGaBWLf5b+b//ATWC0/BtqSl4OGEqAO0fi+ho4N9/eZ8qVYz8sbADFxdurZ41C3B11W6vXZuHTbzzjpEd3dyAv/7iLp5mzRxS1+KoWzd+KY8dA86ezadwp05AnTr8oSsc7q+/+HM6NDSf9EPqDJEtWxocVFSiBDB6NH//2WeP0oPlp3p1HixIxElHndT8+fz65X7Mn5+r4PbtwMSJnMV261b+QzplCv+inDnDf7QaN+agKSqKB1CKx48DWrKKlaLQrda8ObcAN23Ks1SWLOHeJ3UXVqUSd+mHH4zn37E4D4oNbN3Kq8f7+lqxOK2wWufOfM8/+yyfgo/ZAtJFjXqdvny7QF99lQt+8onRInfuaJeSMbmIsa6VK3kaa2ys2XUuaq5fJxozRvt3zteXKCyMZ+muW0eUmEicrqJ8eS7Qr5/pA547RzRjBo9jUDtypMjmWxP5s+Tz26IB2aLwB2RfvsytRVlZQFiY9r+ismWBja8sxKfRXXAVPFOtcmVgwADuxvr8c/4vasGCfAYK24F6wHJmJvDuu5zJF3B8PR5HixbxShFNm3ILoih60tK4B/nhQ+DoUaBhQyMFiYDy5TmD+s6d2q5QAyZM4N/58HAe9/84jLH/+mtg3Dj+3sWFx5rnVsXrBpo/3IGwgEso99FIPNHIW6+x1OTfpNWrua+6Zk1uYdJtDhdOwe4DsjMzM6ldu3YUFxdnze5OrbBbjgYPNtEa1LIlPYAnzX4rhoKCtM+ps2Ln+1+pnViVuVnYxM2bRK6u/HqblXLs4UP9JJzC7tas4ftTrVo+iarj4riglxffJxMSE7Vj7Ldvt219i6I1azhfmqG/M02aENWvT6SAymjiWrP+JqWmEpUpY10iKlEk2H1Atru7O06cOCFrqBWCatX469NPc0uA+jFkCICrV+GFDIx6+yEuXuQxhwEB2v+gOnYsnDoPGaJfV706C7sKCOB0OAD/42vSpk08/qJXL3tXS+j480/++uKL+bTwPPEENx2vWwd4epo8Zvny2qn8Zi9GSwTs3s2LBZqa3VHEbNnCb1kifg0PH9b/O/PPP8Dxb7ZACX9sRXtEvhaDLl24tV1t/Hgz/ibpDuiKjDRzQJdwWtZGYOPGjaMJEyZYu7vTKuyWo759jfyHk52tbSLQWTgtJYWn99arJ8snPa7mzeO3RbNm+RS8fFnb1HjvnkPq9rjLyuKxeADRtm22PXZ8vPZPwsGDZuyQk6MdvPjrr7atjJ0cPKgdX/Xyy/x6GjR3Lr8YgwYREY9POnyYaNIk7fikTZvMGA95+7b2hP/8Y9NrEfbnkKn8mZmZmDdvHkJDQzFkyBCMGzdO7yHsQz1TLc8krhs3eHaFqyv/2/hIyZLcD69OnC0ePy+9xPf+4EFueDCqShVunVCpgG3bHFa/x9nevcDt29xg16qVbY8dEqJNeB4ZacYOLi7abK3Lltm2MnZw+jRnEr9/n1OULF/OszMNGjaMB189GvA4fz6P2VS/LmlpQOfOBma25VamjLZ5yawXVTgrq4OjEydOoGnTpvDz88PZs2cRExOjecTGxtqwiqbNnTsX1apVg5eXF0JDQ7Fr1y6T5Xfs2IHQ0FB4eXmhevXq+OGHHxxU04JTKnkcIGAgxcmDBzxAs3lzzUBB3bwf9+7lk/dDFFtBQUCbNvz9mjX5FO7Uib9KviOHWLeOv3btauKDHeDERd26cW4eC0ycyIHx2rWcIilfujmPrlyx6FyOdPkyv1Vv3+a/hWvXGulpzMnRft+8uSZVhW5X/48/aouYtULRuHGcRmH3bn6I4skBLVl2s2LFCnJ3d6eFCxfSqVOnaPTo0eTr60uXL182WP7ixYvk4+NDo0ePplOnTtHChQvJ3d2dVq1aZfY5C7Nb7b//tAM3zSEDoYXad9/xvW/ZMp+C69ZxwVq1HFKvx5lKpV0sNt8/QQsWcME2bSw+z8sv8659+pi5Q7t2RABde+fTPItLG+12ys4m2ryZu5rMSdlfADdu8NsTIKpb10Qi640beST2yZP5HnPgQD5e48ZmZhYfPJioQgX+fRFOw5LPb6cOjpo1a0ZDhw7V21anTh2aOHGiwfLvvfce1alTR2/bkCFDqEWLFkbP8fDhQ1IqlZpHQkJCoQVHn33Gv8A9e5pXXr1avNl/4ESxde2aNjjWGZKW17172oEqDpi19ji/R48f55fZ05MnQpnUuzcXnjzZ4vMcPsy7uroSXbxoxg7LlhEBdBY1CblmeBn9x+rcOe10MTc3olatiD76iGjPHhMDgSx37x7PPgOIqlQhSkgwUjAhQbvMyujR+R43OZmoVCkuPneuGRW5cyffGYOi6HFYcHT37l368ssvaeDAgTRo0CD66quv6J6DBnJmZGSQq6srrVmzRm/7qFGjqI2R/65at25No0aN0tu2Zs0acnNzo8zMTIP7TJ06lQDkedg8ODp3jujdd4mMBHZERN278y/vrFkGnpTR1iIfTz/N759vv82nYHg4F1y0yO51epxbNz/9lK/1uefyKahSEVWsyIW3bLHqXOpkoMOG5V827sh9+tR9KjVBtCaoataMxzL/+uujpQ4vXSL68Uf9Hd94g6hSpbw308/PJjc0PZ0bzgCiwEDObGBQZqb2zd6kCS/0aIY5c3iX0qU5BYYofhwSHB06dIjKlClDFStWpJdeeom6d+9OlSpVorJly1J0dLS1hzXbtWvXCADt2bNHb/v06dPpiSeeMLhPrVq1aPr06Xrb9uzZQwDoupF/VR3WcrRnD/9mliljtF23QgWj603yf5YVKxItX27beoli4+uvzeyZ+eknzgx89qxd66NUEn3xBVGDBtrP0UGDuKXDaMtRRgZHd506GflFcB5PPcXXvGBBPgXPn+eC7u5EaWlWnWvHDm0rVe7XVqUiOnGCaNo0/Xth6vEkjtNgLKClX9ykXbv4nqlb/Y7/eYEufTCf0p/vwZEGQDRzpvaEiYlEb73F77MjRzjqMUC3VXH/fqLWrflQJUvybgY9eEA0frw2KDt/3uzXKCuLqFEj3nXwYDN3ys4m+u03i84jCo9DgqNWrVpR//79KUunyTQrK4v69etHrVu3tvawZlMHR3v37tXb/umnn1Lt2rUN7lOrVi36LNc6Crt37yYAlJiYaNZ57TbmKCuLf5kBXr4+l4QEbdO4wb+P6iW9//jDtvUSxYZ6pr5C8WgphUKQk8NLyfTpQ+Ttrf2wVffkAbyqg+6KDZodf/1VO0indGminTttVi+ruveOH+dlPFauJDpzxszBKkzdzWnWvVi0iAs//bTZxzd0PvUHf9++HMwsX87LbdSpox/4uLkR1aqWRUAO3xtkUhgO0nP4m2ohzqzgCSCaMIH4NTl0SL8v9+ef9QsqFEQ1ahC98ALRe+8RHT1KRMZbFQf0y+KW9g0b9Lu2/vc//UyQFowlVdu1S1sls9IfqLPyPkoRIIo2hwRHXl5edPr06TzbT548Sd7e3tYe1myO6lbLza4Dsl98kX/RDCyEtXq1dsCgQVWqcIF9+2xfL1FsqNfl+/57+53DUKDx99/ca1ytmv4HnXpYSO5HixaPeopVKqJ//+U3vvrJUqWIcrUAF5TF3XtKpbarS/3w8eEXePbsfM+nzj1lYrijVp8+XPiDDyy4In3Grk/98PDg9d2WLeNUPup7eOqXw5QRVFlTUOXhQcmvj6I/Z8fThAncmuPlZfy45cpxTNe/P9+yBQuI1syMowu9JlFKo1aU7FeNjqE+/YvOtBADaSqm0qBO8dSlCwdtft6Z2gAa2bS63BBSublpT3DihPYiZ8zQthhFRlr9Wqlf7mbNzFhycPdubaueycF8oihwSHAUGBhImzZtyrN948aNFBgYaO1hLdKsWTMalqsTvW7duiYHZNetW1dv29ChQ00OyM7NrsGRutO7ffs8T02YwE+9/baB/YwkgBQity++MPoW05eczC01ViS6y++D2M+P38f793OLhm4QpX6fA0TDBz2knLbt9XecPp3o/n39E545Y7RrxlzXrxMtXsyfcXotKLWIXnmFF3H+9Vfuzjl/nii5xzAigDICgun+k80ox1OnGWz8eO2Bb9/mVpGXX+ZBRsnJRKQdA2TWZ3jv3twftnlzga7v8GGiJ57QVtPTk+jZZ4l++cVEzk+lkvuxypXjG5uUlKeIevjR+PG8pmvTpsaDXmsfZXGTVuA17QYvL56JpvvP4K1bPJWtgOMvr1/nSwbMHHan7u8bN65A5xX255DgaOTIkVSpUiVasWIFXblyhRISEui3336jSpUq0WgzZgfYgnoq/+LFi+nUqVM0ZswY8vX1pUuPZtlMnDiR+ujMX1VP5R87diydOnWKFi9eXLSm8p85o/03LlffWfv2Jn5Z1W30rq4WNe2Lx8/Fi/xWcXHhzxGjvv2WC3boYPE5rl/nD9xy5fQ/4Fq14u35DZtZuFDbOzI4cB3leHjxJ6+hOdtRURw0vfqqGf/mG7dvn3a2koeHfpefoYc7HlJL7KaqiOfXE9n07fAz3MWmOyBm61b9HevVI2X8bU0QduqUmRV88IAHGltJ3RK0YgWPXYyM5C4ks2YFHjhgclCzsWB44kR+KVau5N7Hvn2JQkOJ/P31y/n7cwb/rl05aP74Yw5U33yTKAQXqB+W0Cd4n4ZgHj2D/+irMVcKdK/N8dVX2pbNO3fyKbxhAxf29TWRV0AUBQ4JjjIyMmjUqFHk4eFBLi4u5OLiQp6enjRmzBh66MApjt9//z1VrVqVPDw8qGnTprRjxw7Nc/369aO2bdvqld++fTs1adKEPDw8KCQkhObNm2fR+ewaHKlURJUfNWFv3KjZnJ2t/U/m2DED+x04wE9WqmT7OoliJzSU3y7z55sodPq0tnnBwlaZjRu1Kyx4efGHp1lTyBMSiEaMILp3j5Yt0y6Y3P/VVOMx/7Zt2uYeEzM9Tbl713hLxxtv8OzQwYM5uFMv9aH7ePJJzkFmMNBISeEnv/pK0w238okPCeBWKUdNMrXnrEBLxmupy27dShQWxvNQ8itbGGkeMjM5YAP4LWmSSqXt9p02zf6VE1aze3CUmZlJ7dq1o7i4OEpLS6Njx47R0aNHKc3KmRTOxO5JIAcM4LZpnVlnJ09q/zEx+CGxahUXCA+3T51EsRIZyW+XTp1MFNKdPm5Bd86SJdoe3mbN+C1p1ofa7NnawSuPxtb8+qv2WL17m0iX8+OP2k/7hQvNrisRfwh27Mi7BgVxYGfygzgpiY4f59NMmMBdbwBR1apmDOA9cYKoVCnqjV8IIHp3nBmtH2ZOQ89PUckn5UypG7Zs0bayxsbmU3jFCi5cpowZSatEYXFIy1FAQACdtfNU36LI7sFRamqefyeXLuXfu1yNYFr//sv93iNH2qdOolg5e1bbC2uyF6B/fy74v//le0yVinP+meqKMvoB+Mcf+n1vOuk5fv9dG4C8+qqJnqUpU7QXZWYwp1JxN476H4+YmHx2OHiQyNOTdrT+gBSPZnLpPvz88u8my9y2m0rhDgFEu/73Z/6VrF6dqGFDbskrBopKkGau117Tvi1NtvJlZxPVrMmzhmVaf5HlkOBo3LhxNGHCBGt3d1qFsXzIsGFmf0YJYRb1tO7Fi00U+vVXLmR0iiTLytLOaFZ3Q+jmvTH5AXj0KM/yAnheuYFPoHXrtD1n3btzqqM8VCptFmk/P/1ZTEaox5UoFETr1+dTOCNDkwQo/aXeete1YYN2Fl6ZMjzQ3Bj1EkDlvFMoOzOflqNLl7QBn52X5BCGJSRo354//5xP4Zs3JRlvEeeQ4GjEiBHk5+dHTZs2pbfffpvGjh2r9yiuHBYc5eRo/iA2bcq/nJLCSNjKJ5/we+rZZ00USkrSRjxGRm/fv88DadXdDxalCLh5kygkRNvHZ2KZiX/+4eFP6v/i9+41EHQ9fMhPApwsyYR167SDvg1mnM9N3SwWEKCZcabr1i1tmgQfH70hg3pGjuQyAwaYcU51d2GzZmYUFvai7oYuX54n7wnn5ZDgqF27dkYf7fOdJ+y8HBIcLV/O+fH79aP0dG23gpH1dO0+c0MUP+rx1u7u+czGadiQCxpoWklK4kG1AM/usngNzm7deOcaNXjKez7efNOM7rpbt4jef99I8xI7ckTbGjB0qBn/7J84oW26MpGBPjVVO0Xf3Z0TJ+vSnW/xp7pHLSODR32vWJH3gAMGSJNxERAfr00j98YbZnQF3r7NEXcxnTlsVdfo119zIq18p/7Z12Oz8GxhcEhwtHkz/yZWrEh796g0g0WN/hGvVo0HzxqcyiaEYU8+yW+z3Etk6THyVy8uTpusumxZK3OPnjrFzaJmdIERcTXmzdOO2y5RgleheJRQ2TidX5yrV7XjzDt1MmN2fHa2tknohRfyjaQyMohef13bXTdnjva5I0e0gaRm7oo6t5m7O6cl0FWjBj9nRa4pYTsWDSLPzubR+QDnMCiGLB5UHx+v7RMv5MV6HTpb7XHjkOAoPV3Th/DNpETN32WDsrO1TUtGl6gWQt/169rByG3a5P/fn+5/i8uWaXPVVKliYgFQc1gwRkNdhyVL9PMQeXpyC1CecbDZ2dyP9Sgp4/372hXd69V7tIBqfmbN0o5jMvP3KyeHx12p6zdlCl+m+kPlxRdz1fHVV7XRnnpdSvV6QS4u0pdTyNTvuw4d+JaUKsUThI22lEybph2rVwzHIF2/TvTll9r395w5+bQcqf/QmJwe6xgyW82OHDbm6NH84t6hpwng5LoGSQJIYQVj//2NGUN05Qp/Nl+9ym+v69c5+a+h8rrJoM2ydy8nubFhndUPFxeeXaRZ91onAWP2pA/pxa5ZPBi6nJl5l4i4qcrHJ5+kUHmpVJzMUF23Hj202amnTjUwVuqZZ/jJwECO8n75hX8OC7PovML21MHRzp3a/F1BQSZSN9y+zdMfi2mr37lzfP3q93bp0jzGzmBwdPmytkt61y7edv9+oQWNMlvNjhwWHM2cSQRQTZ9rBJiYnSwJIIUV1MtJqHsALH08/TQvK2XRFOyEBP6r6urKU7ysqHPucQ6HDxOtWUP03HP69evYkXs1rg7lkefv4nNuZXLNovXLLcxDk5Bg9R9z9Rpq+XZDKJXaRILVq/Niin378npholAZC8rLljU4Np+NH8+FqlY1mS/D2VIbEGnXOM/9mDzZQOGhQ/nJZ57hn5cvJwoOtmpRYFuQ2Wp25LDg6MgRuo3Smjee0XFskgBSWEH9R3nqVI5VPD152Qz1V3d37q11dSVydckhF2STAjnk5sZ/2w4csPCPeHq6dvR2gwZ2SZR39CgPmFUnjuSHiurglObn5ehF6V6luK/LxOw4W/5nO3++tufbz8/EB2BiojYngGblXVHYcgcw//yjbTkJCzOSZeHuXe2YsS5djLbqO1NSTCKi48e17+Wvv+Z/TNSTG/J87F+5om01Uq9coc5HVrVqgddDtIbMVrMjR07l/9fvNQKInqhsIvP4N9/wm+3VV+1bH1GsWPRH+fBhIoCUKEluyLT8j7hKpZ1qVqaMBX1a1omP5zE/uVeLH/3MUUqvVpd/MJXV7+pVXmNl2zab1Ec9kLxxY14r1WTrwLlzvK6Ijc4t7OP0ae2SM888YySR+dGj2sFx331n8DiLF+uvNffZZ0W35SgnR5spo3t37fbly3mbQpFrTsHw4fyEbvbi+/e5lwPgfCIOJrPV7MiRSSA/avMfAURvvmjiXOrmW1kRWljAoub87GzKKV2GCKAzS/ZY3vyvHr3p6sprMjjI8eOcnDIoiFu7Dh8mij6UQ3cW/MF9gmq3bxO99x633KhU2hQDzZvbpPXG4tYBUy1aosg4dEg7Bumll4zctp9+4u7RXEtr3b+vnzhVveixpyengDD6e/XwIWcF7tbN4QP1lyzhOvr45E0ro76WoCD+NSKVilNRuLjkHWP422/aAzl4EpEER3bkyOBInVzv229NFPruO55utHSp3esjHmPqGVWWLqy5caN2BVkj/z3bi9lByeTJ/ISXF08lA7g74Phxm9TDGceVCPNs3apNTjpggHmx9KFD2sH5xh4GU1ulpWkTaQFEQ4bY/HqMuXVLu+jy55/nfT49XZNAntq31+lFjI/P+6KoVDxoEeCs9g7ksOBo586d9MYbb1CLFi3o6tWrRET0008/0S71qPRiyFHBkUrFs2oA08sRCOEQCxZoR2Jb4p13eL+BAx0+hsbsoCQqisfs6X46yerqwkxr12rjf1P5OrMzcyiy+35yc+PcdRUr8tqB6vfl1q3aHFytW+dqiUpJ4X+CAf08Fg5qiR00iE9Xv77x3GBnzmgn6eX76xMdrU1Rr9uKa2cOCY5WrVpF3t7eNGjQIPL09KQLFy4QEdH3339Pz5pck8C5OSo4UufNcndX0cN1/5qR6U4IO1K/IV1dDTfn5+TwFPS1a3kOu/ovu0rFXQuFnPwtXyoVL3zWpQvRK6+YzLAtRG7qLieAJxrnduUKUdug05oyr7xiOCn8sWPaAc6aQCs7Wxu8+/nxlPhhw7iV0wHNj3v2aK8tv3YPdQYKhUKVf9ymjrgc+I+IQ4Kjxo0b04+PUuuWKFFCExzFxMRQUFCQtYct8hwVHK1cye+bpwLj+Zvhw/MWUqlkfIJwnAYNiCIiiC5c4C6n2bP5D1zz5tp/GdWPYrKKvBDm0k2MuHChdvvKldoxRb5IpSXoT6oFC40eR/23H9BZgmbJEh4Bfvgw/5yZ6ZCW2Kws7QpC/fubsUNiIg10XUIAUfmATEpKMlH2xg2HthoROSg48vb2pvj4eCLSD44uXLhAnp6e1h62yHNUcKQeZz382Qv8zRNP5C109Sq351apIuurCfvTfY+pswDrPjw9OQV1377cxi7EY2biRP5VcHHhX5Hnn9f+ejRpQnRu/Dzt74o60DFgwgRtD1ps7KONplK6m5Xu3XLqBPGlS5vI6aRr/HhKgzfV9z5HAOcbK0q5iS35/HaBlYKDg3H+/Pk823fv3o3q1atbe1jxyIED/LVZtyDAxQU4exa4ckW/0NWrgErFv3suVt9KIcyj+x5r2RJ48UXgww+BlSuB06eB+/eBI0eAH38EatcuvHoKUUg++wxo2pT/LE+bBvz9t/a5rl2Bmp+/DXTrBmRkAK+8Aty+bfA40wdfQueAaDx4AHTv/qhYqVJ5C969C7z5JvDUU0B6uk2v5epVYMoU/n7mTKBcuXx2SE4G5s6FDx7g96+vw8cH+O8/IDLSjJNdvgwsX17QKtuWtRHYzJkzqV69erR//34qWbIk7dq1i3755RcqV64cfefgWSmO5IiWo6ws7Zi706eJE8IBnBRD1x9/8PaWLe1WFyGEEOZLSNCuw+bpSbRoUa6JAPkliIyLI6pUiW6jNFX3SdS0wBgcQXHvnnYUt8Vr+ZjWowcfNjzczI6J997jHcLCiFQq+vFHbSva9u0m9jt/nmeKursXcKHG/Dlsttr7779P3t7epFAoSKFQkJeXF3344YcFOWSR54jgKDZWO/YuJ4e0U4179dIv+PXXvP211+xWFyGEEOa7fp0zyM+bx4GFwVmS6gSRHh763WvHjmnTb9etS8f+u6EZzvfuu0ZO+M8/2ihk3z6bXMO//2rnX2i69Uy5eVM77vCvvzSbX3uNNwUE8KRQozNG1ev/dO1qk/ob49A8R2lpaXTo0CE6cOAApdphSYCixhHBkXrWdIcOjzbs3Kl9h+mG8OrVQG38H4MQQgjrmJ1fa9UqTnqkdugQZ5AHOJ36o0E+v/+uPcby5UZO2rcvF6hTx0i6bvOlp/PyfoCBJUGMmTSJdwgN1Rsort6c72tx5ox2XRIr1l00l0PGHKn5+PggLCwMzZo1Q4kSJQp6OAHg4EH+2rw5tN/4+gK3bgHHj2sLXr3KXytVcmj9hBBCGDZkCBAdnfcxZEiugq+8AoSF8fe7dwPPPAPcucN/77du1QzyefVVYOJELjZwIBAba+CkX38NlC8PnDkDfPRRgeofGQlcvAhUrGjBoQICgNKleZCSQqHZPHIk8PvvgKcn/+zpyZfdoUOu/WvXBkaN4u/HjgWysgp0DbYgo3iLIHVw1KzZow0eHsCvvwKnTgENG2oLSnAkhBBFSnAwD8rO/QgONrFTfDyQmgq0bQtERXGgoePTT4F27YAHD3hg99atPPfhyBEgMRFAmTLAvHlc+IsvgMOHLapzYiIfa+1aYMYM3jZqFM+xMMu4cTyo+oUX8jxVowbwzTf8/31GBrB6NdCmDV/Hf/9xWxIADqzKlQPi4oA5cyyqvz1IcFTEpKUBJ07w95rgCOCZQXXr6kXlaNaMf5lq1nRoHYUQQthIZiYwfz7w+uvAhg1AyZJ5iri6aj8Prl/nlpfQUH7Mn/+oUPfuQK9eQGAgkJJiURXmz+djvfyyttFmwgSdY5ujZEn9zyed4w4bxp9tujZsADp14v/3Fy8GHnr683Q/gJuskpMtugZbUxBp4jaLJCQkoHLlyrauT5GXkpICf39/KJVK+Pn52fz4O3dyvFOpEpCQYPPDCyGEcEKJifz58NZb3ILUvDnw5ZfcMqNplbpzh1NuGJr2b8L168DkycCSJbz7mjVA5cp8XJMtXkuXcjD23HN5AiN1nRMT8+728CGwYgWfTx00lS0LvPySChP3doN3eBPceGsiVN6++dfBApZ8flvdclSnTh1MnjwZabnDQVEgebrUdP3+O/Daa9w/LYQQ4rFSqxYwaxYHMAcOcIvM3bs6BcqU0Q+MzGj7yMriYT5LlvDPISEcGOXr3j3e8fnngU2bDBYx1sXYsiXw7bc8MuSLL4AqVTiX08JFLqhx6i9UWPwJmrTy1W8ZczCrg6OoqChs3rwZtWrVwtKlS21Zp8eayeDon3+AP/7gzGJZWUB2tkPrJoQQonDodlGpVLztxAkei3T9eq7CRJyMtWNHk4ObU1M5tvn9d+22ixcNdNkZ8u23gFIJPPkkEBFh1TWVKgW8+y5w4QKfi4fUcgvU888bGcjuIFYHRy1btsSBAwcwY8YMTJkyBU2aNMH27dttWLXHk8ngqFMn/hoVBaxfz0P/u3VzWN2EEEIUjtyz4P74g3u0bt4Enn4a0Fuw4u5dHiS9dSvw+ecGj5eYyEM4Nm8GvL150HS+M+zUrlzhGXIA98cVcIUGNzcey710KbBsGU9+6927QIcsOFvkDkhPT6fJkyeTj48Pde/enc6dO2eLwxZJ9sxzlJSkXtGYKCXFQIHERG2BDz6QBJBCCPEYi48nqlmTPwqCgji3pMYvv/AT7u5ER47o7Xf6NFHVqvx0uXJEBw9acNKUFO1qtE2b2mzxNLPzQxWAQ/McPQqwEBERgbfffhvr169H/fr1MX78eKSmptri8I+NQ4f4a716BicscB6L+vX5PfPTT7xNpvELIcRjKSSEh6A2agTcuMFT5PfsefRk797cs5CVBTz7LHDuHAB+/umneeZ9zZrAvn28NJtZcnJ4Vt2xY0BQEM/9d3W1ybWYnR/KQawOjn744QcMHDgQDRs2hL+/Pzp27Ig9e/Zg+PDhmDt3LmJjY1GvXj0ctjDfwuNInWPizz/55xo1dPJX5KbuWlNPZXsMZwwKIYRgQUHA9u0c8CiV/BGxcSN49tiPP2ojp06dsHbhLXTsyJPamjUD9u7lzxuz7d0L/Psv4OXFQzuqVLHZdViVH8qOrJ7KX7lyZbRo0ULzCAsLg6c6DeYjn332GZYvX44T6sQ9xYA9pvJPm2Y4E+nUqfycnn//5WmTan/8AfToYZN6CCGEcE7p6fxR8O+/gLs78PPPQM+e4MCodWvMOReBUfgWBBc8/zxPpff1teJE//7LJ3vlFVtfgt1Z8vltdXBkjhs3bqBChQrIycmx+bHv3r2LUaNGYf369QCAbt264bvvvkMpE/kd1qxZg/nz5yM6Ohq3b99GTEwMGjdubNF57REcJSbybINnnuHcXb/8wvkeDeZ3SEvjLKIPHvDP+/frrDMihBDicZWZCfTrx4GPQgFMmgS89BIwb6YSS1b5AwCGvE2Y870Cbm4WHJjIYB4jZ+OQPEfmCAwMxNatW+1y7N69eyM2NhYbN27Exo0bERsbiz59+pjcJy0tDU8//TRmqPOjFxHBwYCfHwdGLi6cyshoc6KvL5CUpO3nlTFHQgghwCtN/fILL9lGxAmnn3oKmsCofXtg3g8WBkZnznBiogsX7FPpIsqSl8hiCoUCbdu2tflxT58+jY0bN2L//v1o/qjVZOHChQgPD0dcXBxq165tcD918HTp0iWzz5WRkYGMjAzNzykWpmU3l3oKv78/N4ma5OLCaeKvXeNB2kIIIQT4/+Y//+SlyhYv1m778EMe3KxQgBMczZoFvP++6Q+cW7c44dCFC5waQD0w9jHglGur7du3D/7+/prACABatGgBf39/7N2716bnioyMhL+/v+ZhryVT1DPVzMr6XqIE/3uwbZvNZgoIIYQoHhQK4J13eH20EiU4h5EmJR4R/zBtGtC/vzajZG4ZGbzY2oULQLVqwKJFjql8EeGUwVFSUhICAwPzbA8MDERSUpJNzzVp0iQolUrNI8FOC559/jlPWwwJscvhhRBCPCbU2bRnzgTu3wdGjtTJeK1QAP/7H2deXL6cn8w99JiIm5l27eIxH3//zWNdHyN27Vaz1LRp0/CRoWlbOg49amJRGBgcRkQGtxeEp6dnnll49uDhweOMSpSw+6mEEEIUY0OGGF48QTOO9bnneDpb797A3LlA6dLAp59qC86YwWkAXF15RnS9eg6pd1FSpIKjESNGoFevXibLhISE4NixY7hx40ae527evImgoCB7Vc9udFcuvnePcxwBZqyILIQQQuRi1mdHr16cGGnoUGD6dA6Qxo/n/EXvv89lvvvO6nXTnF2RCo4CAgIQEBCQb7nw8HAolUocPHgQzR4tQnbgwAEolUq0bNnS3tW0ufnz9fMchYbyV4N5joQQQghbGDKE/yOfOJFXgC1blrNpN2/Oj2HDCruGhaZIBUfmqlu3Lrp06YLBgwdj/qNlg99++208//zzejPV6tSpg8jISLz00ksAgDt37uDKlSu4/mgJ47i4OABA+fLlUb4QZ33l2wQqhBBC2MOECbxQ7dKlQJMmnHJ72zYzpk0Xb3ZNAmlPd+7cyZMEcs6cOXpJIBUKBZYuXYr+/fsDAJYtW4a33norz7GmTp2KaWY20dgjCaQQQghRaIg4k3YxTw1TZDJkF0cSHAkhhBDOp8hkyBZCCCGEcDYSHAkhhBBC6JDgSAghhBBChwRHQgghhBA6JDgSQgghhNAhwZEQQgghhA4JjoQQQgghdEhwJIQQQgihQ4IjIYQQQggdEhwJIYQQQuiQ4EgIIYQQQocER0IIIYQQOiQ4EkIIIYTQIcGREEIIIYQOCY6EEEIIIXRIcCSEEEIIoUOCIyGEEEIIHRIcCSGEEELokOBICCGEEEKHBEdCCCGEEDokOBJCCCGE0CHBkRBCCCGEDgmOhBBCCCF0SHAkhBBCCKFDgiMhhBBCCB0SHAkhhBBC6JDgSAghhBBChwRHQgghhBA6JDgSQgghhNAhwZEQQgghhA4JjoQQQgghdDhtcHT37l306dMH/v7+8Pf3R58+fXDv3j2j5bOysjBhwgQ0aNAAvr6+qFChAvr27Yvr1687rtJCCCGEKPKcNjjq3bs3YmNjsXHjRmzcuBGxsbHo06eP0fLp6ek4cuQIJk+ejCNHjmDNmjU4e/YsunXr5sBaCyGEEKKoUxARFXYlLHX69GnUq1cP+/fvR/PmzQEA+/fvR3h4OM6cOYPatWubdZxDhw6hWbNmuHz5MqpUqWKwTEZGBjIyMjQ/K5VKVKlSBQkJCfDz8yv4xQghhBDC7lJSUlC5cmXcu3cP/v7+Jsu6OahONrVv3z74+/trAiMAaNGiBfz9/bF3716zgyOlUgmFQoFSpUoZLRMZGYmPPvooz/bKlStbXG8hhBBCFK7U1NTiGRwlJSUhMDAwz/bAwEAkJSWZdYyHDx9i4sSJ6N27t8kWoEmTJmHcuHGan1UqFe7cuYOyZctCoVBYXnkT1FFtcW2VkutzfsX9GuX6nF9xv0a5PusREVJTU1GhQoV8yxap4GjatGkGW2l0HTp0CAAMBiZEZFbAkpWVhV69ekGlUmHu3Lkmy3p6esLT01Nvm6mWJlvw8/Mrlm96Nbk+51fcr1Guz/kV92uU67NOfi1GakUqOBoxYgR69eplskxISAiOHTuGGzdu5Hnu5s2bCAoKMrl/VlYWXnvtNcTHx2Pr1q3F+s0lhBBCCMsVqeAoICAAAQEB+ZYLDw+HUqnEwYMH0axZMwDAgQMHoFQq0bJlS6P7qQOjc+fOYdu2bShbtqzN6i6EEEKI4sEpp/LXrVsXXbp0weDBg7F//37s378fgwcPxvPPP683GLtOnTpYu3YtACA7Oxs9evTA4cOH8euvvyInJwdJSUlISkpCZmZmYV2KHk9PT0ydOjVPN15xIdfn/Ir7Ncr1Ob/ifo1yfY7hlFP5AeDOnTsYNWoU1q9fDwDo1q0b5syZozceSKFQYOnSpejfvz8uXbqEatWqGTzWtm3b0K5dOwfUWgghhBBFndMGR0IIIYQQ9uCU3WpCCCGEEPYiwZEQQgghhA4JjoQQQgghdEhwJIQQQgihQ4IjB5o7dy6qVasGLy8vhIaGYteuXSbL79ixA6GhofDy8kL16tXxww8/OKim1rPkGrdv3w6FQpHncebMGQfW2Hw7d+7ECy+8gAoVKkChUGDdunX57uNM99DS63O2+xcZGYmnnnoKJUuWRGBgILp37464uLh893OWe2jN9TnbPZw3bx4aNmyoyZ4cHh6Of//91+Q+znL/AMuvz9nuX26RkZFQKBQYM2aMyXKFcQ8lOHKQlStXYsyYMfjggw8QExOD1q1b49lnn8WVK1cMlo+Pj8dzzz2H1q1bIyYmBu+//z5GjRqF1atXO7jm5rP0GtXi4uKQmJioedSqVctBNbZMWloaGjVqhDlz5phV3tnuoaXXp+Ys92/Hjh0YPnw49u/fj6ioKGRnZyMiIgJpaWlG93Gme2jN9ak5yz2sVKkSZsyYgcOHD+Pw4cN45pln8OKLL+LkyZMGyzvT/QMsvz41Z7l/ug4dOoQFCxagYcOGJssV2j0k4RDNmjWjoUOH6m2rU6cOTZw40WD59957j+rUqaO3bciQIdSiRQu71bGgLL3Gbdu2EQC6e/euA2pnWwBo7dq1Jss44z1UM+f6nPn+ERElJycTANqxY4fRMs58D825Pme/h0REpUuXpkWLFhl8zpnvn5qp63PW+5eamkq1atWiqKgoatu2LY0ePdpo2cK6h9Jy5ACZmZmIjo5GRESE3vaIiAjs3bvX4D779u3LU75z5844fPgwsrKy7FZXa1lzjWpNmjRBcHAwOnTogG3bttmzmg7lbPfQWs56/5RKJQCgTJkyRss48z005/rUnPEe5uTkYMWKFUhLS0N4eLjBMs58/8y5PjVnu3/Dhw9H165d0bFjx3zLFtY9lODIAW7duoWcnJw8i+IGBQUhKSnJ4D5JSUkGy2dnZ+PWrVt2q6u1rLnG4OBgLFiwAKtXr8aaNWtQu3ZtdOjQATt37nREle3O2e6hpZz5/hERxo0bh1atWqF+/fpGyznrPTT3+pzxHh4/fhwlSpSAp6cnhg4dirVr16JevXoGyzrj/bPk+pzx/q1YsQJHjhxBZGSkWeUL6x4WqYVnizuFQqH3MxHl2ZZfeUPbixJLrrF27dp6a+GFh4cjISEBX375Jdq0aWPXejqKM95Dcznz/RsxYgSOHTuG3bt351vWGe+hudfnjPewdu3aiI2Nxb1797B69Wr069cPO3bsMBpAONv9s+T6nO3+JSQkYPTo0di8eTO8vLzM3q8w7qG0HDlAQEAAXF1d87SgJCcn54mI1cqXL2+wvJubG8qWLWu3ulrLmms0pEWLFjh37pytq1conO0e2oIz3L+RI0di/fr12LZtGypVqmSyrDPeQ0uuz5Cifg89PDxQs2ZNhIWFITIyEo0aNcLs2bMNlnXG+2fJ9RlSlO9fdHQ0kpOTERoaCjc3N7i5uWHHjh349ttv4ebmhpycnDz7FNY9lODIATw8PBAaGoqoqCi97VFRUWjZsqXBfcLDw/OU37x5M8LCwuDu7m63ulrLmms0JCYmBsHBwbauXqFwtntoC0X5/hERRowYgTVr1mDr1q1GF6LW5Uz30JrrM6Qo30NDiAgZGRkGn3Om+2eMqeszpCjfvw4dOuD48eOIjY3VPMLCwvDGG28gNjYWrq6uefYptHto1+HeQmPFihXk7u5OixcvplOnTtGYMWPI19eXLl26REREEydOpD59+mjKX7x4kXx8fGjs2LF06tQpWrx4Mbm7u9OqVasK6xLyZek1fv3117R27Vo6e/YsnThxgiZOnEgAaPXq1YV1CSalpqZSTEwMxcTEEACaNWsWxcTE0OXLl4nI+e+hpdfnbPdv2LBh5O/vT9u3b6fExETNIz09XVPGme+hNdfnbPdw0qRJtHPnToqPj6djx47R+++/Ty4uLrR582Yicu77R2T59Tnb/TMk92y1onIPJThyoO+//56qVq1KHh4e1LRpU70ptv369aO2bdvqld++fTs1adKEPDw8KCQkhObNm+fgGlvOkmucOXMm1ahRg7y8vKh06dLUqlUr+ueffwqh1uZRT5vN/ejXrx8ROf89tPT6nO3+Gbo2ALR06VJNGWe+h9Zcn7PdwwEDBmj+vpQrV446dOigCRyInPv+EVl+fc52/wzJHRwVlXuoIHo0skkIIYQQQsiYIyGEEEIIXRIcCSGEEELokOBICCGEEEKHBEdCCCGEEDokOBJCCCGE0CHBkRBCCCGEDgmOhBBCCCF0SHAkhBBCCKFDgiMhhBBCCB0SHAkhipR27dphzJgxhV0No9q1aweFQgGFQoHY2FiHnLN///6ac65bt84h5xTicSbBkRDCYdQf8MYe/fv3x5o1a/DJJ58USv3GjBmD7t2751tu8ODBSExMRP369e1fKQCzZ89GYmKiQ84lhADcCrsCQojHh+4H/MqVKzFlyhTExcVptnl7e8Pf378wqgYAOHToELp27ZpvOR8fH5QvX94BNWL+/v6F+roI8biRliMhhMOUL19e8/D394dCocizLXe3Wrt27TBy5EiMGTMGpUuXRlBQEBYsWIC0tDS89dZbKFmyJGrUqIF///1Xsw8R4fPPP0f16tXh7e2NRo0aYdWqVUbrlZWVBQ8PD+zduxcffPABFAoFmjdvbtG1rVq1Cg0aNIC3tzfKli2Ljh07Ii0tzaz6qFQqzJw5EzVr1oSnpyeqVKmC6dOnW3R+IYTtSHAkhCjyfvzxRwQEBODgwYMYOXIkhg0bhldffRUtW7bEkSNH0LlzZ/Tp0wfp6ekAgA8//BBLly7FvHnzcPLkSYwdOxZvvvkmduzYYfD4rq6u2L17NwAgNjYWiYmJ2LRpk9n1S0xMxOuvv44BAwbg9OnT2L59O15++WUQkVn1mTRpEmbOnInJkyfj1KlTWL58OYKCggrykgkhCoKEEKIQLF26lPz9/fNsb9u2LY0ePVrv51atWml+zs7OJl9fX+rTp49mW2JiIgGgffv20f3798nLy4v27t2rd9yBAwfS66+/brQ+a9eupbJly+Zb79z1IyKKjo4mAHTp0qU85fOrT0pKCnl6etLChQvzPTcAWrt2bb7lhBAFI2OOhBBFXsOGDTXfu7q6omzZsmjQoIFmm7qVJTk5GadOncLDhw/RqVMnvWNkZmaiSZMmRs8RExODRo0aWVW/Ro0aoUOHDmjQoAE6d+6MiIgI9OjRA6VLl863PqdPn0ZGRgY6dOhg1bmFELYnwZEQoshzd3fX+1mhUOhtUygUAHjsjkql+n87d8yaSBRGYfgMBkWchDQKImgdK7EdIVaCZX6BhQq2iigkaJNAKlEQ8jes0ig2FsJ0wcE2RUALbWQaO5Nmi1nYbNRNUmTfp/84H7c6zHCvJOnx8VGxWOy3uUAg8G7G09PT0eXI5/NpNBppOp1qOByq3+/r5uZGtm1/uM9mszkqE8DXoRwB+FGSyaQCgYBeXl50eXm595zjOLq6ujo61zAMWZYly7LUbreVSCQ0GAxULpf/uk84HFYwGNR4PFapVDo6H8DnoRwB+FFOT09Vr9dVrVa12+2UyWTkuq6m06lM01ShUPjj3G6302w203K5VCgUOujqvG3bGo/HyuVyikQism1b6/VaFxcXe+3TbDbVaDTk9/tlWZbW67Xm87mKxeJnHQuAA1COAPw4t7e3ikQiur+/1/Pzs87Pz5VOp3V9ff3uzN3dnZrNprrdrmq1mjqdzt55Z2dnmkwm6vV6cl1XiURCnU5H+Xx+r31arZZOTk7Ubre1XC4VjUZVqVT+7RAAHM14ff111xQA8KFsNqtUKqVer/ft2YZhaDAY7PWKN4Dj8c4RABzo4eFBpmnKcZxvyatUKjJN81uyAPDlCAAOslgstN1uJUnxeFx+v//LM1erlVzXlSRFo1GFQqEvzwT+Z5QjAAAAD36rAQAAeFCOAAAAPChHAAAAHpQjAAAAD8oRAACAB+UIAADAg3IEAADgQTkCAADwoBwBAAB4vAFOsi8dsWj7AAAAAABJRU5ErkJggg==", "text/plain": [ "
" ] @@ -527,14 +541,18 @@ "source": [ "# Plot the estimated errors (and compare to Kalman form)\n", "plt.subplot(2, 1, 1)\n", - "plt.errorbar(T, xhat[0] - xd[0], P[0, 0], fmt='b-', **ebarstyle)\n", - "plt.plot(estim_resp.time, estim_resp.outputs[0] - xd[0], 'r--')\n", + "plt.errorbar(timepts, xhat[0] - xd[0], P[0, 0], fmt='b-', **ebarstyle, label=\"predictor-corrector\")\n", + "plt.plot(estim_resp.time, estim_resp.outputs[0] - xd[0], 'r--', label=\"Kalman filter\")\n", "lims = plt.axis(); plt.axis([lims[0], lims[1], -0.2, 0.2])\n", + "plt.ylabel(\"$x$ error [m]\")\n", + "plt.legend()\n", "\n", "plt.subplot(2, 1, 2)\n", - "plt.errorbar(T, xhat[1] - xd[1], P[1, 1], fmt='b-', **ebarstyle)\n", + "plt.errorbar(timepts, xhat[1] - xd[1], P[1, 1], fmt='b-', **ebarstyle)\n", "plt.plot(estim_resp.time, estim_resp.outputs[1] - xd[1], 'r--')\n", - "lims = plt.axis(); plt.axis([lims[0], lims[1], -0.2, 0.2]);" + "lims = plt.axis(); plt.axis([lims[0], lims[1], -0.2, 0.2])\n", + "plt.ylabel(\"$y$ error [m]\")\n", + "plt.xlabel(\"Time $t$ [sec]\");" ] }, { @@ -544,14 +562,6 @@ "source": [ "Note that the estimates are not the same! It turns out that to get the correspondence of the two formulations, we need to define $\\hat{x}_\\text{KF}(k) = \\hat{x}_\\text{PC}(k|k-1)$ (see commented out code above)." ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "0796fc56", - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { @@ -570,7 +580,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.6" + "version": "3.13.1" } }, "nbformat": 4, diff --git a/examples/kincar.py b/examples/kincar.py new file mode 100644 index 000000000..ab026cba6 --- /dev/null +++ b/examples/kincar.py @@ -0,0 +1,112 @@ +# kincar.py - planar vehicle model (with flatness) +# RMM, 16 Jan 2022 + +import numpy as np +import matplotlib.pyplot as plt +import control.flatsys as fs + +# +# Vehicle dynamics (bicycle model) +# + +# Function to take states, inputs and return the flat flag +def _kincar_flat_forward(x, u, params={}): + # Get the parameter values + b = params.get('wheelbase', 3.) + #! TODO: add dir processing + + # Create a list of arrays to store the flat output and its derivatives + zflag = [np.zeros(3), np.zeros(3)] + + # Flat output is the x, y position of the rear wheels + zflag[0][0] = x[0] + zflag[1][0] = x[1] + + # First derivatives of the flat output + zflag[0][1] = u[0] * np.cos(x[2]) # dx/dt + zflag[1][1] = u[0] * np.sin(x[2]) # dy/dt + + # First derivative of the angle + thdot = (u[0]/b) * np.tan(u[1]) + + # Second derivatives of the flat output (setting vdot = 0) + zflag[0][2] = -u[0] * thdot * np.sin(x[2]) + zflag[1][2] = u[0] * thdot * np.cos(x[2]) + + return zflag + +# Function to take the flat flag and return states, inputs +def _kincar_flat_reverse(zflag, params={}): + # Get the parameter values + b = params.get('wheelbase', 3.) + dir = params.get('dir', 'f') + + # Create a vector to store the state and inputs + x = np.zeros(3) + u = np.zeros(2) + + # Given the flat variables, solve for the state + x[0] = zflag[0][0] # x position + x[1] = zflag[1][0] # y position + if dir == 'f': + x[2] = np.arctan2(zflag[1][1], zflag[0][1]) # tan(theta) = ydot/xdot + elif dir == 'r': + # Angle is flipped by 180 degrees (since v < 0) + x[2] = np.arctan2(-zflag[1][1], -zflag[0][1]) + else: + raise ValueError("unknown direction:", dir) + + # And next solve for the inputs + 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 + +# Function to compute the RHS of the system dynamics +def _kincar_update(t, x, u, params): + b = params.get('wheelbase', 3.) # get parameter values + #! TODO: add dir processing + 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 _kincar_output(t, x, u, params): + return x # return x, y, theta (full state) + +# Create differentially flat input/output system +kincar = fs.FlatSystem( + _kincar_flat_forward, _kincar_flat_reverse, name="kincar", + updfcn=_kincar_update, outfcn=_kincar_output, + inputs=('v', 'delta'), outputs=('x', 'y', 'theta'), + states=('x', 'y', 'theta')) + +# +# Utility function to plot lane change maneuver +# + +def plot_lanechange(t, y, u, figure=None, yf=None): + # Plot the xy trajectory + plt.subplot(3, 1, 1, label='xy') + plt.plot(y[0], y[1]) + plt.xlabel("x [m]") + plt.ylabel("y [m]") + if yf is not None: + plt.plot(yf[0], yf[1], 'ro') + + # Plot the inputs as a function of time + plt.subplot(3, 1, 2, label='v') + plt.plot(t, u[0]) + plt.xlabel("Time $t$ [sec]") + plt.ylabel("$v$ [m/s]") + + plt.subplot(3, 1, 3, label='delta') + plt.plot(t, u[1]) + plt.xlabel("Time $t$ [sec]") + plt.ylabel("$\\delta$ [rad]") + + plt.suptitle("Lane change maneuver") + plt.tight_layout() diff --git a/examples/markov.py b/examples/markov.py new file mode 100644 index 000000000..5444e4cff --- /dev/null +++ b/examples/markov.py @@ -0,0 +1,108 @@ +# markov.py +# Johannes Kaisinger, 4 July 2024 +# +# Demonstrate estimation of markov parameters. +# SISO, SIMO, MISO, MIMO case + +import numpy as np +import matplotlib.pyplot as plt +import os + +import control as ct + +def create_impulse_response(H, time, transpose, dt): + """Helper function to use TimeResponseData type for plotting""" + + H = np.array(H, ndmin=3) + + if transpose: + H = np.transpose(H) + + q, p, m = H.shape + inputs = np.zeros((p,p,m)) + + issiso = True if (q == 1 and p == 1) else False + + input_labels = [] + trace_labels, trace_types = [], [] + for i in range(p): + inputs[i,i,0] = 1/dt # unit area impulse + input_labels.append(f"u{[i]}") + trace_labels.append(f"From u{[i]}") + trace_types.append('impulse') + + output_labels = [] + for i in range(q): + output_labels.append(f"y{[i]}") + + return ct.TimeResponseData(time=time[:m], + outputs=H, + output_labels=output_labels, + inputs=inputs, + input_labels=input_labels, + trace_labels=trace_labels, + trace_types=trace_types, + sysname="H_est", + transpose=transpose, + plot_inputs=False, + issiso=issiso) + +# set up a mass spring damper system (2dof, MIMO case) +# Mechanical Vibrations: Theory and Application, SI Edition, 1st ed. +# Figure 6.5 / Example 6.7 +# m q_dd + c q_d + k q = f +m1, k1, c1 = 1., 4., 1. +m2, k2, c2 = 2., 2., 1. +k3, c3 = 6., 2. + +A = np.array([ + [0., 0., 1., 0.], + [0., 0., 0., 1.], + [-(k1+k2)/m1, (k2)/m1, -(c1+c2)/m1, c2/m1], + [(k2)/m2, -(k2+k3)/m2, c2/m2, -(c2+c3)/m2] +]) +B = np.array([[0.,0.],[0.,0.],[1/m1,0.],[0.,1/m2]]) +C = np.array([[1.0, 0.0, 0.0, 0.0],[0.0, 1.0, 0.0, 0.0]]) +D = np.zeros((2,2)) + + +xixo_list = ["SISO","SIMO","MISO","MIMO"] +xixo = xixo_list[3] # choose a system for estimation +match xixo: + case "SISO": + sys = ct.StateSpace(A, B[:,0], C[0,:], D[0,0]) + case "SIMO": + sys = ct.StateSpace(A, B[:,:1], C, D[:,:1]) + case "MISO": + sys = ct.StateSpace(A, B, C[:1,:], D[:1,:]) + case "MIMO": + sys = ct.StateSpace(A, B, C, D) + +dt = 0.25 +sysd = sys.sample(dt, method='zoh') +sysd.name = "H_true" + + # random forcing input +t = np.arange(0,100,dt) +u = np.random.randn(sysd.B.shape[-1], len(t)) + +response = ct.forced_response(sysd, U=u) +response.plot() +plt.show() + +m = 50 +ir_true = ct.impulse_response(sysd, T=dt*m) + +H_est = ct.markov(response, m, dt=dt) +# Helper function for plotting only +ir_est = create_impulse_response(H_est, + ir_true.time, + ir_true.transpose, + dt) + +ir_true.plot(title=xixo) +ir_est.plot(color='orange',linestyle='dashed') +plt.show() + +if 'PYCONTROL_TEST_EXAMPLES' not in os.environ: + plt.show() diff --git a/examples/mhe-pvtol.ipynb b/examples/mhe-pvtol.ipynb index 0886f7172..734cd062b 100644 --- a/examples/mhe-pvtol.ipynb +++ b/examples/mhe-pvtol.ipynb @@ -9,7 +9,7 @@ "\n", "Richard M. Murray, 24 Feb 2023\n", "\n", - "In this notebook we illustrate the implementation of moving horizon estimation (MHE)" + "In this notebook we illustrate the implementation of moving horizon estimation (MHE)." ] }, { @@ -35,8 +35,11 @@ "source": [ "## System Description\n", "\n", - "The dynamics of the system\n", - "with disturbances on the $x$ and $y$ variables is given by\n", + "We consider a planar vertical takeoff and landing (PVTOL) aircraft model:\n", + "\n", + "![PVTOL diagram](https://murray.cds.caltech.edu/images/murray.cds/7/7d/Pvtol-diagram.png)\n", + "\n", + "The dynamics of the system with disturbances on the $x$ and $y$ variables is given by\n", "\n", "$$\n", " \\begin{aligned}\n", @@ -69,20 +72,21 @@ "Inputs (2): ['F1', 'F2']\n", "Outputs (6): ['x0', 'x1', 'x2', 'x3', 'x4', 'x5']\n", "States (6): ['x0', 'x1', 'x2', 'x3', 'x4', 'x5']\n", + "Parameters: ['m', 'J', 'r', 'g', 'c']\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" ] } ], @@ -90,7 +94,6 @@ "# 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", @@ -117,7 +120,9 @@ "id": "5771ab93", "metadata": {}, "source": [ - "### Control Design" + "### Control Design\n", + "\n", + "We first synthesize an LQR controller that we will use for trajectory tracking, using a physically motivated weighting:" ] }, { @@ -130,20 +135,56 @@ "name": "stdout", "output_type": "stream", "text": [ - ": sys[4]\n", + ": sys[2]\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", "\n", - "Update: .updfcn at 0x167b58dc0>\n", - "Output: .outfcn at 0x167b58e50>\n" + "Subsystems (2):\n", + " * ['x0', 'x1', 'x2', 'x3', 'x4', 'x5']>\n", + " * ['F1', 'F2']>\n", + "\n", + "Connections:\n", + " * pvtol_noisy.F1 <- sys[1].F1\n", + " * pvtol_noisy.F2 <- sys[1].F2\n", + " * pvtol_noisy.Dx <- Dx\n", + " * pvtol_noisy.Dy <- Dy\n", + " * pvtol_noisy.Nx <- Nx\n", + " * pvtol_noisy.Ny <- Ny\n", + " * pvtol_noisy.Nth <- Nth\n", + " * sys[1].xd[0] <- xd[0]\n", + " * sys[1].xd[1] <- xd[1]\n", + " * sys[1].xd[2] <- xd[2]\n", + " * sys[1].xd[3] <- xd[3]\n", + " * sys[1].xd[4] <- xd[4]\n", + " * sys[1].xd[5] <- xd[5]\n", + " * sys[1].ud[0] <- ud[0]\n", + " * sys[1].ud[1] <- ud[1]\n", + " * sys[1].x0 <- pvtol_noisy.x0\n", + " * sys[1].x1 <- pvtol_noisy.x1\n", + " * sys[1].x2 <- pvtol_noisy.x2\n", + " * sys[1].x3 <- pvtol_noisy.x3\n", + " * sys[1].x4 <- pvtol_noisy.x4\n", + " * sys[1].x5 <- pvtol_noisy.x5\n", + "\n", + "Outputs:\n", + " * x0 <- pvtol_noisy.x0\n", + " * x1 <- pvtol_noisy.x1\n", + " * x2 <- pvtol_noisy.x2\n", + " * x3 <- pvtol_noisy.x3\n", + " * x4 <- pvtol_noisy.x4\n", + " * x5 <- pvtol_noisy.x5\n", + " * F1 <- sys[1].F1\n", + " * F2 <- sys[1].F2\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "/Users/murray/src/python-control/murrayrm/control/statefbk.py:783: UserWarning: cannot verify system output is system state\n", + "/Users/murray/Library/CloudStorage/Dropbox/macosx/src/python-control/murrayrm/control/statefbk.py:788: UserWarning: cannot verify system output is system state\n", " warnings.warn(\"cannot verify system output is system state\")\n" ] } @@ -200,7 +241,7 @@ "outputs": [ { "data": { - "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", + "image/png": "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", "text/plain": [ "
" ] @@ -222,6 +263,8 @@ "# 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.xlabel(\"Time $t$ [s]\")\n", + "plt.ylabel(\"Disturbance, sensor noise\")\n", "plt.legend();" ] }, @@ -233,7 +276,7 @@ "outputs": [ { "data": { - "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+31V588UWqVauGr68vlSpVYsyYMYDZqLZx48YZrh8UFMQLL7yQO29IRERcztSpsHKls1txfW4djrJry5YtdOnSJV1Z165d2blz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gPX2229be/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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkcAAAGzCAYAAAAlqLNlAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAWuxJREFUeJzt3Xt8zvX/x/HHtYPNsMthNoShnHI+mxKhCRFS/GhEKZ0kfStLB3RY53OU0oEkKaRClHPOMirSSYjNEJtDNts+vz/erl27bMPYrsP2vN9u123X9Tldr8v1XXt+35/3wWZZloWIiIiIAODn6QJEREREvInCkYiIiEg2CkciIiIi2SgciYiIiGSjcCQiIiKSjcKRiIiISDYKRyIiIiLZKByJiIiIZBPg6QJ8TWZmJvv27aNMmTLYbDZPlyMiIiLnwbIsjh49SpUqVfDzO3vbkMJRPu3bt49q1ap5ugwRERG5AHv27KFq1apnPUbhKJ/KlCkDmH/c0NBQD1cjIiIi5yMlJYVq1apl/R0/G4WjfHLcSgsNDVU4EhER8THn0yVGHbJFREREslE4EhEREclG4UhEREQkG/U5KiQZGRmcOnXK02UUeYGBgfj7+3u6DBERKUIUjgqYZVkkJiZy5MgRT5dSbJQtW5ZKlSpp3ikRESkQCkcFzBGMwsPDCQkJ0R/sQmRZFidOnCApKQmAypUre7giEREpChSOClBGRkZWMKpQoYKnyykWSpYsCUBSUhLh4eG6xSYiIhdNHbILkKOPUUhIiIcrKV4c/97q4yUiIgVB4agQ6Faae+nfW0RECpLCkYiIiEg2Ckfi9Ww2G3PnzvV0GSIiUkwoHImL1atX4+/vz7XXXpuv82rUqMGrr75aOEWJiIi4kcKRuHj//fe59957WbVqFbt37/Z0OSIiIm6ncFTYLAuOH3f/w7LyXerx48f57LPPuPPOO7nuuuv48MMPXfbPmzePli1bEhwcTFhYGH379gWgY8eO7Nq1i/vvvx+bzZbVQXrcuHE0bdrU5RqvvvoqNWrUyHq9YcMGrrnmGsLCwrDb7XTo0IEff/wx37WLiIgUFIWjwnbiBJQu7f7HiRP5LnXmzJnUrVuXunXrcvPNN/PBBx9gnQ5Z33zzDX379qVHjx5s3ryZ77//npYtWwIwe/ZsqlatyoQJE0hISCAhIeG83/Po0aMMGTKElStXsnbtWmrXrk337t05evRovusXEREpCJoEUrJMmTKFm2++GYBrr72WY8eO8f3339OlSxeefvppBgwYwPjx47OOb9KkCQDly5fH39+fMmXKUKlSpXy9Z6dOnVxev/POO5QrV47ly5dz3XXXXeQnEhERyT+Fo8IWEgLHjnnmffNhx44drF+/ntmzZwMQEBBA//79ef/99+nSpQvx8fEMHz68wMtMSkri8ccfZ8mSJezfv5+MjAxOnDih/k4iIuIxCkeFzWaDUqU8XcU5TZkyhfT0dC655JKsbZZlERgYyOHDh7OW6cgPPz+/rNtyDmfOYn3LLbdw4MABXn31VSIjIwkKCiIqKoq0tLQL+yAiIiIXSX2OhPT0dKZOncpLL71EfHx81mPLli1ERkYyffp0GjduzPfff5/nNUqUKEFGRobLtooVK5KYmOgSkOLj412OWblyJSNHjqR79+40aNCAoKAgDh48WKCfT0REJD/UciR8/fXXHD58mFtvvRW73e6yr1+/fkyZMoVXXnmFzp07c+mllzJgwADS09NZsGABDz30EGDmOVqxYgUDBgwgKCiIsLAwOnbsyIEDB3j++efp168fCxcuZMGCBYSGhmZd/7LLLmPatGm0bNmSlJQUHnzwwQtqpRIRESkoajkSpkyZQpcuXXIEI4AbbriB+Ph4QkNDmTVrFvPmzaNp06Z06tSJdevWZR03YcIE/v77by699FIqVqwIQP369Zk4cSJvvfUWTZo0Yf369fzvf/9zuf7777/P4cOHadasGTExMYwcOZLw8PDC/cAiIiJnYbPO7BQiZ5WSkoLdbic5OdmlBQTg5MmT7Ny5k5o1axIcHOyhCosf/buLiMi5nO3v95nUciQiIiKSjcKRiIiISDYKRyIiIiLZKByJiIiIZKNwJCIiIpKNT4ejFStW0LNnT6pUqYLNZmPu3LnnPGf58uW0aNGC4OBgatWqxdtvv134hYqIiIjP8OlwdPz4cZo0acKbb755Xsfv3LmT7t270759ezZv3swjjzzCyJEj+eKLLwq5UhEREfEVPj1Ddrdu3ejWrdt5H//2229TvXp1Xn31VcBMUrhx40ZefPFFbrjhhkKqUkRERM7LX39BrVqersK3W47ya82aNURHR7ts69q1Kxs3bsyxIKpDamoqKSkpLg/JW40aNbLCp4iIyHl7+22oWxc+/dTT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WZZlebqI/Nq+fTuXX345a9eupU2bNgCsXbuWqKgofv31V+rWrZvreQMGDCAwMJBp06Zd8HunpKRgt9tJTk4mNDT0gq8jIiIi7pOfv98+2XK0Zs0a7HZ7VjACaNu2LXa7ndWrV+d6TmZmJt988w116tSha9euhIeH06ZNG+bOneumqkVERMQX+GQ4SkxMJDw8PMf28PBwEhMTcz0nKSmJY8eO8eyzz3LttdeyaNEi+vTpQ9++fVm+fHme75WamkpKSorLQ0RERIourwpH48aNw2aznfWxceNGAGw2W47zLcvKdTuYliOA66+/nvvvv5+mTZsyZswYrrvuOt5+++08a4qLi8vq9G2326lWrVoBfFIRERHxVgGeLiC7e+65hwEDBpz1mBo1arB161b279+fY9+BAweIiIjI9bywsDACAgK4/PLLXbbXr1+fVatW5fl+sbGxjB49Out1cnIy1atXVwuSiIiID3H83T6frtZeFY7CwsIICws753FRUVEkJyezfv16WrduDcC6detITk6mXbt2uZ5TokQJWrVqxY4dO1y2//bbb0RGRub5XkFBQQQFBWW9dvzjqgVJRETE9xw9ehS73X7WY3xytBpAt27d2LdvH++88w4At99+O5GRkXz11VdZx9SrV4+4uDj69OkDwJw5c+jfvz9vvfUWV199NQsXLmTUqFEsW7aMK6+88rzeNzMzk3379lGmTJk8b+H5upSUFKpVq8aePXs0Is8L6fvxbvp+vJu+H+9V2N+NZVkcPXqUKlWq4Od39l5FXtVylB/Tp09n5MiRREdHA9CrVy/efPNNl2N27NhBcnJy1us+ffrw9ttvExcXx8iRI6lbty5ffPHFeQcjAD8/P6pWrVowH8LLhYaG6j8eXkzfj3fT9+Pd9P14r8L8bs7VYuTgsy1HUng0l5N30/fj3fT9eDd9P97Lm74brxqtJiIiIuJpCkeSQ1BQEE888YRLR3TxHvp+vJu+H++m78d7edN3o9tqIiIiItmo5UhEREQkG4UjERERkWwUjkRERESyUTgSERERyUbhqJiaOHEiNWvWJDg4mBYtWrBy5cqzHr98+XJatGhBcHAwtWrVOutivXLx8vP9LFu2LNdFmn/99Vc3Vlw8rFixgp49e1KlShVsNhtz58495zn63XGf/H4/+t1xn7i4OFq1akWZMmUIDw+nd+/eOZbzyo2nfn8UjoqhmTNnMmrUKMaOHcvmzZtp37493bp1Y/fu3bkev3PnTrp370779u3ZvHkzjzzyCCNHjuSLL75wc+XFQ36/H4cdO3aQkJCQ9ahdu7abKi4+jh8/TpMmTXLMxp8X/e64V36/Hwf97hS+5cuXc/fdd7N27VoWL15Meno60dHRHD9+PM9zPPr7Y0mx07p1a2vEiBEu2+rVq2eNGTMm1+Mfeughq169ei7b7rjjDqtt27aFVmNxlt/vZ+nSpRZgHT582A3ViQNgzZkz56zH6HfHc87n+9HvjuckJSVZgLV8+fI8j/Hk749ajoqZtLQ0Nm3alLUmnUN0dDSrV6/O9Zw1a9bkOL5r165s3LiRU6dOFVqtxdGFfD8OzZo1o3LlynTu3JmlS5cWZplynvS74xv0u+N+jnVPy5cvn+cxnvz9UTgqZg4ePEhGRgYREREu2yMiIkhMTMz1nMTExFyPT09P5+DBg4VWa3F0Id9P5cqVmTx5Ml988QWzZ8+mbt26dO7cmRUrVrijZDkL/e54N/3ueIZlWYwePZorr7yShg0b5nmcJ39/Agr16uK1bDaby2vLsnJsO9fxuW2XgpGf76du3brUrVs363VUVBR79uzhxRdf5KqrrirUOuXc9LvjvfS74xn33HMPW7duZdWqVec81lO/P2o5KmbCwsLw9/fP0QqRlJSUI6E7VKpUKdfjAwICqFChQqHVWhxdyPeTm7Zt2/L7778XdHmST/rd8T363Slc9957L/PmzWPp0qVUrVr1rMd68vdH4aiYKVGiBC1atGDx4sUu2xcvXky7du1yPScqKirH8YsWLaJly5YEBgYWWq3F0YV8P7nZvHkzlStXLujyJJ/0u+N79LtTOCzL4p577mH27NksWbKEmjVrnvMcj/7+FHqXb/E6n376qRUYGGhNmTLF2rZtmzVq1CirVKlS1t9//21ZlmWNGTPGiomJyTr+r7/+skJCQqz777/f2rZtmzVlyhQrMDDQ+vzzzz31EYq0/H4/r7zyijVnzhzrt99+s37++WdrzJgxFmB98cUXnvoIRdbRo0etzZs3W5s3b7YA6+WXX7Y2b95s7dq1y7Is/e54Wn6/H/3uuM+dd95p2e12a9myZVZCQkLW48SJE1nHeNPvj8JRMfXWW29ZkZGRVokSJazmzZu7DKccMmSI1aFDB5fjly1bZjVr1swqUaKEVaNGDWvSpElurrh4yc/389xzz1mXXnqpFRwcbJUrV8668sorrW+++cYDVRd9jqHfZz6GDBliWZZ+dzwtv9+PfnfcJ7fvBbA++OCDrGO86ffHdrpoEREREUF9jkRERERcKByJiIiIZKNwJCIiIpKNwpGIiIhINgpHIiIiItkoHImIiIhko3AkIiIiko3CkYiIiEg2CkciIiIi2SgciUix1bFjR2w2Gzabjfj4+Iu61i233JJ1rblz5xZIfSLiGQpHIlKsDR8+nISEBBo2bHhR13nttddISEgooKpExJMCPF2AiIgnhYSEUKlSpYu+jt1ux263F0BFIuJpajkSkSJjxowZBAcHs3fv3qxtt912G40bNyY5Ofm8r9OxY0fuvfdeRo0aRbly5YiIiGDy5MkcP36coUOHUqZMGS699FIWLFhQGB9DRDxM4UhEiowBAwZQt25d4uLiABg/fjzffvstCxYsyHerzkcffURYWBjr16/n3nvv5c477+TGG2+kXbt2/Pjjj3Tt2pWYmBhOnDhRGB9FRDxI4UhEigybzcbTTz/Ne++9xzPPPMNrr73GwoULueSSS/J9rSZNmvDoo49Su3ZtYmNjKVmyJGFhYQwfPpzatWvz+OOPc+jQIbZu3VoIn0REPEl9jkSkSLnuuuu4/PLLGT9+PIsWLaJBgwYXdJ3GjRtnPff396dChQo0atQoa1tERAQASUlJF1ewiHgdtRyJSJHy7bff8uuvv5KRkZEVYC5EYGCgy2ubzeayzWazAZCZmXnB7yEi3knhSESKjB9//JEbb7yRd955h65du/LYY495uiQR8UG6rSYiRcLff/9Njx49GDNmDDExMVx++eW0atWKTZs20aJFC0+XJyI+RC1HIuLz/v33X7p160avXr145JFHAGjRogU9e/Zk7NixHq5ORHyNWo5ExOeVL1+e7du359j+5ZdfXtD1li1blmPb33//nWObZVkXdH0R8W5qORKRYm3ixImULl2an3766aKuM2LECEqXLl1AVYmIJ9ks/V8fESmm9u7dy3///QdA9erVKVGixAVfKykpiZSUFAAqV65MqVKlCqRGEXE/hSMRERGRbHRbTURERCQbhSMRERGRbBSORERERLJROBIRERHJRuFIREREJBuFIxEREZFsFI5EREREslE4EhEREclG4UhEREQkG4UjERERkWz+H2NqwKUC55e5AAAAAElFTkSuQmCC", "text/plain": [ "
" ] @@ -252,7 +295,7 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA9UAAAJOCAYAAAC5nCQrAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAADU8ElEQVR4nOzdeViU9fo/8PcszAzrICCDbII7igrihmZZKmZmanXUY7llnSjLjE6L+Tsds75xWk5xrKNlJ5fKzBYtK1PJcsWNzRVXVBBBZBv2ZZbfH8OMEqAMzPDMDO/Xdc114pnnmbk5F+PMPff9uT8ivV6vBxERERERERGZTSx0AERERERERET2ikk1ERERERERUSsxqSYiIiIiIiJqJSbVRERERERERK3EpJqIiIiIiIiolZhUExEREREREbUSk2oiIiIiIiKiVmJSTURERERERNRKUqEDsHU6nQ5Xr16Fu7s7RCKR0OEQERERERGRlen1epSVlcHf3x9i8a1r0Uyqb+Pq1asICgoSOgwiIiIiIiJqZ9nZ2QgMDLzlOUyqb8Pd3R2A4f9MDw8PgaMhIiIiIiIiaystLUVQUJApH7wVu0qq9+zZg3fffRcpKSnIzc3F5s2bMWXKlFtes3v3bsTFxeHkyZPw9/fHSy+9hNjY2BY/p7Hl28PDg0k1ERERERFRB9KSJcB2NaisoqICAwcOxEcffdSi8y9evIj77rsPo0aNQlpaGl599VUsXLgQ33//vZUjJSIiIiIioo7ArirVEyZMwIQJE1p8/scff4zg4GAkJCQAAMLCwpCcnIz33nsPDz30kJWiJCIiIiIioo7CrirV5jpw4ABiYmIaHBs/fjySk5NRV1fX5DU1NTUoLS1tcCMiIiIi25RdVIlZnx1CdlGl0KEQUQfl0El1Xl4eVCpVg2MqlQoajQYFBQVNXhMfHw+lUmm6cfI3ERERkW2q0+qw8Os07D1XgFc3Hxc6HCLqoBw6qQYaLyzX6/VNHjdavHgx1Gq16ZadnW31GImIiIjIfO/tOIO0rBK4K6R4a2p/ocMhog7KrtZUm8vPzw95eXkNjuXn50MqlcLb27vJa+RyOeRyeXuER0RERESttOtMPj7ZnQkAePfhAQjychE4IiLqqBy6Uh0dHY3ExMQGx3bs2IHBgwfDyclJoKiIiIiIqC2ulVYj7pujAIDZ0V1xb3gXgSMioo7MrpLq8vJypKenIz09HYBhy6z09HRkZWUBMLRuz54923R+bGwsLl++jLi4OGRkZGD16tX47LPP8Pe//12I8ImIiIiojbQ6PZ77Og1FFbXo28UDr94XJnRIRNTB2VX7d3JyMu6++27Tz3FxcQCAOXPmYO3atcjNzTUl2AAQGhqKrVu34vnnn8d///tf+Pv7Y/ny5dxOi4iIiMhOffj7ORzMLIKLTIKPZkZC4SQROiQi6uBEeuPkLmpSaWkplEol1Go1PDw8hA6HiIiIqEOq0WixKTUHSzYfh04PJEyPwJTIAKHDIiIHZU4eaFeVaiIiIiLqWHLVVVh/MAsbDmehsKIWAPCXqEAm1ERkM5hUExEREZFN0ev1OHyxCOsOXML2k9eg1RkaK/08FJgV3RWPjwoVOEIiohuYVBMRERGRTaiq1eKH9BysS7qE03llpuNDQ70wd0QIYvqqIJXY1ZxdIuoAmFQTERERkaCyiyrxxcHL2HgkG+qqOgCAwkmMqZEBmB0dgrAunGtDRLaLSTURERERtTu9Xo995wuwLukSdp7Oh3F0bpCXM2YPD8FfBgfC00UmbJBERC3ApJqIiIiI2k15jQbfp1zBugOXkHm9wnR8VE8fzB0RgtG9fSERiwSMkIjIPEyqiYiIiMjqLlwvxxcHLuO7lCsor9EAANzkUjwcFYhZ0V3RvbObwBESEbUOk2oiIiIisgqtTo8/Tudj3YFL2HuuwHS8W2dXzIkOwYODAuCucBIwQiKitmNSTUREREQWpa6swzfJ2fj84CVkF1UBAEQiYEwfX8wZEYI7evhAJGKLNxE5BibVRERERGQRGbml+PzAJWxOy0F1nQ4AoHR2wvQhQZg1vCuCvFwEjpCIyPKYVBMRERFRq2m0Ouw4dQ1rky7h8MUi0/E+fu6YOyIEkyMC4CyTCBghEZF1MakmIiIiIrMVlNfg68NZWH8oC7nqagCARCzCvf38MGdECIaEdGKLNxF1CEyqiYiIiKjFjmaXYN2BS/j5aC5qtYYWb29XGWYOC8bMYcHoonQWOEIiovbFpJqIiIiIbqlGo8Wvx/OwNukS0rNLTMcHBnliTnRXTBzQBXIpW7yJqGNiUk1ERERETcpTV+OrQ5fx1eFsFJTXAABkEjHuH9AFs0eEICLIU9gAiYhsAJNqIiIiIjLR6/VIvlyMtUmXsP1EHjQ6PQBA5SHHo8O6YsbQYHR2lwscJRGR7WBSTURERESortPix/QcrEu6jFO5pabjQ0O8MGdECGL6qeAkEQsYIRGRbWJSTURERNSBZRdV4suDl7ExORsllXUAAIWTGFMiAjA7OgR9/T0EjpCIyLYxqSYiIiLqYPR6PZIuFGJt0iXszLiG+g5vBHZyxuzorpg2OAieLjJhgyQishNMqomIiIg6iIoaDTalXsG6A5dxPr/cdHxUTx/Mjg7BPX18IRFzb2kiInMwqSYiIiJycJnXy/H5gcv4PuUKymo0AABXmQQPRQVidnQIevi6CRwhEZH9srtpEytWrEBoaCgUCgWioqKwd+/eW56/fv16DBw4EC4uLujSpQvmzZuHwsLCdoqWiIiISBg6nR6/n76GOasP455/78bapEsoq9Ggm48rlk7qi4OvjsGyyeFMqImI2siuKtUbN27EokWLsGLFCowcORKffPIJJkyYgFOnTiE4OLjR+fv27cPs2bPxwQcfYNKkScjJyUFsbCwef/xxbN68WYDfgIiIiMi61FV1+DY5G58fuIysokoAgEgE3NPbF3NGhOCOHj4Qs8WbiMhiRHq9Xi90EC01bNgwDBo0CCtXrjQdCwsLw5QpUxAfH9/o/Pfeew8rV67EhQsXTMc+/PBDvPPOO8jOzm7Rc5aWlkKpVEKtVsPDg9MviYiIyDadySvDugOXsDk1B1V1WgCAh0KK6UOC8Ojwrujq7SpwhERE9sOcPNBuKtW1tbVISUnBK6+80uB4TEwMkpKSmrxmxIgRWLJkCbZu3YoJEyYgPz8f3333HSZOnNjs89TU1KCmpsb0c2lpabPnEhEREQlJo9Xht4xrWJt0CQczi0zH+/i5Y86IEEyO8IeLzG4+7hER2SW7+Ve2oKAAWq0WKpWqwXGVSoW8vLwmrxkxYgTWr1+P6dOno7q6GhqNBg888AA+/PDDZp8nPj4er7/+ukVjJyIiIrKkoopabDichfUHL+OquhoAIBGLML6fCrOjQzAs1AsiEVu8iYjag90k1UZ/foPQ6/XNvmmcOnUKCxcuxGuvvYbx48cjNzcXL774ImJjY/HZZ581ec3ixYsRFxdn+rm0tBRBQUGW+wWIiIiIWun4FTXWJl3CT8euolajAwB4ucrw16FBeGRYV/h7OgscIRFRx2M3SbWPjw8kEkmjqnR+fn6j6rVRfHw8Ro4ciRdffBEAMGDAALi6umLUqFF488030aVLl0bXyOVyyOVyy/8CRERERK1Qq9Hh1xO5WJd0CalZJabjAwKVmBMdgokDukDhJBEuQCKiDs5ukmqZTIaoqCgkJiZi6tSppuOJiYmYPHlyk9dUVlZCKm34K0okhjcdO5rPRkRERB3QtdJqfHUoC18dzsL1MsO8FyeJCBP7d8GcESGIDO4kcIRERATYUVINAHFxcZg1axYGDx6M6OhorFq1CllZWYiNjQVgaN3OycnB559/DgCYNGkSnnjiCaxcudLU/r1o0SIMHToU/v7+Qv4qRERERI3UaXU4crEIG45k49fjudDoDEUAlYccjwzrir8ODUZnd3bUERHZErtKqqdPn47CwkIsW7YMubm5CA8Px9atW9G1a1cAQG5uLrKyskznz507F2VlZfjoo4/wwgsvwNPTE/fccw/efvttoX4FIiIiogbUlXXYdTYfv2XkY9eZfJRVa0z3DQnphDkjQjC+nx+cJGIBoyQioubY1T7VQuA+1URERGRpFwsqsDPjGn7LuIYjl4qh1d34OObtKkNMPxUeGdYV4QFKAaMkIuq4HHKfaiIiIiJ7pdHqkHK5GDtP5+O3jGvIvF7R4P5eKjeMDVNhTJgKEUGekIi5HRYRkb1gUk1ERERkBaXVddhz9jp2ZuTjjzP5KKmsM93nJBFhWKg3xoT5YmyYCkFeLgJGSkREbcGkmoiIiMhCsosq8Vt9W/ehzCLToDEA8HRxwt29fTEmzBd39uoMD4WTgJESEZGlMKkmIiIiaiWtTo/07GL8lpGPnRnXcPZaeYP7u3d2NbV1Dwr2hJTDxoiIHA6TaiIiIiIzVNRosPfcdfyWkY8/TuejsKLWdJ9ELMKQkE6mRDrUx1XASImIqD0wqSYiIiK6jZySKvyecQ2JGfk4eKEQtVqd6T53hRSje/tibJgvRvfyhdKFbd1ERB0Jk2oiIiKiP9Hp9DiWo67f9iofGbmlDe7v6u1SX432xZAQL+4hTUTUgTGpJiIiIgJQVavFvvMF2JlxDTtP5+N6WY3pPrEIiOraCWPCVBgb5ovund0gEnHbKyIiYlJNREREHVieuho7T1/Dzox87D9fgBrNjbZuN7kUd/bywdgwFUb39oWXq0zASImIyFYxqSYiIqIOQ6/X4+TVUvyWYUikj+eoG9wf2MnZ1NY9LNQbMinbuomI6NaYVBMREZFDq67T4sCFQlMinVdabbpPJAIigjxNiXRvlTvbuomIyCxMqomIiMjhXC+rwe+nDUPG9p0rQFWd1nSfs5MEd/bywZgwFe7u7YvO7nIBIyUiInvHpJqIiIjsnl6vx+m8MtO07qNXSqDX37i/i1KBMWG+GBOmQnQ3byicJMIFS0REDoVJNREREdmlGo0WhzKLTIl0TklVg/sHBCoxpo+hrbufvwfbuomIyCqYVBMREZHdKCyvwR9nrmNnxjXsOXsdFbU32rrlUjHu6GFo6x4T5guVh0LASImIqKNgUk1EREQ2S6/X43x+OX7LyMfOjGtIzSqG7qa2bl93uaGtu48KI3v4wFnGtm4iImpfTKqJiIjIptRpdThysQiJ9dO6s4oqG9zft4sHxtavj+4foIRYzLZuIiISDpNqIiIiElxJZS12nbmO3zKuYffZ6yir1pjuk0nEiO7ujbF9VRjTxxf+ns4CRkpERNQQk2oiIiISROb1cuzMyMdvGdeQfLkY2pv6ur1dZbinj6EaPaqnD1zl/MhCRES2ie9QRERE1C40Wh1SLhfjt/q27syCigb391a5m7a9igjyhIRt3UREZAfsLqlesWIF3n33XeTm5qJfv35ISEjAqFGjmj2/pqYGy5Ytw5dffom8vDwEBgZiyZIleOyxx9oxaiIioo6ptLoOu+undf9x5jrUVXWm+5wkIgwL9Tatjw7ychEwUiIiotaxq6R648aNWLRoEVasWIGRI0fik08+wYQJE3Dq1CkEBwc3ec20adNw7do1fPbZZ+jRowfy8/Oh0WiaPJeIiIjaLquw0lCNPn0NhzKLoLmprbuTixPu7m1Iou/s5QN3hZOAkRIREbWdSK/X629/mm0YNmwYBg0ahJUrV5qOhYWFYcqUKYiPj290/rZt2zBjxgxkZmbCy8urVc9ZWloKpVIJtVoNDw+PVsdORETkqLQ6PdKzi5F4yrDt1bn88gb3d+/sirFhKowJU2FQsCekErFAkRIREbWMOXmg3VSqa2trkZKSgldeeaXB8ZiYGCQlJTV5zZYtWzB48GC88847+OKLL+Dq6ooHHngAb7zxBpydOTmUiIiotcprNNh79jp+y8jHH2fyUVRRa7pPIhZhaIgXxoT5YmyYCiE+rgJGSkREZF12k1QXFBRAq9VCpVI1OK5SqZCXl9fkNZmZmdi3bx8UCgU2b96MgoICPP300ygqKsLq1aubvKampgY1NTWmn0tLSy33SxAREdmxnJIq7My4hsRThrbuWq3OdJ+HQorRvX0xJswXo3v5QunCtm4iIuoY7CapNhKJGk4C1ev1jY4Z6XQ6iEQirF+/HkqlEgDw/vvv4+GHH8Z///vfJqvV8fHxeP311y0fOBERkZ3R6fQ4eqXEtO3V6byyBveHeLtgTJgKY8NUGBzSCU5s6yYiog7IbpJqHx8fSCSSRlXp/Pz8RtVroy5duiAgIMCUUAOGNdh6vR5XrlxBz549G12zePFixMXFmX4uLS1FUFCQhX4LIiIi21ZZq8G+cwXYmZGPnafzUVB+o3tLLAIGd/UybXvVvbNrs19sExERdRR2k1TLZDJERUUhMTERU6dONR1PTEzE5MmTm7xm5MiR+Pbbb1FeXg43NzcAwNmzZyEWixEYGNjkNXK5HHK53PK/ABERkY3KU1dj5+lr+O3UNSRdKESN5kZbt5tcirt6dcaYMF/c3dsXnVxlAkZKRERke+wmqQaAuLg4zJo1C4MHD0Z0dDRWrVqFrKwsxMbGAjBUmXNycvD5558DAGbOnIk33ngD8+bNw+uvv46CggK8+OKLeOyxxziojIiIOiy9Xo8TOaWmba9O5DScHxLYyRlj69u6h4Z6QSZlWzcREVFz7Cqpnj59OgoLC7Fs2TLk5uYiPDwcW7duRdeuXQEAubm5yMrKMp3v5uaGxMREPPvssxg8eDC8vb0xbdo0vPnmm0L9CkRERIKortMi6UIBfsvIx+8Z+cgrrTbdJxIBEUGepkS6l8qNbd1EREQtZFf7VAuB+1QTEZG9yi+rxu8Z+fgtIx/7zxegqk5rus9FJsGonj4YE6bCPX184ePGpU9ERERGDrlPNREREd2aXq9HRm4ZdmZcw2+n83E0u6TB/V2UCtOQsehu3lA4SYQJlIiIyIEwqSYiIrJjNRotDmYWYWfGNezMyEdOSVWD+wcEKjE2TIUxYb7o28WDbd1EREQWxqSaiIjIzhSW1+D30/nYmZGPveeuo6L2Rlu3wkmMO3rcaOtWeSgEjJSIiMjxMakmIiKycXq9Hufyyw3TujPykZpVjJsnovi6yzEmzBdjw1QY0d0HzjK2dRMREbUXJtVEREQ2qFajw5FLRfgt4xp+y7iG7KKGbd39/D0wJkyFsWG+CPdXQixmWzcREZEQmFQTERHZiPIaDX47dQ2JGdew58x1lNVoTPfJpGKM6O6NMWEqjOnjC39PZwEjJSIiIiMm1URERAKq0+qw71wBNqflYMepPFTX6Uz3+bjJcHdvX4ztq8IdPXzgKufbNhERka3huzMREVE70+v1OHpFjR/ScvDT0asorKg13dfNxxUT+vthTJgKEYGebOsmIiKycUyqiYiI2snlwgr8kHYVP6Tn4GJBhem4t6sMkwb6Y2pkAAYEKrntFRERkR1hUk1ERGRFxRW1+PnYVWxOy0FqVonpuMJJjPH9/DAlMgB39PCBk0QsXJBERETUakyqiYiILKy6ToudGfnYnJaDXWfyodEZ9r8Si4CRPXwwNTIAMf384MY10kRERHaP7+ZEREQWoNPpcfBiIX5Iy8Gvx/MaTO7u5++BqZEBeGCgP3w9FAJGSURERJbGpJqIiKgNTueVYnNaDrakX0Wuutp0PMDTGZMj/DElMgC9VO4CRkhERETWxKSaiIjITLnqKmxJN6yTPp1XZjrurpDi/gFdMCUiAENCvDi5m4iIqANgUk1ERNQCZdV1+PVEHn5Iy8GBzELoDcuk4SQR4Z4+vpgaGYDRvX2hcJIIGygRERG1KybVREREzajT6rDn7HVsTstB4qlrqNHoTPcNDfHClMgA3NffD54uMgGjJCIiIiExqSYiIrqJXq9HWnYJfkjLwU9Hr6K4ss50X/fOrnhwUCAeGOiPIC8XAaMkIiIiW8GkmoiICMDFggr8kJaDH9JzcLmw0nTcx02OBwb6Y2pkAMIDPCAScZ00ERER3cCkmoiIOqzC8hr8fCwXm9NykJ5dYjru7CTBveF+mBIZgJHdvSGViIULkoiIiGwak2oiIupQqmq1SMy4hh/ScrDn7HVodIaJY2IRMKpnZ0yNDMC4viq4yvkWSURERLfHTwxEROTwtDo9DmYWYnNaDradyEN5jcZ034BAJaZEBOD+gV3g664QMEoiIiKyR3aXVK9YsQLvvvsucnNz0a9fPyQkJGDUqFG3vW7//v246667EB4ejvT0dOsHSkREgtLr9cjILcMP6Tn4MT0H10prTPcFdnLG1MgATI4IQA9fNwGjJCIiIntnV0n1xo0bsWjRIqxYsQIjR47EJ598ggkTJuDUqVMIDg5u9jq1Wo3Zs2djzJgxuHbtWjtGTERE7e1qSRV+TL+KH9JycOZamem40tkJEwd0wdTIAEQFd4JYzIFjRERE1HYivV6vFzqIlho2bBgGDRqElStXmo6FhYVhypQpiI+Pb/a6GTNmoGfPnpBIJPjhhx/MqlSXlpZCqVRCrVbDw8OjLeETEZGVqKvqsO2EYeDYoYtFML6zySRijAnzxZTIAIzu3RlyqUTYQImIiMgumJMH2k2lura2FikpKXjllVcaHI+JiUFSUlKz161ZswYXLlzAl19+iTfffPO2z1NTU4OamhstgqWlpa0PmoiIrKZWo8OuM/n4IT0Hv2Xko1ajM903LNQLUyMDMCG8C5QuTgJGSURERI6uRUm1l5eXWQ8qEomQmpqKrl27tiqophQUFECr1UKlUjU4rlKpkJeX1+Q1586dwyuvvIK9e/dCKm3Z9wfx8fF4/fXX2xwvERFZnl6vR2pWMTan5eDnY7koqawz3dfT1w1TBwXggYH+COzkImCURERE1JG0KNMsKSlBQkIClErlbc/V6/V4+umnodVq2xxcU0Sihmvg9Hp9o2MAoNVqMXPmTLz++uvo1atXix9/8eLFiIuLM/1cWlqKoKCg1gdMRERtduF6OX5My8Hm9BxkF1WZjnd2l2PyQH9MiQxAP3+PJt8PiIiIiKypxe3fM2bMgK+vb4vOffbZZ1sdUHN8fHwgkUgaVaXz8/MbVa8BoKysDMnJyUhLS8MzzzwDANDpdNDr9ZBKpdixYwfuueeeRtfJ5XLI5XKLx09EROYpKK/BT0cNA8eOXlGbjrvIJLg33A9TIwMworsPJBw4RkRERAJqUVKt0+luf9JNysrKbn+SmWQyGaKiopCYmIipU6eajicmJmLy5MmNzvfw8MDx48cbHFuxYgV+//13fPfddwgNDbV4jERE1DaVtRoknrqGzWk52HuuAFqdYeKYRCzCnT19MCUyAOP6quAis5uRIEREROTg7OpTSVxcHGbNmoXBgwcjOjoaq1atQlZWFmJjYwEYWrdzcnLw+eefQywWIzw8vMH1vr6+UCgUjY4TEZFwtDo99p8vwA9pOdh2Mg+VtTeWDw0M8sTUCH/cP9AfPm7sIiIiIiLb06qkOicnB/v370d+fn6jKvbChQstElhTpk+fjsLCQixbtgy5ubkIDw/H1q1bTQPRcnNzkZWVZbXnJyIiy9Dr9Th5tRQ/pOXgx6NXcb3sxq4LQV7OmBoRgCmRAejW2U3AKImIiIhuz+x9qtesWYPY2FjIZDJ4e3s3GAojEomQmZlp8SCFxH2qiYgs50pxJX5MN6yTPpdfbjru6eKE+wd0wdTIAAwK7sSBY0RERCQoc/JAs5PqoKAgxMbGYvHixRCLxW0K1B4wqSYiaht1ZR22nsjF5rQcHL5YZDouk4oxLkyFKZEBuKtXZ8ikjv+eQkRERPbBnDzQ7PbvyspKzJgxo0Mk1ERE1Do1Gi3+OH0dP6Tl4PfT+ajVGpYKiUTA8FBvTI0MwL39/eChcBI4UiIiIqK2MTupnj9/Pr799lu88sor1oiHiIjslE6nR/LlYmxOy8Evx66itFpjuq+3yh1TBwXggYH+8Pd0FjBKIiIiIssyu/1bq9Xi/vvvR1VVFfr37w8np4ZVhvfff9+iAQqN7d9ERLd2Pr8cP6Tl4If0HFwprjIdV3nIMTkiAFMjAxDWhf9+EhERkf2wavv3W2+9he3bt6N3794A0GhQGREROb78smr8dDQXP6Tl4HiO2nTcTS7FveF+mBoZgOHdvCER832BiIiIHJvZSfX777+P1atXY+7cuVYIh4iIbFVFjQY7TuVhc9pV7Dt3Hbr6PiepWIS7enXGlMgAjA1TwVkmETZQIiIionZkdlItl8sxcuRIa8RCREQ2RqPVYd/5AvyQloPtJ6+hqk5rui8y2BNTIwMwsX8XeLvJBYySiIiISDhmJ9XPPfccPvzwQyxfvtwa8RARkcD0ej2O56ixOS0HPx29ioLyWtN9Xb1dMDUyAFMiAhDi4ypglERERES2weyk+vDhw/j999/x888/o1+/fo0GlW3atMliwRERUfvJLqrEj+k52JyWgwvXK0zHO7k4YdJAf0yJDEBkkCfnZxARERHdxOyk2tPTEw8++KA1YiEionZWUlmLX44bBo4duVRsOi6XijGurwpTIwNwZ6/OcJKIBYySiIiIyHaZnVSvWbPGGnEQEVE7yrxejn/9ehp/nMlHndYwcUwkAkZ098aUiADcG+4Hd4XTbR6FiIiIiMxOqomIyL4Vltdg1meHkVNi2FM6rIsHpkb644GBAfBTKgSOjoiIiMi+tKifb9CgQSguLr79ifXuuOMO5OTktDooIiKyjjqtDgu+SkVOSRVCvF3w63Oj8Otzo/C3O7szoSYiIiJqhRZVqtPT03H06FF4eXm16EHT09NRU1PTpsCIiMjy/u+XDBzMLIKrTIJVswejl8pd6JCIiIiI7FqL27/HjBkDvV7fonM5GZaIyPZ8k5yNtUmXAAAfTI9gQk1ERERkAS1Kqi9evGj2AwcGBpp9DRERWUdqVjH+3+YTAIBFY3sipp+fwBEREREROYYWJdVdu3a1dhxERGQl10qrEftFCmq1OsT0VWHhPT2FDomIiIjIYXDjUSIiB1aj0SL2yxTkl9Wgp68b3p8eAbGYS3SIiIiILIVJNRGRg9Lr9Xjth5NIyyqBh0KKT2cPhpucOykSERERWRKTaiIiB/XFwcvYmJwNsQj4cOYghPi4Ch0SERERkcOxu6R6xYoVCA0NhUKhQFRUFPbu3dvsuZs2bcK4cePQuXNneHh4IDo6Gtu3b2/HaImIhHEwsxDLfjoFAHj53j64q1dngSMiIiIickxmJ9Vz587Fnj17rBHLbW3cuBGLFi3CkiVLkJaWhlGjRmHChAnIyspq8vw9e/Zg3Lhx2Lp1K1JSUnD33Xdj0qRJSEtLa+fIiYjaz5XiSjy9PhUanR4PDPTH3+7sJnRIRERERA5LpG/p5tP1HnroIfzyyy8ICgrCvHnzMGfOHAQEBFgrvgaGDRuGQYMGYeXKlaZjYWFhmDJlCuLj41v0GP369cP06dPx2muvtej80tJSKJVKqNVqeHh4tCpuIqL2UlWrxcMfJ+Hk1VL08/fAd7Ej4CyTCB0WERERkV0xJw80u1L9/fffIycnB8888wy+/fZbhISEYMKECfjuu+9QV1fX6qBvp7a2FikpKYiJiWlwPCYmBklJSS16DJ1Oh7KyMnh5eVkjRCIiQen1erz0/TGcvFoKb1cZVs0ezISaiIiIyMpataba29sbzz33HNLS0nD48GH06NEDs2bNgr+/P55//nmcO3fO0nGioKAAWq0WKpWqwXGVSoW8vLwWPca///1vVFRUYNq0ac2eU1NTg9LS0gY3IiJ7sGpPJn46ehVSsQgrHhmEAE9noUMiIiIicnhtGlSWm5uLHTt2YMeOHZBIJLjvvvtw8uRJ9O3bFx988IGlYmxAJGq4v6per290rCkbNmzA0qVLsXHjRvj6+jZ7Xnx8PJRKpekWFBTU5piJiKxt99nreHvbaQDAa5P6Ylg3b4EjIiIiIuoYzE6q6+rq8P333+P+++9H165d8e233+L5559Hbm4u1q1bhx07duCLL77AsmXLLBqoj48PJBJJo6p0fn5+o+r1n23cuBHz58/HN998g7Fjx97y3MWLF0OtVptu2dnZbY6diMiaLhVU4NmvUqHTA9MHB2HW8K5Ch0RERETUYUjNvaBLly7Q6XT461//isOHDyMiIqLROePHj4enp6cFwrtBJpMhKioKiYmJmDp1qul4YmIiJk+e3Ox1GzZswGOPPYYNGzZg4sSJt30euVwOuVxukZiJiKytvEaDJz5PRmm1BoOCPbFsSr8Wde8QERERkWWYnVR/8MEH+Mtf/gKFQtHsOZ06dcLFixfbFFhT4uLiMGvWLAwePBjR0dFYtWoVsrKyEBsbC8BQZc7JycHnn38OwJBQz549G//5z38wfPhwU5Xb2dkZSqXS4vEREbUnnU6P5zem41x+OVQecnz8aBTkUg4mIyIiImpPZifVs2bNskYcLTJ9+nQUFhZi2bJlyM3NRXh4OLZu3YquXQ2tjrm5uQ32rP7kk0+g0WiwYMECLFiwwHR8zpw5WLt2bXuHT0RkUf/ZeQ6Jp65BJhHj40ej4OvR/JedRERERGQdZu9T3dFwn2oiskXbTuQh9ssUAMC7Dw/AXwZzqCIRERGRpVh1n2oiIhLW2WtleOGbdADA3BEhTKiJiIiIBMSkmojIjqgr6/C3z5NRUatFdDdvLJkYJnRIRERERB0ak2oiIjuh1enxzIZUXCqsRICnM/77yCA4SfjPOBEREZGQ+GmMiMhOvLPtNPaeK4DCSYxVs6Pg5SoTOiQiIiKiDo9JNRGRHfgxPQef7MkEALz78ED08+e2gERERES2gEk1EZGNO5GjxkvfHQMAPDW6OyYN9Bc4IiIiIiIyYlJNRGTDCspr8LfPk1Gj0WF07874e0xvoUMiIiIiopswqSYislF1Wh2eXp+Kq+pqdPNxxX9mREIiFgkdFhERERHdhEk1EZGNeuPnUzh8sQhucilWzY6C0tlJ6JCIiIiI6E+YVBMR2aCNR7Lw+YHLEImAhOkR6OHrLnRIRERERNQEJtVERDYm5XIx/t8PJwAAcWN7YWxflcAREREREVFzmFQTEdmQPHU1Yr9MQZ1Wj3v7+WHB3T2EDomIiIiIboFJNRGRjaiu0+LJL1NwvawGvVXu+Pe0gRBzMBkRERGRTWNSTURkA/R6Pf7fDydwNLsESmcnrJodBVe5VOiwiIiIiOg2mFQTEdmAdUmX8F3KFYhFwH9nDkJXb1ehQyIiIiKiFmBSTUQksKQLBXjjlwwAwKv3heGOnj4CR0RERERELcWkmohIQNlFlViwPhVanR5TIwMw/45QoUMiIiIiIjMwqSYiEkhlrQZ/+yIFxZV1GBCoRPyD/SEScTAZERERkT1hUk1EJAC9Xo+XvjuGjNxS+LjJ8PGjUVA4SYQOi4iIiIjMxKSaiEgAK3dfwM/HciEVi7Dy0Sj4ezoLHRIRERERtQKTaiKidnY0uwTvbj8DAFj6QD8MCfESOCIiIiIiai27S6pXrFiB0NBQKBQKREVFYe/evbc8f/fu3YiKioJCoUC3bt3w8ccft1OkRERNK6/RQK8HXGQSPBwVKHQ4RERERNQGdpVUb9y4EYsWLcKSJUuQlpaGUaNGYcKECcjKymry/IsXL+K+++7DqFGjkJaWhldffRULFy7E999/386RExHdMLybNwI8nVFZq8WvJ3KFDoeIiIiI2kCk1+v1QgfRUsOGDcOgQYOwcuVK07GwsDBMmTIF8fHxjc5/+eWXsWXLFmRkZJiOxcbG4ujRozhw4ECLnrO0tBRKpRJqtRoeHh5t/yWIiAB8uPMc/p14FkNCOuHb2BFCh0NERERENzEnD7SbSnVtbS1SUlIQExPT4HhMTAySkpKavObAgQONzh8/fjySk5NRV1fX5DU1NTUoLS1tcCMisrRpQ4IgEYtw5FIxzl0rEzocIiIiImolu0mqCwoKoNVqoVKpGhxXqVTIy8tr8pq8vLwmz9doNCgoKGjymvj4eCiVStMtKCjIMr8AEdFNVB4KjOnjCwD46nDTS1iIiIiIyPbZTVJtJBKJGvys1+sbHbvd+U0dN1q8eDHUarXplp2d3caIiYia9tdhwQCATak5qK7TChwNEREREbWG3STVPj4+kEgkjarS+fn5jarRRn5+fk2eL5VK4e3t3eQ1crkcHh4eDW5ERNZwZ8/OCPB0hrqqDluPc2AZERERkT2ym6RaJpMhKioKiYmJDY4nJiZixIimh/xER0c3On/Hjh0YPHgwnJycrBYrEVFLSMQizBhiWGKywQot4P/bm4l//HACR7NLLP7YRERERGRgN0k1AMTFxeF///sfVq9ejYyMDDz//PPIyspCbGwsAEPr9uzZs03nx8bG4vLly4iLi0NGRgZWr16Nzz77DH//+9+F+hWIiBq4eWDZWQsPLPvpWC6+OHgZlworLPq4RERERHSDXSXV06dPR0JCApYtW4aIiAjs2bMHW7duRdeuXQEAubm5DfasDg0NxdatW7Fr1y5ERETgjTfewPLly/HQQw8J9SsQETWg8lBgbJhhYJklq9U1Gi0yrhp2L4gM6mSxxyUiIiKihuxqn2ohcJ9qIrK2XWfyMXfNEXgopDi8ZCwUTpI2P2Z6dgmm/Hc/vFxlSPl/Y2850JGIiIiIGnLIfaqJiByVcWBZabXGYgPL0rOKAQADA5VMqImIiIisiEk1EZHAxGIR/jrUMLDsq0OWaQE/lqMGAAwM8rTI4xERERFR05hUExHZgGmDDQPLki9bZmDZxQLDcLLeKvc2PxYRERERNY9JNRGRDfC9aWCZJarVl+qT6q7erm1+LCIiIiJqHpNqIiIbMXOYYSeDTalXUF2nbfXjqCvrUFxZBwDo6u1ikdiIiIiIqGlMqomIbMSoHj4I7GQYWPbLsdYPLDPuS+3rLoerXGqp8IiIiIioCUyqiYhshGFgWTAA4Ks27FltTKpD2PpNREREZHVMqomIbMhfogIhFYuQcrkYZ/JaN7CsuKIWANDZXW7J0IiIiIioCUyqiYhsiGFgmQoAsKGV1eqKWsN6bFe5xGJxEREREVHTmFQTEdmYvw4ztIBvSr2CqlrzB5ZV1GgAgOupiYiIiNoBk2oiIhvTYGDZcfMHllUaK9UyJtVERERE1sakmojIxtw8sKw1LeDl9ZVqF7Z/ExEREVkdk2oiIhv0l8GtH1hWWWtIqt3Y/k1ERERkdUyqiYhskK976weWGddhyyT8J56IiIjI2viJi4jIRs2sH1j2vZkDy/yUCgBATkmVVeIiIiIiohuYVBMR2ag7evggyMsZZWYOLOve2Q0AcD6/3FqhEREREVE9JtVERDZKLBZhxhBDtfqrQ5dbfF0PXybVRERERO2FSTURkQ0zDixLzSrB6bzSFl3TU+UOALhYUIE6rc6a4RERERF1eEyqiYhsmK+7AuP61g8sO9SygWX+SgVcZBJodHpcLqy0ZnhEREREHR6TaiIiG2fcs3pTWk6LBpaJRCKuqyYiIiJqJ3aTVBcXF2PWrFlQKpVQKpWYNWsWSkpKmj2/rq4OL7/8Mvr37w9XV1f4+/tj9uzZuHr1avsFTURkATcPLPv5WMv+DetZv6763DXz9rgmIiIiIvPYTVI9c+ZMpKenY9u2bdi2bRvS09Mxa9asZs+vrKxEamoq/vGPfyA1NRWbNm3C2bNn8cADD7Rj1EREbXfzwLKW7lndp4thXfWp3JatwyYiIiKi1pEKHUBLZGRkYNu2bTh48CCGDRsGAPj0008RHR2NM2fOoHfv3o2uUSqVSExMbHDsww8/xNChQ5GVlYXg4OB2iZ2IyBL+MjgQHySeRWpWCb4+nIUZQ2/9b1i4vxIAcOKquj3CIyIiIuqw7KJSfeDAASiVSlNCDQDDhw+HUqlEUlJSix9HrVZDJBLB09PTClESEVmPr7sCC+7uAQBY8sMJ/HEm/5bn9wswJNXZRVUoqay1enxEREREHZVdJNV5eXnw9fVtdNzX1xd5eXkteozq6mq88sormDlzJjw8PJo9r6amBqWlpQ1uRES2YNHYnnhwUAC0Oj0WrE/FiZzmq9BKZycEe7kAAE5e5b9jRERERNYiaFK9dOlSiESiW96Sk5MBGKbZ/pler2/y+J/V1dVhxowZ0Ol0WLFixS3PjY+PNw1DUyqVCAoKat0vR0RkYSKRCP96cADu6OGDylot5q09guyi5rfMCg8wfIF4/BbJNxERERG1jaBJ9TPPPIOMjIxb3sLDw+Hn54dr1641uv769etQqVS3fI66ujpMmzYNFy9eRGJi4i2r1ACwePFiqNVq0y07O7tNvyMRkSXJpGKseHQQ+vi543pZDeatPQJ1ZV2T54bXt4DfqqJNRERERG0j6KAyHx8f+Pj43Pa86OhoqNVqHD58GEOHDgUAHDp0CGq1GiNGjGj2OmNCfe7cOfzxxx/w9va+7XPJ5XLI5fKW/xJERO3MQ+GENfOGYOp/k3A+vxxPfJGML+YPhVwqaXCeaVgZk2oiIiIiq7GLNdVhYWG499578cQTT+DgwYM4ePAgnnjiCdx///0NJn/36dMHmzdvBgBoNBo8/PDDSE5Oxvr166HVapGXl4e8vDzU1nJoDxHZty5KZ6yZNwTucikOXyzCC98chU6nb3BOj/q9qq8UVwkRIhEREVGHYBdJNQCsX78e/fv3R0xMDGJiYjBgwAB88cUXDc45c+YM1GpDRebKlSvYsmULrly5goiICHTp0sV0M2diOBGRrQrr4oGPZ0VBKhbh52O5eHvb6Qb3u8oMzUganR51Wp0QIRIRERE5PLvYpxoAvLy88OWXX97yHL3+RpUmJCSkwc9ERI5oZA8fvP3QALzw7VF8sicTAZ2cMTs6BACgkN343rSqTgsnid18j0pERERkN/gJi4jIzj0UFYgXxvUCACzdchI7Thq2GpRJxBDXb5BQXasVKjwiIiIih8akmojIATxzTw/MGBIEnR5Y+HUa0rKKIRKJ4FLfAl5Vx6SaiIiIyBqYVBMROQCRSIQ3p4RjdO/OqK7T4fF1ybhcWAGFk2EieCUr1URERERWwaSaiMhBSCVi/HfmIIQHeKCwohZz1xxBdX2FmpVqIiIiIutgUk1E5EBc5VKsnjsEAZ7OuFhQgfIaDQCgVsPp30RERETWwKSaiMjB+LorsO6xIaYhZQDQzcdVuICIiIiIHBiTaiIiB9TD1x0L7u5h+nnFrgvcZpCIiIjICphUExE5KKn4xj/xa5Mu4bN9FwWMhoiIiMgxMakmInJQqVnFAIDATs4AgDd/ycAvx3KFDImIiIjI4TCpJiJyQDqdHmn1SfWKRwZhTnRXAMDz36TjyKUiIUMjIiIicihMqomIHFBmQTlKqzVQOIkR1sUDr03qh3F9VajVGPawPp9fLnSIRERERA6BSTURkQM6fNFQpR4Q4AkniRgSsQjLZ0QiIsgT6qo6vPHzKYEjJCIiInIMTKqJiBzQ1uOGtdN39e5sOuYsk+D9aQMBAPvOF6C4olaQ2IiIiIgcCZNqIiIHc72sBkkXCgAA9w/o0uC+bp3dENbFA1qdHjtO5QkRHhEREZFDYVJNRORgtp3IhU4PDAxUoqu3a6P77wv3AwBsPc6kmoiIiKitmFQTETmYn44aWr8nDfRv8v776qvX+88XoKSSLeBEREREbcGkmojIgeSqq3C4fsusiX9q/Tbq3tkNffzcodHpsePUtfYMj4iIiMjhMKkmInIgvxwzVKmHhHRCF6Vzs+fd19+QcP9aP9CMiIiIiFqHSTURkQPZffY6gBtJc3OM9+87XwB1VZ3V4yIiIiJyVEyqiYgciEgkAgB4KJxueV4PXzf0UrmhTqtHIlvAiYiIiFqNSTURkQNxl0sBAOU1mtueyxZwIiIiorazm6S6uLgYs2bNglKphFKpxKxZs1BSUtLi65988kmIRCIkJCRYLUYiIqG51SfVZdW3b+nu28UDALD3XEGLknAiIiIiasxukuqZM2ciPT0d27Ztw7Zt25Ceno5Zs2a16NoffvgBhw4dgr9/09vLEBE5CjdFfVJ9iyS5rLoOb/x8Ck+tTwUAuMgl0On17RIfERERkaORCh1AS2RkZGDbtm04ePAghg0bBgD49NNPER0djTNnzqB3797NXpuTk4NnnnkG27dvx8SJE9srZCIiQRgr1Tsz8hHs5YK7e/vC39MwBVyv12PL0av4v18ykF9WAwAY30+Ff9zf97ZrsImIiIioaXaRVB84cABKpdKUUAPA8OHDoVQqkZSU1GxSrdPpMGvWLLz44ovo169fi56rpqYGNTU1pp9LS0vbFjwRUTvq629o6T6fX44lm08AAPr4ueOu3p1xNLsEBzMNe1iHeLvgnw/0w929fQWLlYiIiMgR2EVSnZeXB1/fxh/8fH19kZeX1+x1b7/9NqRSKRYuXNji54qPj8frr7/eqjiJiIQ2vp8fti0ahZ0Z+fj9dD7SsopxOq8Mp/PKAAByqRjP3N0DT9zZDQonicDREhEREdk/QZPqpUuX3jaBPXLkCIAb28TcTK/XN3kcAFJSUvCf//wHqampzZ7TlMWLFyMuLs70c2lpKYKCglp8PRGR0Pr4eaCPnwcW3N0DxRW12HPuOnafuQ65kxhPj+6BIC8XoUMkIiIichiCJtXPPPMMZsyYcctzQkJCcOzYMVy71ngf1evXr0OlUjV53d69e5Gfn4/g4GDTMa1WixdeeAEJCQm4dOlSk9fJ5XLI5fKW/xJERDask6sMkyMCMDkiQOhQiIiIiBySoEm1j48PfHx8bntedHQ01Go1Dh8+jKFDhwIADh06BLVajREjRjR5zaxZszB27NgGx8aPH49Zs2Zh3rx5bQ+eiIiIiIiIOjy7WFMdFhaGe++9F0888QQ++eQTAMDf/vY33H///Q2GlPXp0wfx8fGYOnUqvL294e3t3eBxnJyc4Ofnd8tp4UREREREREQtZTf7VK9fvx79+/dHTEwMYmJiMGDAAHzxxRcNzjlz5gzUarVAERIREREREVFHI9Lr9Xqhg7BlarUanp6eyM7OhoeHh9DhEBERERERkZUZB1aXlJRAqVTe8ly7aP8WUlmZYRsaTgAnIiIiIiLqWMrKym6bVLNSfRs6nQ5Xr16Fu7u7WVtzEf2Z8dsudj1Qe+HfHAmBf3ckBP7dUXvj35zj0+v1KCsrg7+/P8TiW6+aZqX6NsRiMQIDA4UOgxyIh4cH//GldsW/ORIC/+5ICPy7o/bGvznHdrsKtZHdDCojIiIiIiIisjVMqomIiIiIiIhaiUk1UTuRy+X45z//CblcLnQo1EHwb46EwL87EgL/7qi98W+ObsZBZUREREREREStxEo1ERERERERUSsxqSYiIiIiIiJqJSbVRERERERERK3EpJqIiIiIiIiolZhUEwng//7v/zBixAi4uLjA09NT6HDIQa1YsQKhoaFQKBSIiorC3r17hQ6JHNiePXswadIk+Pv7QyQS4YcffhA6JHJw8fHxGDJkCNzd3eHr64spU6bgzJkzQodFDm7lypUYMGAAPDw84OHhgejoaPz6669Ch0UCY1JNJIDa2lr85S9/wVNPPSV0KOSgNm7ciEWLFmHJkiVIS0vDqFGjMGHCBGRlZQkdGjmoiooKDBw4EB999JHQoVAHsXv3bixYsAAHDx5EYmIiNBoNYmJiUFFRIXRo5MACAwPxr3/9C8nJyUhOTsY999yDyZMn4+TJk0KHRgLillpEAlq7di0WLVqEkpISoUMhBzNs2DAMGjQIK1euNB0LCwvDlClTEB8fL2Bk1BGIRCJs3rwZU6ZMEToU6kCuX78OX19f7N69G3feeafQ4VAH4uXlhXfffRfz588XOhQSCCvVREQOpra2FikpKYiJiWlwPCYmBklJSQJFRURkXWq1GoAhwSFqD1qtFl9//TUqKioQHR0tdDgkIKnQARARkWUVFBRAq9VCpVI1OK5SqZCXlydQVERE1qPX6xEXF4c77rgD4eHhQodDDu748eOIjo5GdXU13NzcsHnzZvTt21fosEhArFQTWcjSpUshEolueUtOThY6TOpARCJRg5/1en2jY0REjuCZZ57BsWPHsGHDBqFDoQ6gd+/eSE9Px8GDB/HUU09hzpw5OHXqlNBhkYBYqSaykGeeeQYzZsy45TkhISHtEwx1aD4+PpBIJI2q0vn5+Y2q10RE9u7ZZ5/Fli1bsGfPHgQGBgodDnUAMpkMPXr0AAAMHjwYR44cwX/+8x988sknAkdGQmFSTWQhPj4+8PHxEToMIshkMkRFRSExMRFTp041HU9MTMTkyZMFjIyIyHL0ej2effZZbN68Gbt27UJoaKjQIVEHpdfrUVNTI3QYJCAm1UQCyMrKQlFREbKysqDVapGeng4A6NGjB9zc3IQNjhxCXFwcZs2ahcGDByM6OhqrVq1CVlYWYmNjhQ6NHFR5eTnOnz9v+vnixYtIT0+Hl5cXgoODBYyMHNWCBQvw1Vdf4ccff4S7u7upO0epVMLZ2Vng6MhRvfrqq5gwYQKCgoJQVlaGr7/+Grt27cK2bduEDo0ExC21iAQwd+5crFu3rtHxP/74A6NHj27/gMghrVixAu+88w5yc3MRHh6ODz74gNvMkNXs2rULd999d6Pjc+bMwdq1a9s/IHJ4zc2IWLNmDebOndu+wVCHMX/+fOzcuRO5ublQKpUYMGAAXn75ZYwbN07o0EhATKqJiIiIiIiIWonTv4mIiIiIiIhaiUk1ERERERERUSsxqSYiIiIiIiJqJSbVRERERERERK3EpJqIiIiIiIiolZhUExEREREREbUSk2oiIiIiIiKiVmJSTURERERERNRKTKqJiIgIAHDp0iWIRCKIRCJERES0+fGMj+Xp6dnmxyIiIrJVTKqJiIiogd9++w07d+5s8+Pk5uYiISGh7QERERHZMCbVRERE1IC3tze8vb3b/Dh+fn5QKpUWiIiIiMh2MakmIiJyQNevX4efnx/eeust07FDhw5BJpNhx44dZj3W3LlzMWXKFLz11ltQqVTw9PTE66+/Do1GgxdffBFeXl4IDAzE6tWrLf1rEBER2Typ0AEQERGR5XXu3BmrV6/GlClTEBMTgz59+uDRRx/F008/jZiYGLMf7/fff0dgYCD27NmD/fv3Y/78+Thw4ADuvPNOHDp0CBs3bkRsbCzGjRuHoKAgK/xGREREtomVaiIiIgd133334YknnsAjjzyC2NhYKBQK/Otf/2rVY3l5eWH58uXo3bs3HnvsMfTu3RuVlZV49dVX0bNnTyxevBgymQz79++38G9BRERk25hUExERObD33nsPGo0G33zzDdavXw+FQtGqx+nXrx/E4hsfG1QqFfr372/6WSKRwNvbG/n5+W2OmYiIyJ4wqSYiInJgmZmZuHr1KnQ6HS5fvtzqx3Fycmrws0gkavKYTqdr9XMQERHZI66pJiIiclC1tbV45JFHMH36dPTp0wfz58/H8ePHoVKphA6NiIjIYbBSTURE5KCWLFkCtVqN5cuX46WXXkJYWBjmz58vdFhEREQOhUk1ERGRA9q1axcSEhLwxRdfwMPDA2KxGF988QX27duHlStXCh0eERGRw2D7NxERkQMaPXo06urqGhwLDg5GSUmJ2Y+1du3aRsd27drV6NilS5fMfmwiIiJ7x6SaiIiIGhgxYgQiIiKQlJTUpsdxc3ODRqNp9cRxIiIie8CkmoiIiAAAgYGBOHfuHABALpe3+fHS09MBGLbbIiIiclQivV6vFzoIIiIiIiIiInvEQWVERERERERErcSkmoiIiIiIiKiVmFQTERERERERtRKTaiIiIiIiIqJWYlJNRERERERE1EpMqomIiIiIiIhaiUk1ERERERERUSsxqSYiIiIiIiJqJSbVRERERERERK3EpJqIiIiIiIiolZhUExEREREREbUSk2oiIiIiIiKiVmJSTURERERERNRKUqEDsHU6nQ5Xr16Fu7s7RCKR0OEQAQD0ej3Kysrg7+8PsZjfjbUUX89ki/h6bh2+nskW8fXcOnw9ky0y5/XMpPo2rl69iqCgIKHDIGpSdnY2AgMDhQ7DbvD1TLaMr2fz8PVMtoyvZ/Pw9Uy2rCWvZybVt+Hu7g7A8H+mh4eHwNEQGZSWliIoKMj090ktw9cz2SK+nluHr2eyRXw9tw5fz2SLzHk9M6m+DWMLioeHB1/kZHPYImUevp7JlvH1bB6+nsmW8fVsHr6eyZa15PXMxR5ERERERERErcSkmoiIiIiIiKiVmFQTERERERERtZJdJdV79uzBpEmT4O/vD5FIhB9++OG21+zevRtRUVFQKBTo1q0bPv74Y+sHSkRERERERB2CXSXVFRUVGDhwID766KMWnX/x4kXcd999GDVqFNLS0vDqq69i4cKF+P77760cKRERERGRY4mPj4dIJMKiRYtMx5YuXYo+ffrA1dUVnTp1wtixY3Ho0CHhgiQSgF1N/54wYQImTJjQ4vM//vhjBAcHIyEhAQAQFhaG5ORkvPfee3jooYcsElOeuhp+SoVFHouIiIiIyBYdOXIEq1atwoABAxoc79WrFz766CN069YNVVVV+OCDDxATE4Pz58+jc+fOAkVL1L7sqlJtrgMHDiAmJqbBsfHjxyM5ORl1dXVNXlNTU4PS0tIGt+bsO1eAO9/5A5/tuwi9Xm/R2InItpzOK8Xk/+7HgQuFQodCRLfxbXI2hr31GxZvOiZ0KEQOoby8HI888gg+/fRTdOrUqcF9M2fOxNixY9GtWzf069cP77//PkpLS3HsWMd4/f16PBeT/7sf5/PLhA6FBOTQSXVeXh5UKlWDYyqVChqNBgUFBU1eEx8fD6VSaboFBQU1+/i7zuSjVqvDGz+fwqubj6NWo7No/ERkO7akX8XR7BL8e8cZoUMhotuo0+pxrbQGBeW1QodC5BAWLFiAiRMnYuzYsbc8r7a2FqtWrYJSqcTAgQPbKTphffDbWRzNLsEHv50TOhQSkEMn1UDjzbqNFeXmNvFevHgx1Gq16Zadnd3sYy+ZGIb/NzEMIhGw4XA2Zq8+hOIKvoETOaKSKkN3S/LlYlwtqRI4GiK6FWeZ4eNNdZ1W4EiI7N/XX3+N1NRUxMfHN3vOzz//DDc3NygUCnzwwQdITEyEj49Ps+eb0xlqyzKvl+PstXIAwPYTechTVwscEQnFoZNqPz8/5OXlNTiWn58PqVQKb2/vJq+Ry+Xw8PBocGuOSCTC46O64bM5g+Eml+JgZhGmrGD7B5EjUlfeWDLyy7FcASMhottRSCUAgKpaJtVEbZGdnY3nnnsOX375JRSK5mcI3X333UhPT0dSUhLuvfdeTJs2Dfn5+c2eb05nqC3bfvKa6b81Oj2+OpwlYDQkJIdOqqOjo5GYmNjg2I4dOzB48GA4OTlZ7Hnu6aPC90+NQGAnZ1wurMTU/yZh99nrFnt8IhJeSdWNLpSfjl0VMBIiuh2FzJBUV2uYVBO1RUpKCvLz8xEVFQWpVAqpVIrdu3dj+fLlkEql0GoNrzFXV1f06NEDw4cPx2effQapVIrPPvus2cc1pzPUlm0/aSjejehuKNZ9dSiLy0E7KLtKqsvLy5Geno709HQAhi2z0tPTkZVl+FZo8eLFmD17tun82NhYXL58GXFxccjIyMDq1avx2Wef4e9//7vFY+vt544fF4zEkJBOKKvRYN6aw1i7nwPMiBxFyU2V6mNX1LhcWCFgNET2LycnB48++ii8vb3h4uKCiIgIpKSkWOSxWakmsowxY8bg+PHjps/f6enpGDx4MB555BGkp6dDIpE0eZ1er0dNTU2zj2tOZ6itylNXIz27BCIR8O5fBkLlIUdBeQ1+PcFuto7IrpLq5ORkREZGIjIyEgAQFxeHyMhIvPbaawCA3NxcU4INAKGhodi6dSt27dqFiIgIvPHGG1i+fLnFttP6M283Ob58fBgejgqETg8s/ekUlvxwAnVafmNFZO+MSbWXqwwA8DNbwIlarbi4GCNHjoSTkxN+/fVXnDp1Cv/+97/h6elpkcd3Nlaq6/j+S9QW7u7uCA8Pb3BzdXWFt7c3wsPDUVFRgVdffRUHDx7E5cuXkZqaiscffxxXrlzBX/7yF6HDt6rEU4YqdWSQJwI8nfHIsK4AgHVJlwSMioRiV/tUjx49+paV37Vr1zY6dtdddyE1NdWKUTUkl0rw7sMD0NPXDf/adhpfHcpCgKczFtzdo91iICLLU9cPKps2OAgf776An45e5euaqJXefvttBAUFYc2aNaZjISEhFnt8ZydjUs1KNZE1SSQSnD59GuvWrUNBQQG8vb0xZMgQ7N27F/369RM6PKsyrqce388PADBjaBA+/P0cUrNKcPyKGv0DlUKGR+3MrirV9kIkEuHJu7rjHxP7AgB2nMy7zRVEZMvqtDqU12gAANOHBMFJIsLpvDIOJSRqpS1btmDw4MH4y1/+Al9fX0RGRuLTTz+95TXmTAtWOHH6N5G17Nq1CwkJCQAAhUKBTZs2IScnBzU1Nbh69Sp+/PFHDBkyRNggraykshYHMgsB3Eiqfd0VuK9/FwDAugOXhAqNBMKk2oomDjC8sI7lqLnVFpEdM1apASDYywWjenYGAPx0lC3gRK2RmZmJlStXomfPnti+fTtiY2OxcOFCfP75581eY860YGOluqpOy9kmRGRxOzPyodXp0VvljhAfV9Px2dEhAIAtR6+iiJ/9OxQm1Vak8lCgt8odej2QdKFQ6HCIqJWM66k9FFJIxCLcX/+F2c/HrvIDO1Er6HQ6DBo0CG+99RYiIyPx5JNP4oknnsDKlSubvcacacHy+qRapwfqtHyNEpFlGad+jw/3a3B8ULAnwgM8UKvRYeMR+5xoTq3DpNrKRvU0bHy/9xy32CKyV+r67bQ8XQxDysb1VUEmFePC9Qpk5LIFnMhcXbp0Qd++fRscCwsLazBs9M/MmRZsrFQDhmo1EZGlVNZqsKf+c/34fqoG94lEIsypr1Z/efAytDp+qddRMKm2slG9DG2ie88VsKJFZKeMlWpPF8P+9u4KJ9zd2/Da/pl7VhOZbeTIkThz5kyDY2fPnkXXrl0t8vhOEhHEIsN/1zCpJiIL2nP2OqrrdAjs5Iy+XRp/uTdpoD86uTghp6QKv2VcEyBCEgKTaisbGuIFmUSMnJIqZBZwX1sie2RMqpXOTqZjkwb6AwB+Ygs4kdmef/55HDx4EG+99RbOnz+Pr776CqtWrcKCBQss8vgikajBumoiIku5eeq3SCRqdL/CSYLpQ4IBAJ9zYFmHwaTaypxlEgwJ7QQA2HuWLeBE9qikyliplpmO3dPHF85OEmQXVeHYFbVQoRHZpSFDhmDz5s3YsGEDwsPD8cYbbyAhIQGPPPKIxZ5DwaSaiCysTqvDzoyGW2k15dHhwRCLgP3nC7lTSAfBpLodGCcF7z1XIHAkRNQa6sr6NdU3VapdZFKMCfMFAPx0lC3gROa6//77cfz4cVRXVyMjIwNPPPGERR9fYdqrWmfRxyWijutgZiFKqzXwcZMhqmunZs8L7OSCsWGG9dafH7jcXuGRgJhUtwPjsLKDmYWo1fDNncje3KhUOzU4bmwB/+V4LnQcRkJkU5xl9ZXqWlaqicgytp0wTP0e11cFibhx6/fN5owIAQB8n3IFZdV1tzyX7B+T6nYQ5ucBb1cZKmq1SMsqFjocIjJTU2uqAeCuXp3hLpciV12NFL62iWyKwsnwEadaw6SaiNpOp9Mj8ZSh9TvmFq3fRiO6e6N7Z1dU1GrxfcoVa4dHAmNS3Q7EYhHuMG2txRZwInvT1JpqwNBeOq5+O42f2QJOZFOMg8qqWakmIgtIyy5BflkN3ORSjOjufdvzRSKRqVr9+YHL7GhzcEyq28mNddUcVkZkb5paU200aYCxBTyP+1ES2RDTmmpWqonIAnacNLR+393HF3KppEXXPDgoEG5yKTILKpB0odCa4ZHAmFS3E+O66mM5ahRX1AocDRGZo7k11QAwsocPlM5OKCivwaFMvmES2QrT9O9azjIhorbR6/XYXp9U39uC1m8jN7kUD0TUb8HJjjaHxqS6nag8FOitcodeD35TRVRvxYoVCA0NhUKhQFRUFPbu3dui6/bv3w+pVIqIiAjrBljPuKa6qaRaJhVjQrjhDfanY3zDJLIVN6Z/s1JNRG1z5loZLhVWQiYVY3TvzmZde3//LgCA7afyUKfll3yOikl1O7qxrpot4EQbN27EokWLsGTJEqSlpWHUqFGYMGECsrKybnmdWq3G7NmzMWbMmHaJU6vTo7TaOKhM1uQ599e3gP96gm+YRLbCuX5QGfepJqK22n7CMKBsVA8fuMqlZl07NNQLXq4ylFTW4SA72hwWk+p2NOqmYWV6PddeUsf2/vvvY/78+Xj88ccRFhaGhIQEBAUFYeXKlbe87sknn8TMmTMRHR3dLnGWVdfB+HL98/Rvo+HdvODjZnjD3HeewwiJbAEr1URkKcbW7/FmtH4bSSVi03Vbj+daNC6yHUyq29GwUG/IJGLklFQhs6BC6HCIBFNbW4uUlBTExMQ0OB4TE4OkpKRmr1uzZg0uXLiAf/7zny16npqaGpSWlja4mcvY+u0qk0AmbfqfTKlEjHF9DVPA+S00kW1wZlJNRBaQXVSJU7mlEIuAsfXv9eaaaGwBP3kNGna0OSQm1e3IWSbBkNBOAIC9Z9kCTh1XQUEBtFotVKqGb04qlQp5eXlNXnPu3Dm88sorWL9+PaTSlrVexcfHQ6lUmm5BQUFmx9rcdlp/5ufhDAAorT+fiIQlNw4qY1JNRG1grFIb27hbY3g3L3RycUJRRS0OZhZZMjyyEUyq29kdPQzDDdgiSmTYw/Fmer2+0TEA0Gq1mDlzJl5//XX06tWrxY+/ePFiqNVq0y07O9vsGEvqt9NqrvXbyMPZkOiXVmvMfg4isrwblWpWhYio9facM3xmHxvWuio18KcW8BNsAXdEdpdUmzsteP369Rg4cCBcXFzQpUsXzJs3D4WFwrVnGtdVH7hQiFoN3+ipY/Lx8YFEImlUlc7Pz29UvQaAsrIyJCcn45lnnoFUKoVUKsWyZctw9OhRSKVS/P77700+j1wuh4eHR4ObudS32E7rZu4Kw/2sVBPZBg4qI6K2qtPqkHLJUFke0d2nTY91n7EF/EQeW8AdkF0l1eZOC963bx9mz56N+fPn4+TJk/j2229x5MgRPP744+0c+Q19u3jA21WGilot0rKKBYuDSEgymQxRUVFITExscDwxMREjRoxodL6HhweOHz+O9PR00y02Nha9e/dGeno6hg0bZrVYb7WdVoMYFaxUE9kS46CyGibVRNRKJ3LUqKjVQunshD5+7m16rOju3vB0cUJhRS0OX2QLuKOxq6Ta3GnBBw8eREhICBYuXIjQ0FDccccdePLJJ5GcnNzOkd8gFotu2lqLLeDUccXFxeF///sfVq9ejYyMDDz//PPIyspCbGwsAEPr9uzZswEAYrEY4eHhDW6+vr5QKBQIDw+Hq6ur1eI0JtXNbadl5FHfHl5WzUo1kS1wlnFNNZGlxcfHQyQSYdGiRQCAuro6vPzyy+jfvz9cXV3h7++P2bNn4+rVq8IGaiGH6pPfoaFeEIsbL08zh5NEjPF9DS3gv3AKuMOxm6S6NdOCR4wYgStXrmDr1q3Q6/W4du0avvvuO0ycOLHZ57HEtODbGdXTsK6a+1VTRzZ9+nQkJCRg2bJliIiIwJ49e7B161Z07doVAJCbm3vbPavbQ0mVYU317du/6yvVVaxUE9kCuZRrqoks6ciRI1i1ahUGDBhgOlZZWYnU1FT84x//QGpqKjZt2oSzZ8/igQceEDBSyzHu6DEs1MsijzehvyGp3n4yD1odt9d1JHaTVLdmWvCIESOwfv16TJ8+HTKZDH5+fvD09MSHH37Y7PNYYlrw7dzRw1CpPpajRnFFrcUfn8hePP3007h06RJqamqQkpKCO++803Tf2rVrsWvXrmavXbp0KdLT060eo9rY/n27QWUKVqqJbImpUl3LSjVRW5WXl+ORRx7Bp59+ik6dOpmOK5VKJCYmYtq0aejduzeGDx+ODz/8ECkpKTbxxXhbaLQ6JF8yLNUc3s3bIo85socPlM5OKChnC7ijsZuk2qil04IB4NSpU1i4cCFee+01pKSkYNu2bbh48aKpvbQplpgWfDt+SgV6qdyg1wNJF7inLZEtK2nhoDJjUl2j0aFGww/xREJT1O8rX83XI1GbLViwABMnTsTYsWNve65arYZIJIKnp2ez57RHZ2hbnbxaivIaDdwVUoR1MX/QaVOcJGLE1O91vZUt4A7FbpJqc6cFA4aq88iRI/Hiiy9iwIABGD9+PFasWIHVq1cjN7fpP2RLTAtuCbaAE9mHG1tq3XpNtZvixt7ZZRxWRiQ4Y6W6mpVqojb5+uuvkZqaivj4+NueW11djVdeeQUzZ8685Wfo9ugMbatDF2+0fkvauJ76ZvcNMEwB//UEW8Adid0k1eZOCwYM6zzE4oa/okRieJPV64X9Ix5107AyoWMhoua1tFItEYvgJjeuq2YLOJHQjNO/OaiMqPWys7Px3HPP4csvv4RCobjluXV1dZgxYwZ0Oh1WrFhxy3PbozO0rQ5mGtqzh4VapvXbaGR3H3gopCgor0HyJbaAOwq7SaoB86YFA8CkSZOwadMmrFy5EpmZmdi/fz8WLlyIoUOHwt/fX6hfA4DhBSqTiJFTUoXMggpBYyGi5qlbuKUWwG21iGyJsxMHlRG1VUpKCvLz8xEVFQWpVAqpVIrdu3dj+fLlkEql0GoNX1rV1dVh2rRpuHjxIhITE2/b6dlenaGtpdXpcaR+zbOl1lMbyaRijKufAs4WcMchvf0ptmP69OkoLCzEsmXLkJubi/Dw8FtOC547dy7Kysrw0Ucf4YUXXoCnpyfuuecevP3220L9CibOMgkGh3RC0oVC7DtXgO6d3YQOiYj+RK/X36hU36b9GzBsq3VVXc1hZUQ24OZK9a3mrxBR88aMGYPjx483ODZv3jz06dMHL7/8MiQSiSmhPnfuHP744w94e1s2CRXCqaulKKvRwF0uRV9/yyf8Ewf44fvUK/j1RB7+Oalfm7frIuHZVVINGKYFP/30003et3bt2kbHnn32WTz77LNWjqp1hnfzRtKFQqRmFWPOiBChwyGiPymv0ZjWO7WkUs1ttYhsh8LpRjNejUZnSrKJqOXc3d0RHh7e4Jirqyu8vb0RHh4OjUaDhx9+GKmpqfj555+h1WpN84+8vLwgk93+C2lbZFxPPcTC66mNRvbwgbtCivyyGqRkFWNIiGW27CLh2FX7t6OJCPIEABzNLhE0DiJqWkl967dcKm7RB3Juq0VkO25+zVZzXTWRVVy5cgVbtmzBlStXEBERgS5duphuSUlJQofXapben/rP5FIJxoUZBi3/cowt4I7A7irVjmRAoBIAcKmwEsUVtejkap/f5hE5KnULh5QZmSrVTKqJBOckEUMqFkGj03NdNZEF7dq1y/TfISEhDjdwV6vTm/aQtvR66pvd178LNqXl4NcTuXjt/r5sAbdzrFQLyNNFhlAfVwDA0SslwgZDRI0YK9UtWU8NGNZUA9xSi8hWOHMCOBGZKSO3FKXVGrjJpehnhfXURqN6+cBNLsW10hqkZhVb7XmofTCpFtjA+mr10Wy1wJEQ0Z+VVNXvUd3CSrWx/ZtbahHZBrlpAjiTaiJqmUP1VerBIZ0glVgvVZJLJRgb5gsA2Ho8z2rPQ+2DSbXABhrXVbNSTWRzblSqzW3/ZqWayBY4ywwfc1ipJqKWurGe2vpTzO/r3wUA8OuJXOh0jtVG39EwqRbYzcPKHG1NCpG9M3dN9Y32b1aqiWyBQspKNRG1nE6nx5FLxvXU1p/IfWevznCTS5GrrkbyZbaA2zMm1QIL6+IBJ4kIhRW1uFJcJXQ4RHSTkkpD+7enS8vWVHNLLSLb4ixjUk1ELXfmWhlKKuvgIpMgPEBp9edTOElwX38/AMDqfRet/nxkPUyqBaZwkiCsi2EIAlvAiWyLsf1b2cL2b9OaalaqiWyCcVutqlpO/yai2zO2fg8O8YKTFddT3+zxUd0AANtP5SHzenm7PCdZHpNqGzAw0BMA96smsjUlrdxSi9O/iWyDgoPKiMgMhzINrd/W2p+6Kb1U7hjTxxd6PfDpXlar7RWTahtgGlbGCeBENkXdyi21WKkmsg3OThxURkQto9PpceiioVJtzf2pm/LkXd0BAN+nXkF+WXW7PjdZBpNqGxARZFizcTxHDY2WLWpEtsK4pVaLB5XVt3+X12g4xZPIBrBSTUQtdS6/HMWVdXB2kmBAoPXXU99sSEgnRAZ7olajw7qkS+363GQZTKptQDcfN7jJpaiq0+LsNa6lILIV5q6pNrZ/6/VAWQ1bwImE5sykmoha6MZ66k7ttp7aSCQS4ck7DdXqLw5cRjk/Q9gdJtU2QCwWmb4R47AyItug1+vNXlOtcJJAJjX8s8pttYiEd6NSzS4wIro1Y+t3e66nvtm4vip083FFabUGXx/OEiQGaj0m1TZi4E37VROR8KrrdKjVGD6It3RLLQDw4LZaRDbDNP2blWoiugW9Xm8aUtbe66mNJGIRnrjTMAn8s30XUccloXaFSbWNiKhPqtOZVBPZBON6aqlYBNf6vW5bwriumpVqIuEp6geVsf2biG7lfH45CitqoXASY0D9rjxCmBoZAB83OXLV1fjp6FXB4iDzMam2Ecak+uy1MlTWssJFJDTjempPFyeIRKIWX+dumgDO1zGR0JxZqSaiFjCup47q2sm0jEsICicJ5o0MAQCs2pMJvZ5DT+0Fk2obofJQwM9DAZ0eOJFTKnQ4RB2euUPKjDxMe1WzUk0kNGcZB5UR0e0dvGjcn1qY1u+bPTqsK1xlEpzOK8Pus9eFDodaiEm1DRlYv7UW11UTCU9t2k6r5eupgRvt36VVTKqJhKaQclAZEd2aYT21MPtTN0Xp4oS/Dg0GAHyyO1PgaKilmFTbEOOwsnROACcSnKn928xKtXFbLbZ/E7VcfHw8RCIRFi1aZNHHVdRXqqtqWakmoqZduF6BgvJayKViU4FLaI/dEQqpWIQDmYUsttkJu0uqV6xYgdDQUCgUCkRFRWHv3r23PL+mpgZLlixB165dIZfL0b17d6xevbqdojVPRP1gBL54iIRn3E5L2cLttIw8nDmojMgcR44cwapVqzBgwACLP7aifm1ktYZJNRE1LelCAQAgMtgTcmnLB5Nak7+nMx6I8AdgWFtNts+ukuqNGzdi0aJFWLJkCdLS0jBq1ChMmDABWVnN7+U2bdo07Ny5E5999hnOnDmDDRs2oE+fPu0YdcuFByohEgFXiqtQUF4jdDhEHdqNSrV57d/ucm6pRdRS5eXleOSRR/Dpp5+iU6dOFn98Z1aqiegWiipq8eHv5wEAd/XyFTiahv5Wv73WrydycamgQuBo6HbsKql+//33MX/+fDz++OMICwtDQkICgoKCsHLlyibP37ZtG3bv3o2tW7di7NixCAkJwdChQzFixIh2jrxlPBRO6N7ZDQCr1URCu7GmupWV6hpWqoluZ8GCBZg4cSLGjh1rlcc37lNdo+GaaiJLaGqpxqZNmzB+/Hj4+PhAJBIhPT1dsPjModfr8eqm47heVoOevm6mqdu2oo+fB+7u3Rk6PfC/faxW2zq7Sapra2uRkpKCmJiYBsdjYmKQlJTU5DVbtmzB4MGD8c477yAgIAC9evXC3//+d1RVVbVHyK0ykC3gRDbh5i21zOHhzEo1UUt8/fXXSE1NRXx8fIvOr6mpQWlpaYPb7Zi21GKlmqjNmluqUVFRgZEjR+Jf//qXQJG1zqbUHGw7mQepWIQPpkeYvoSzJU/e1R0A8G3yFVwvYxerLbObpLqgoABarRYqlarBcZVKhby8vCavyczMxL59+3DixAls3rwZCQkJ+O6777BgwYJmn6c1b9qWFBHsCQBIv6Ju1+clooZau6WWu5xrqoluJzs7G8899xy+/PJLKBSKFl0THx8PpVJpugUFBd32GoUT11QTWcKtlmrMmjULr732mtU6TqzhSnEl/rnlJADg+XG9EB5gGwPK/mxYqBcigjxRo9Hhf3tZrbZldpNUG4lEogY/6/X6RseMdDodRCIR1q9fj6FDh+K+++7D+++/j7Vr1zZbrW7Nm7Yl3TysjBu+EwnHOKjM7C216pNwTv8mal5KSgry8/MRFRUFqVQKqVSK3bt3Y/ny5ZBKpdBqGyfBixcvhlqtNt2ys7Nv+zwKVqqJLMLaSzXak06nxwvfHEV5jQaDgj3xZP3aZVskEonw3JieAIDPD1zmzCUbZjdJtY+PDyQSSaOqdH5+fqPqtVGXLl0QEBAApfLGt09hYWHQ6/W4cuVKk9e05k3bknr7uUMmFUNdVYfLhZXt+txEdIO6sn5NdWu31OI+1UTNGjNmDI4fP4709HTTbfDgwXjkkUeQnp4OiaRxG6ZcLoeHh0eD2+3cvKZap+MX1UStYe5SjZYQsjP0s30XcehiEVxkErw/LQJSiW2nQ6N7d8bAQCWq6rT4lJPAbZZt/xXdRCaTISoqComJiQ2OJyYmNjt4bOTIkbh69SrKy8tNx86ePQuxWIzAwMAmr2nNm7YlyaRi9PM3POdR7ldNJJgblerWbqmlYbcJUTPc3d0RHh7e4Obq6gpvb2+Eh4db7Hmcb1ojyWFlROZrzVKNlhCqM/R0Xine3X4GAPCP+/sixMe1XZ63LUQiERaN7QWA1WpbZjdJNQDExcXhf//7H1avXo2MjAw8//zzyMrKQmxsLABDlXn27Nmm82fOnAlvb2/MmzcPp06dwp49e/Diiy/iscceg7Ozs1C/xm0Zh5Wlc1gZOThz9p3ftGkTxo0bh86dO8PDwwPR0dHYvn27VeKq0WhRWd8uavaWWvWV6lqtjh/iiQR28+Chqjq2gBOZqzVLNVpCiM7QGo0Wz288ilqtDmP6+GLGkPZd4tkWrFbbPrtKqqdPn46EhAQsW7YMERER2LNnD7Zu3YquXbsCAHJzcxvsWe3m5obExESUlJSY2somTZqE5cuXC/UrtEhEkCcATgAnx2buvvN79uzBuHHjsHXrVqSkpODuu+/GpEmTkJaWZvHY1PVVapHoRpLcUm4yKYxjHko5rIyoxXbt2oWEhASLPqZELIKsvrWzmkk1kdlas1SjJYToDP0g8Rwyckvh5SpD/EP9m53JZItYrbZ95n1atAFPP/00nn766SbvW7t2baNjffr0adQybusG1ifVJ66Wolajg0xqV999ELXIzfvOA0BCQgK2b9+OlStXNrlu688ftt966y38+OOP+OmnnxAZGWnR2NQ3Tf4Wi8170xWLRXCXS1FarUFplQa+7hYNjYjMpHASo1arY6WaqBWMSzVu9uelGkVFRcjKysLVq1cBAGfOGNqr/fz84Ofn174BN+PwxSJ8sucCAOCtqf3h6265Vvb2YqxWH72ixqd7MrH4vjChQ6KbMFuzQSHeLvBQSFGr0eFMXpnQ4RBZXGv2nf8znU6HsrIyeHl5WTw+03pqM4eUGbkrjBPAWakmEpqxBZyVaiLr2LJlCyIjIzFx4kQAwIwZMxAZGYmPP/5Y4MgMyqrrEPdNOvR64OGoQNwbbhuJvrlYrbZtTKptkEgkMlWr0zmsjBxQa/ad/7N///vfqKiowLRp05o9p7XTRU17VJu5nZbRzcPKiEhYzjIm1USW9OelGnPnzoVer290W7p0qWAx3uyb5Cu4UlyFAE9n/HNSX6HDaZOb11av4tpqm8Kk2kZFcl01dQDm7Dt/sw0bNmDp0qXYuHEjfH19mz2vtdNFS1q5nZYRt9Uish0KqTGp5uBAoo4ou8iwRe3kCH9TJ5m9alitvsRqtQ2xuzXVHcVAJtVkJVu2bDH7mnHjxll0Yn5r9p032rhxI+bPn49vv/0WY8eOveW5ixcvRlxcnOnn0tLSFiXW6lZup2XkoWClmshWKOor1VW1rFQTdUTGxNPHTS5wJJZx89rqVXsy8SrXVtsEJtU2akD9tlrnr5ejrLrO7r9ZI9sxZcoUs84XiUQ4d+4cunXrZrEYbt53furUqabjiYmJmDx5crPXbdiwAY899hg2bNhgWrt1K3K5HHK5+W+ixvbv1laqPZzrK9VcU00kOEX9sM9qDZNqoo7ImFR7u7VuSZetMVar5609gs8PXMLf7uzmMF8Y2DO2f9uozu5yBHg6Q68HjueohQ6HHExeXh50Ol2Lbi4uLlaJwdx95zds2IDZs2fj3//+N4YPH468vDzk5eVBrbb866OkytD+3eo11aZKNZNqIqE5s1JN1KEVlBve0zs7UOI5undnDAzyRHWdjmurbQSTahtm3K86LatE0DjIscyZM8esVu5HH33UKvtHmrvv/CeffAKNRoMFCxagS5cupttzzz1n8djaXKk2ralm+zeR0Jw5/ZuoQys0VaodJ6k2VKt7AuDaalvB9m8bFhnsiV+O5yItq1joUMiBrFmzxqzzV65caaVIzNt3fteuXVaL48/auqaaW2oR2Y4bW2pxUBlRR1On1aG4/otyHwdp/zYa3ctQrT6aXcK11TaAlWobNqhrJwBAalYJ9Hq9wNEQdRymSnVrB5XVr6nmoDIi4RmT6ipWqok6nOIKQ+u3WAR4tnJJl636c7X6ehmr1UJipdqG9fP3gEwqRlFFLS4VViLUx1XokMgBPPjggy0+d9OmTVaMxHaZ1lQ7t+4N2FSp5pZaRIJTONUPKmNSTdThXK9vi/ZylUMivv2WnfZmdK/OiAjyRHp2CVbsOo9/TuondEgdFivVNkwulaB/gBIAkHqZLeBkGTfv2+zh4YGdO3ciOTnZdH9KSgp27twJpVIpYJTCanOlmltqEdkMZ1aqiTqswvohZY7W+m0kEonw95jeAID1B7OQU1IlcEQdFyvVNm5QsCdSLhcjJasYD0UFCh0OOYCb11S//PLLmDZtGj7++GNIJIYPnlqtFk8//bRVhpPZA61Ob0qGuaUWkf3jmmqijsvR9qhuysge3hjezQsHM4vw4c5z+NdDA4QOqUNipdrGRRnXVbNSTVawevVq/P3vfzcl1AAgkUgQFxeH1atXCxiZcG5u2Va2Mql2Z6WayGZw+jdRx+XolWrAUK1+cbyhWv1tyhVcLKgQOKKOiUm1jRsUbEiqz1wr4563ZHEajQYZGRmNjmdkZECn65hVnZL6pNpdLoVU0rp/Io1bapXXaKDRdsz/H4lsBddUE3VcBQ64nVZTorp64Z4+vtDq9Ej47azQ4XRIbP+2cb4eCgR2csaV4ioczVbjjp4+QodEDmTevHl47LHHcP78eQwfPhwAcPDgQfzrX//CvHnzBI5OGCWV9UPKWrmeGrhRqQYMibWjTRwlsiec/k3UcRWYKtWOnVQDwAsxvfD76XxsOXoVT43ujj5+HXMZn1CYVNuBQcGdcKW4CimXi5lUk0W999578PPzwwcffIDc3FwAQJcuXfDSSy/hhRdeEDg6YZS0cY9qAJBJxVA4iVFdp0NZNZNqIiE5y9j+TdRR3ahUO/77cD9/JSb274Jfjufi3zvO4tPZg4UOqUNh+7cdMK2rzuK6arIssViMl156CTk5OSgpKUFJSQlycnLw0ksvNVhn3ZGojZO/W7mdlpFxAria22oRCUohNVaquRSDqKMxJtWdO0ClGgCeH9cLYhGQeOoa0rNLhA6nQ2FSbQeM66pTs4qh0+kFjoYclYeHR4ed+H0zS7R/A4B7/bpqDisjEpapUl3LSjVRR2McVNYRKtUA0MPXDQ8OMuwW9O8dZwSOpmNh+7cd6NPFHc5OEpRVa3Dhejl6qtyFDokcyHfffYdvvvkGWVlZqK2tbXBfamqqQFEJx9T+3crJ30Ye9ddzWy0iYZkGlWmYVBN1JHq9HoUVjr+l1p89N6YnfkzPwd5zBThwoRDR3b2FDqlDYKXaDjhJxBgQqAQApHBrLbKg5cuXY968efD19UVaWhqGDh0Kb29vZGZmYsKECUKHJ4iSyravqQa4rRaRrTANKmOlmqhDKa3SoE5r6PD0cu0YlWoACPJywYwhwQCA93acgV7PLtf2YHdJ9YoVKxAaGgqFQoGoqCjs3bu3Rdft378fUqkUERER1g3QSriumqxhxYoVWLVqFT766CPIZDK89NJLSExMxMKFC6FWq4UOTxDqKkutqTY0ApVyTTWRoBTcp5qoQ7pev57aXSE1/TvQUTx7Tw8onMRIuVyMXWeuCx1Oh2BX7d8bN27EokWLsGLFCowcORKffPIJJkyYgFOnTiE4OLjZ69RqNWbPno0xY8bg2rVr7Rix5RjXVbNSTZaUlZWFESNGAACcnZ1RVlYGAJg1axaGDx+Ojz76SMjwBGG5NdVs/ybbs2XLFrOvGTduHJydna0QTftwNiXVHFRGjqu9Xtvx8fF49dVX8dxzzyEhIQGAoc369ddfx6pVq1BcXIxhw4bhv//9L/r162d2TJZUWN7xWr+NfD0UmBMdgk/2ZOK9HWdwV6/OEItFQofl0OwqqX7//fcxf/58PP744wCAhIQEbN++HStXrkR8fHyz1z355JOYOXMmJBIJfvjhh3aK1rIG1VeqL1yvQEllLbfoIYvw8/NDYWEhunbtiq5du+LgwYMYOHAgLl682GHbhSy3ppqDysj2TJkyxazzRSIRzp07h27dulknoHZgrFDVanXQ6vSQ8IMlOaD2eG0fOXIEq1atwoABAxocf+edd/D+++9j7dq16NWrF958802MGzcOZ86cgbu7cHOAbuxR3TE/M8fe1R3rD2Xh5NVS/HoiDxMHdBE6JIfWovZvLy8vs27e3t64fPmyRQOtra1FSkoKYmJiGhyPiYlBUlJSs9etWbMGFy5cwD//+c8WPU9NTQ1KS0sb3GyBl6sMoT6uAIA0jsgnC7nnnnvw008/AQDmz5+P559/HuPGjcP06dMxdepUgaMThmlLrTZ+cWXcUovt32Rr8vLyoNPpWnRzcXEROtw2c76p7ZMt4OTIrPnaLi8vxyOPPIJPP/0UnTp1Mh3X6/VISEjAkiVL8OCDDyI8PBzr1q1DZWUlvvrqK0v/imYxDinzdu14lWoA6OQqw/w7QgEA7yeeQZ2W3TrW1KJKdUlJCRISEqBUKm97rl6vx9NPPw2t1rJvXAUFBdBqtVCpVA2Oq1Qq5OXlNXnNuXPn8Morr2Dv3r2QSltWlI+Pj8frr7/e5nitYVBwJ1wsqEDq5WLc3dtX6HDIAaxatQo6neEf2djYWHh5eWHfvn2YNGkSYmNjBY5OGKZKdRvbvz1sbEutPWevI/lSEZ4a3cO0xRB1PHPmzDGr3fPRRx+1+6325NIb9YPqOi1c5XbVpEfUItZ+bS9YsAATJ07E2LFj8eabb5qOX7x4EXl5eQ2KXnK5HHfddReSkpLw5JNPtvg5LK2grL79271jVqoB4PFRofj8wCVcuF6Bj34/j+fH9RI6JIfV4neWGTNmwNe3ZYncs88+2+qAbkckati2pdfrGx0DAK1Wi5kzZ+L1119Hr14t/wNavHgx4uLiTD+XlpYiKCio9QFb0KCunvg+9QqHlZFFaDQa/N///R8ee+wx09/4tGnTMG3aNIEjE45OpzetqXakLbW0Oj3ivklHQXktUrKK8b/ZQ5hYd1Br1qwx6/yVK1daKZL2IxaLIJeKUaPRoYqVanJQ1nxtf/3110hNTcWRI0ca3WcsbDVV9LpV12pNTQ1qampMP1ujM7Sgwtj+3TEr1YBhvsvrk8OxcEMaPvrjPEb37ozI4E63v5DM1qL2b51O1+KEGgDKysosvv7Kx8cHEomkUVU6Pz+/0QvZGENycjKeeeYZSKVSSKVSLFu2DEePHoVUKsXvv//e5PPI5XJ4eHg0uNkK4wTw9KwSaHUdc70rWY5UKsW7775r8a4Se1Zeq4HxpeXRxqTa3YYq1cmXikxry/afL8QTnyezDZY6FOOXSPy7JzJPdnY2nnvuOXz55ZdQKBTNntfSopdRfHw8lEql6WaNApaxUu3dgZNqAHhgoD8eGOhf/wX7UVTWCv+5xBHZzZZaMpkMUVFRSExMbHA8MTHRNL34Zh4eHjh+/DjS09NNt9jYWPTu3Rvp6ekYNmxYe4VuMT193eEml6KiVoszeWVCh0MOYOzYsdi1a5fQYdgM43pqZydJm7ff8LCh6d/bThq+jIwM9oSLTIJ95wuYWHdgYrEYEonklreWLpmyFwopJ4CT47PGazslJQX5+fmIiooyFal2796N5cuXQyqVmgpbLS16GS1evBhqtdp0y87ONv8Xvo2C+unfnTvooLKbvTE5HF2UClwsqMBbWzOEDschtepdMycnB/v370d+fr5pPabRwoULLRJYU+Li4jBr1iwMHjwY0dHRWLVqFbKyskxrPxcvXoycnBx8/vnnEIvFCA8Pb3C9r68vFApFo+P2QiIWITLYE3vPFSAlqxh9/W2nik72acKECVi8eDFOnDiBqKgouLq6Nrj/gQceECgyYZRUWmY9NXBT+7fAg8r0ej12nDRsJfjUXd3RyVWGOasPY+85Q2L96ezBHW7/zo5u8+bNzd6XlJSEDz/80OGm/xsr1Wz/Jkdmjdf2mDFjcPz48QbH5s2bhz59+uDll19Gt27d4Ofnh8TERERGRgIwDBfevXs33n777WYfVy6XQy63bgW5sL79u6NXqgHDNqHv/WUgHvnfIXx5MAtjwlScz2RhZifVa9asQWxsLGQyGby9vRu0dohEIqsm1dOnT0dhYSGWLVuG3NxchIeHY+vWrejatSsAIDc3F1lZWVZ7flsQGdwJe88VIO1yMWYN7yp0OGTnnnrqKQCG7er+TCQSdbjW8JKq+j2q29j6DTRs/75dG5w1ncgpRU5JFZydJLizV2conCRYO28o5q4xJNZ/+yIFq2ZFMbHuQCZPntzo2OnTp7F48WL89NNPeOSRR/DGG28IEJn1GIeVsTuDHJk1Xtvu7u6NilGurq7w9vY2HV+0aBHeeust9OzZEz179sRbb70FFxcXzJw5s/W/jAWYBpUxqQYAjOzhg8dGhmL1/ot46btj2L7oTni5sopvKWa3f7/22mt47bXXoFarcenSJVy8eNF0y8zMtEaMDTz99NO4dOkSampqkJKSgjvvvNN039q1a2/Zyrp06VKkp6dbPUZrMq6rTuGwMrKAW2230dESasDCler69m+NTi9odWx7fev36N6dTYnz0FAvrJk7BM5OEuw5ex1/+yKFyUYHdfXqVTzxxBMYMGAANBoN0tPTsW7dOgQHBwsdmkWZKtW1/DunjqE9X9svvfQSFi1ahKeffhqDBw9GTk4OduzYIege1VW1WlTUv9692f5t8tK9vdHT1w3Xy2rw6qbjDteVJCSzk+rKykrMmDEDYrHdLMd2KBFBngCAy4WVprUiRGQZpu20nNv+Buwik0AiNlSnhRxWZlxPfW+4X4Pjw7p5Y828G4n1k0ysOxS1Wo2XX34ZPXr0wMmTJ7Fz50789NNPdrs86nZMa6o1XFNNjq09Xtu7du1CQkKC6WeRSISlS5ciNzcX1dXV2L17t+D/lhg/I8ukYrhzGz0ThZMEH0yPgJNEhG0n87ApNUfokByG2Znx/Pnz8e2331ojFmoBpbMTevq6AQBSL7NaTeZbvnw5qqurW3z+xx9/jLKyjjEYT23cTssClWqRSGRqARdqXfX5/HKczy+Hk0SEu/s0Xjs1vJs3VtdXrHefvY6nvkyBRsukw9G988476NatG37++Wds2LABSUlJGDVqlNBhWZVp+jcr1eTAOuJruznG9dQ+rjLBll/ZqvAAJRaNNWw3/M8tJ5FdVClwRI7B7K9u4uPjcf/992Pbtm3o378/nJwafvhsam0mWVZU1044l1+O1KwSxPTzu/0FRDd5/vnn8de//vWWW2Pc7KWXXkJMTIygbVztxdj+rbRAUg0Y1lWXVNahVKBKtbH1e0R3H1M7+p9Fdzck1vPWHsYfZ67j25Qr+OtQx2r9pYZeeeUVODs7o0ePHli3bh3WrVvX5HmbNm1q58isx9nJWKlmUk2OqyO+tptjWk/tzvXUTYm9qzt+P52PlMvFeOGbo9jwt+Gm7jpqHbOT6rfeegvbt29H7969AaDRoDKyvkHBnfD1kWxWqqlV9Ho9xowZ0+JtNaqqqqwcke2wZPs3YFxXXSXYtlrGpHr8bb58i+7ujZfG98Gyn0/hg8SzmBzhDxcZ2+Uc1ezZszvc+7XcydCYxzXV5Mg64mu7OYUV9XtUcxBXkyRiET6YFoEJ/9mDw5eK8OneTMTe1V3osOya2Z+a3n//faxevRpz5861QjjUEoPqh5UdvVKCOq0OThKub6eW++c//2nW+ZMnT4aXl5eVorEtlhxUBty0V7UA7d85JVU4dkUNkQgY17f5vUKNHhkejDVJF5FdVIXV+y7imXt6tkOUJIS1a9cKHUK7M1WquU81ObCO+NpuTkF5ffs3J383K9jbBa9N6ouXvz+Ot7edRnm1Bs+N7cm8opXMTqrlcjlGjhxpjViohbr5uELp7AR1VR1OXS3FwPrhZUQtYW5S3ZGo67fU8rTAllpAw2212tuO+ir1kK5e6NyC9je5VIK/x/TGc1+n4+Pdmfjr0GDu7UkOwzj5nvtUE3UM19n+3SLTBgfheI4aXx7Mwkd/nMe+8wVYPiMSwd4uQodmd8z+KuK5557Dhx9+aI1YqIXEYhEGBXsCAFK5tRaRxVh6TbVHfXIuRPv3thOGpDqm3+2r1EaTBvijf4AS5TUafPj7eWuFRgI6duwYdLqWV2tPnjwJjUa46fWWcqNSzaSaHFNHfW03xziojO3ftyYSifDmlP74aGYk3BVSpGeX4L7le7E57YrQodkds5Pqw4cPY926dejWrRsmTZqEBx98sMGN2seg4Pr9qrmumshiLL2mWqhKdWF5DY5cKgJw+/XUNxOLRVg8oQ8AYP2hy7hcWGGV+Eg4kZGRKCwsbPH50dHRyMrKsmJE7UNRv6aaSTU5qo762m6OcVBZSzq1CLh/gD9+fW4UhoR0QnmNBs9vPIrnvk4TbCaMPTK7/dvT05PJsw2Iql9XnZZVImwgRA5Cr9dD7SBrqn/LuAadHggP8ECQl3ktXCN6+OCuXp2x++x1vLv9DD6aOchKUZIQ9Ho9/vGPf8DFpWV/F7W1tVaOqH2w/ZscXUd9bTfnxqAyJtUtFdjJBV//LRor/jiPhJ3n8GP6VaRcLsZ/ZkQgqmvHmK3TFmYn1WvWrLFGHGSmgUGeEIsMw4jy1NXwU7ZseyQialpVnRa19Xs0Wyyprm//bu9K9faT1wAA4/u2bsu9Vyb0wZ5z1/HzsVw8MaqEcxscyJ133okzZ860+Pzo6Gg4OztbPI74+Hhs2rQJp0+fhrOzM0aMGIG3337btLOIpSnY/k0OzlZe27bCNKjMne3f5pCIRXh2TE+M6OGDRRvTkF1UhWmfHMQzd/fAgrt7QCblELPmcM8UO+Uql6KPnwdO5ZYiNasY9/XvInRIRHbNuJ5aJhGb1l+2lbH9uz3bp8qq67DvXAEA4N7w1iXVYV088GBkIL5PvYL4XzOw4Ynh3KbFQezatUvoEAAAu3fvxoIFCzBkyBBoNBosWbIEMTExOHXqFFxdXS3+fM6mSjWnf5NjspXXti3QaHUorjSuqWalujWiunbC1oWj8NqPJ7E5LQf/2XkOW4/nIv7B/hgcwqp1U1r0dcOgQYNQXNzytbt33HEHcnJyWh0UtUxE/bCyo1dKBI2D7NuVK1ewYsUKvPLKK4iLi2tws7YVK1YgNDQUCoUCUVFR2Lt37y3P3717N6KioqBQKNCtWzd8/PHHFovl5iFllkoghWj//uPMddRqdejm44oevm6tfpy4mF6QScU4mFmEXWeuWzBC8+j1euSXViPlchHO55dDp9MLFgtZzrZt2zB37lz069cPAwcOxJo1a5CVlYWUlBSrPB8r1UQdR1FlLfR6QCQCvDiorNXcFU74YHoEPvxrJHzcZDiXX46HPz6AJZuPc611E1pUqU5PT8fRo0dbvFdteno6ampq2hQY3d6AACW+AnD8ilroUMhO7dy5Ew888ABCQ0Nx5swZhIeH49KlS9Dr9Rg0yLpraTdu3IhFixZhxYoVGDlyJD755BNMmDABp06dQnBwcKPzL168iPvuuw9PPPEEvvzyS+zfvx9PP/00OnfujIceeqjN8ZRYeDstAPAQYFDZ9vqttMaH+7Xpy4EAT2fMGxGCT/Zk4l+/nsadvTpDIrZetbqgvAanrpbiclElLhdU4HJRJbIKK5FVVNlgHay7QoqBgZ6ICKq/BXtyH1IHoFYb3sdu9TmjpqamwWeL0tLSFj++s4yDyog6isL61m8vF5lV37c6ikkD/TGqpw/it57GxuRsrD+UhcRT1/D6A/1wbxs/aziSFrd/jxkzBnp9yyoE/D+3ffQPVAIAjueoodPpIeY/HGSmxYsX44UXXsCyZcvg7u6O77//Hr6+vnjkkUdw7733WvW533//fcyfPx+PP/44ACAhIQHbt2/HypUrER8f3+j8jz/+GMHBwUhISAAAhIWFITk5Ge+9955FkmpLDykD2n9Lreo6LXadzgcA3GvG1O/mPD26B74+ko0z18rwfeoVTBsc1ObH/LPqOi1W7rqAlbsvoFbTdGuuWAR0UTqjsKIGZdUa7DtfgH3nC0z3B3ZyRkSQJ4aGemFkDx9083Ft9/eh6jotCitqUVxRi+LKWhRV1KKksq7+f2tRVFmHMX18MSUyoF3jsgd6vR5xcXG44447EB4e3ux58fHxeP3111v1HKxUE3UcBeX1e1TzC1eL8XSR4e2HB2BKZACWbD6OzIIKPLU+FWPDVFg2uR/8PR13fX5LtSipvnjxotkPHBgYaPY1ZJ5eKnfIpWKUVWtwuagSoT6WX4dGji0jIwMbNmwAAEilUlRVVcHNzQ3Lli3D5MmT8dRTT1nleWtra5GSkoJXXnmlwfGYmBgkJSU1ec2BAwcQExPT4Nj48ePx2Wefoa6uDk5OjZNhcypbxu20lBbaTgto/y219p8vQEWtFl2UCgyo/9KtLZQuTnjm7h74v60Z+CDxLB4Y6G9KTizhjzP5WLrlJC4XVgIAQn1c0b2zK4K9XNHV2wXB3i4I8XZFgKczZFIx6rQ6nMkrQ3p2iel24Xo5rhRX4UpxFX4+lgsA6KJUYGQPH9zRwwcjenjD190ygxyr67TIKqpE5vUKXCqswKWCCmQWGP43v+z23VnerjIm1U145plncOzYMezbt++W5y1evLjBspTS0lIEBbXsix5O/ybqOIyVam83tn5bWnR3b2x9bhRW/HEeK3dfwG8Z13DgQgFeHN8bs6JDOnRnQIuS6q5du1o7DmoFJ4kYff09kJZVgmNXSphUk9lcXV1NSae/vz8uXLiAfv36AQAKCgpudWmbFBQUQKvVQqVSNTiuUqmQl5fX5DV5eXlNnq/RaFBQUIAuXRoP6zOnslVijUp1/Zrqylot6rQ6OEmsOzVz24n61u9+lmvHmhXdFWuTLiGnpApr9l/CU6O7t/kxc0qqsOynk6Yp5X4eCvzj/r64r/+t43aSiBEeoER4gBKPDje8L5VW1+FYthppWcU4kFmI5EvFyFVX47uUK/gu5QoAoLfKHSN7+KC3nxtUHgr4KRVQuSvg2cT6eb1ej4LyWly4Xo4L18txPr8cF65X4EJ+Oa6qq3Crhi2ZRIxOrk7o5CIz3Or/28tVBk8XmUW+6HA0zz77LLZs2YI9e/bc9st4uVwOubx1lSfToLJaDiojcnSsVFuXwkmCuJjeuH+gPxZvOo6Uy8VY+tMpbE6/in892B9hXTyEDlEQnP5t5wYEKJGWVYLjV9SYHMEKCJln+PDh2L9/P/r27YuJEyfihRdewPHjx7Fp0yYMHz7c6s/fVEJzq6SqqfObOm5kTmVrxpAg3NHDB65yy1VijZVqACiv1qCTFQemaLQ6/JZRv5WWBVq/jRROEvx9fC88v/Eo/vvHeYT6uLZ6qnitRof/7cvEhzvPo6pOC4lYhPl3hGLhmJ5wk7fu7chD4YQ7evrgjp4+eHZMT1TVapF8uQj7zhdg//kCnLxaijPXynDmWlmja+VSMVQeCqg85PBxk+NaaTUuXK+A+haD5dzlUoR2dkWItytCfW7cQrxd4eEsdbjlTykpKYiKirL44+r1ejz77LPYvHkzdu3ahdDQUIs/x82MleoaVqqpg6mqqkJRURECAhp+Rjx58qTpS3RHc51JdbvopXLHt09GY/3hLLzz62kczS7BpA/34W93dsPCMT0t2tlmD5hU27n+gZ4ALuNYDoeVkfnef/99lJeXAwCWLl2K8vJybNy4ET169MAHH3xgtef18fGBRCJpVJXOz89vVI028vPza/J8qVQKb2/vJq8xp7LVyVVm8aRXKhHDRSZBZa0WpdV1Vk2qD18qQnFlHTq5OGFISCeLPvbkgQHYcDgbhy8WIfbLFDw4KAD/nNQPyhYOddPr9dh3vgBLt5zEhesVAIChIV54Y0o4evu5WzRWZ5kEo3p2xqienQEARRW1OHChEAcyC5BdVIVrpdW4VlqN4so61Gh0yCoyDEO7mUgEBHVyQffOruje2Q3dfd3QvbMbunV2hberzOES51uZOnUqsrKyLP64CxYswFdffYUff/wR7u7upte2Uqm0yt65zmz/pg7ou+++w/PPPw8vLy/o9Xp8+umnGDZsGABg1qxZSE1NFThC62D7d/sRi0WYNbwrxoWpsHTLSWw7mYcVuy5g6/FcvDW1P0b08BE6xHbDpNrOGdsJT+aoodXpO/RaBjJft27dTP/t4uKCFStWtMvzymQyREVFITExEVOnTjUdT0xMxOTJk5u8Jjo6Gj/99FODYzt27MDgwYObXE9tKzwUToakusq666q317d+j+urgtTCbeZisQhfzB+KDxLPYdWeC9iUmoMDFwrx7sMDcUfP5t8wdTo9fsu4hhW7LiA9uwQA4OMmw6v3hWFqZEC7JKderjJMHNAFEwc0XB5QXafF9bIa5NUn2dfLauDjJkcPXzeE+rh2qG/Yp02b1uRxvV6PoqIiqzznypUrAQCjR49ucHzNmjWYO3euxZ9P4WR4TWh0+nZZikFkC958802kpqaic+fOSE5Oxpw5c7BkyRLMnDmzxcOH7ZGx/bszK9Xtxk+pwMezorD9ZB7++eNJXCqsxMz/HcLDUYFYcl+YVYsKtsLukuoVK1bg3XffRW5uLvr164eEhASMGjWqyXM3bdqElStXmrb46tevH5YuXYrx48e3c9TW072zG5ydJKio1SLzejl6qixb9SHH1q1bNxw5cqRRpbekpASDBg1CZmam1Z47Li4Os2bNwuDBgxEdHY1Vq1YhKysLsbGxAAyt2zk5Ofj8888BALGxsfjoo48QFxeHJ554AgcOHMBnn31mGrRmq9wVUuSVAmVWngB++FIxAOCePk1X+ttKLpXglQl9MDbMFy98exSXCyvx6GeHMCe6K16ZEAZn2Y0ktE6rw09Hr+Lj3Rdw9lp5/fVi/HVoMJ4f16vFFW5rUjhJEOTlgiAvF6FDEdxvv/2GL774Am5uDfc11+v12LNnj1Wes70/0N/8JUl1nZZJNXUIdXV16NzZ0LUzePBg7NmzBw8++CDOnz/v0B03rFQLZ3w/P4zo7o13t5/BFwcv47uUK/j9dD5evrc3HhwU6ND/9pr9m82dO9dqb7K3Y9zXdsmSJUhLS8OoUaMwYcKEZlvT9uzZg3HjxmHr1q1ISUnB3XffjUmTJiEtLa2dI7ceiViE8ADDQIBj3K+azHTp0iVotY3bIWtqapCTk2PV554+fToSEhKwbNkyREREYM+ePdi6datpMGJubm6D13ZoaCi2bt2KXbt2ISIiAm+88QaWL19uke20rKk9ttXS6/XIKjS0VfdUud3m7LYZHOKFrQtH4dHhhr3E1x24jInL9yItqxjVdVqsS7qE0e/uQtw3R3H2Wjnc5VI8Nbo79r18D5Y+0PKWcbIe45IPo9GjR8PNzQ133XVXg9vo0aMRGRkpUJSWJZeKYcwhqus4rIwc059f276+vjh27JjpZ29vbyQmJiIjI6PBcUfDQWXCclc4YdnkcHwXOwK9VG4oqqjFy98fx+h3d+GLg5cddmtDkd7Mr4sfeugh/PLLLwgKCsK8efMwZ86cRsMPrGXYsGEYNGiQqW0MMOxVO2XKlCb3tW1Kv379MH36dLz22mstOr+0tBRKpRJqtRoeHrY5zW7ZT6ewev9FzB0RgqUPOObQCWqorX+XW7ZsAYD/396dh0VZrn8A/w7DLKyDgIDI7oK4oIapmEuWe6a2nKMtpGV2zDxmnhatX2l1OlanTnoqzcxMc63UFivSUtRSUBSOG+IGgsi+DDvM8v7+gBkl9mGG2b6f65pLGd535hnghrnf53nuGzNmzMCmTZugUNysSqzRaPDbb79h//79SE1NNdqYLYE54nnOxuOIS83Huw9GmqTPMwAUltcg6p+/QiQCLrw5CTLHzlm6fOhiPl785n/ILa2BgwhQOElQXF9F3dtViidGhuLR4cH6KujUtM7+uZRIJMjOzoa3t3XvdWvv1y3i1VhUqTQ48uJYrlAgkzHn+8Y/x/b169fh6OgIP7/GxSX/+OMP3HHHHW163LVr12Lt2rVIT08HUPde+rXXXsPkyZMBALm5uXjppZewb98+lJSUYPTo0fjwww/Rq1evNo/dWF83QRAQ/n+xqNVo8ftLYxHQhbFuTrVqLTYdTce6w1dQUL+CwMdNhnmjwvDwsCC4GFiktLO05+ey3TPVu3btQlZWFhYuXIivv/4aISEhmDx5Mr755huoVKabidH1tf1zn9qW+tr+mVarRVlZGTw9PU0xRLPR7as+fb3EvAMhqzFjxgzMmDEDIpEIs2fP1n88Y8YMzJo1C/v378f7779v7mHaBF1CWdpCRemOulZfaKubu7zTEmoAGNO7K/YtHoPpg/yhFYDiShUCujjhzen98PtLd2HBnT2ZUFsgjUYDrfbmbO0dd9yB3NxcM46oc+i2KNjqLAnRn2N75syZzS7zbmtCDQABAQF4++23kZiYiMTERNx1112YPn06zp07B0EQMGPGDFy9ehXfffcdkpKSEBwcjHHjxqGioqLDr6m9SqvVqNXUfQ04U21+UkcHzBsdht9fuguvT+sHf4UceWU1eOunFIx85wA+/O1Six03rIlBlwe8vLzw7LPP4tlnn0VSUhI+//xzxMTEwNXVFY8++igWLFjQrqtTbWFIX9s/e//991FRUdFsURagbtmrrm8vUHeFwtIN0BUru1EKtUZr9CJFZHt0f3RDQ0Nx4sQJq5+xsmTuTnW/ZsuqTVeoLLM+qTbH7JvCWYLVswbj/tsCUFGjxvi+vja9Z8oWnT592ixvfjub3LHu55IVwMleGCu277333gYfv/XWW1i7di3i4+MhkUgQHx+Ps2fP6lt0rVmzBj4+Pti+fTuefPLJDj9/exTWL/12lTnaVcFJSyeXiDF7RAgeGhqEPUnXsTbuCtILK/H+/ov49PBVPDYiGE+ODLPqgmYdeueTnZ2Nffv2Yd++fRCLxZgyZQrOnTuHvn37mqwdT3v72ups374dK1aswM6dO+Hj49PscStXroRCodDfmutpa0lCvVzgKnNEjVqLS3nlrZ9AVC8tLU2fUFdXV5t5NLbJTW76PdXXCuuS6mAv8y1zG9O7K6YM6MaEmiyWXD9TzT3VRIbSaDTYsWMHKioqEB0drZ+Iksvl+mPEYjGkUil+//33Zh+npqYGpaWlDW7GoFti7M0iZRZJ6uiAmbcH4dclY7B61iCE+7qhrEaNjw9ewch3DuDtny/oL4xYm3a/+1GpVNi1axemTp2K4OBgfP3113juueeQnZ2NTZs2Yd++ffjyyy/xxhtvGHWghvS11dm5cyfmzp2Lr776CuPGjWvx2GXLlkGpVOpvmZmZHR67qTncUqzsDIuVUTtotVq8+eab6N69O1xdXfXVvl999VVs2LDBzKOzDTeXf5tuplrXZzmI+0SpjbZt24ZTp07pt23ZciVgHbkje1WT7TNVbJ85cwaurq6QyWSYP38+9uzZg759+6JPnz4IDg7GsmXLUFxcjNraWrz99tvIyclBdnZ2s49nqkksXULmxaXfFs1R7IDpg7rj52dHYV1MFPr5u6OiVoNPDl3ByHcO4l8/pSC/zLqS63Yn1d26dcO8efMQHByM48ePIzExEfPnz4eb281WThMnToSHh4cxx9mgr+2t9u/fjxEjRjR73vbt2zFnzhxs27YN99xzT6vPI5PJ4O7u3uBmDSIDPAAAp7NKzDoOsi7//Oc/8cUXX+Ddd9+FVHrzqu6AAQPw2WefmXFktsNNrlv+bbqZ6gwzLv8m6zNy5EgsX74cQ4YMgaurKyorK/HKK69g7dq1SEhIsNlVK7o91VW1TKrJNpkytsPDw5GcnIz4+Hg8/fTTmD17Ns6fPw+JRIJdu3bh4sWL8PT0hLOzM+Li4jB58mSIxc0vvzbVJNbNyt+cqbYGDg4iTOznh71/H4nPHhuCAd0VqFJp8Onhqxj17gG8ufc88sqM+zepVq1FSWUtbpRU4XJeGU5fL0F6Qce3SbR7T/UHH3yAv/zlLw2WefxZly5dkJaW1qGBNaW9fW23b9+Oxx57DKtXr8bw4cP1s9xOTk4Nqh3bAl2xMs5UU3ts3rwZn376Ke6++259HAFAZGQkLly4YMaR2Y7OaKmVoV/+7WKy5yDboWuLeenSJZw8eRKnTp3CyZMn8corr6CkpASOjo7o06ePzbXckUvq5hFq1EyqyTaZMralUil69uwJoK7n9YkTJ7B69WqsW7cOUVFRSE5OhlKpRG1tLbp27Yphw4ZhyJAhzT6eTCaDTGb82eR8/fJvzlRbE5FIhHF9fXF3hA/iUvOx6rdL+F9mCTb8noYt8dcQFdwFfgo5/BVO8FPI0U0h13/s4SxBtUqLG8oqZJdU40ZJ1c3/K6uQo6xGWbUalbVqVNZqoNY2bnw16/ZAvP1AZIdeQ7uT6piYmA49YUfMnDkThYWFeOONN5CdnY3+/fu32Nd23bp1UKvVeOaZZ/DMM8/o7589eza++OKLzh6+SUV29wAApGSXoVathdSR+xqpdVlZWfo/krfSarUmreZvT9zlpi1UVq3SIKe07ioul39Te/Tq1Qu9evXCrFmz9PelpaUhMTERSUlJZhyZaThJOFNN9qEzYlsQhAaFfQHoJ6wuXbqExMREvPnmm0Z5rvbg8m/rJhKJMLaPD+4M74rDlwqw+teLOJVRgqNXCps9Ryp20Fd8bw+p2AFOUjFcpGK4GqG1l2U3B2vCggULsGDBgiY/9+dEOS4uzvQDshCBnk5QOEmgrFLhYm4Z+ne3rZl4Mo1+/frhyJEj+gtTOl9//TUGDx5splHZFlMXKrteXDdL7SZzRBdntq+ijgkNDUVoaCj+8pe/mHsoRieTsKUW2a+OxPbLL7+MyZMnIzAwEGVlZdixYwfi4uIQGxsLoO49Q9euXREUFIQzZ87g2WefxYwZMxq1we0MuuXfXbn826qJRCKM6d0Vo3t54/R1Ja4WlCNbWY3skuq6f+tnoAsravUJtYtUjG4eTvD3cIK/Qg5/Dyd0q//XXS6Bs0wMZ6kYzlJHOEvFRi+sanVJNTVNJBIhMkCBI5cKcPq6kkk1tcny5csRExODrKwsaLVa7N69G6mpqdi8eTP27t1r7uHZBEV9Sy1TFSq7dT+1PRSbIjKUfqaa1b+J2iU3NxcxMTHIzs6GQqFAZGQkYmNjMX78eAB1K0WXLFmC3NxcdOvWDY899hheffVVs4y1sH75N2eqbYNIJMLAQA8MDPRo8vPVKg3yy2rg7iSBu9zRrO+DmFTbkAHddUl1CR4eFmTu4ZAVuPfee7Fz507861//gkgkwmuvvYbbbrsNP/zwg/6PJXWMbqa6rFrV5haA7aHbT82l30Qtc+JMNZFBWusGsmjRIixatKiTRtOym4XKmFTbA7lEbDFFWplU2xBdsbLTLFZG7TBx4kRMnDjR3MOwWbqWWloBqKjVGGXfzq2uFZm/RzWRNdAVKmNSTWS7bs5Uc/k3dS4m1TZkQH1brYu5ZahWaSCXNN/KgOhWtbW1yMvLg1bbcFlkUBBXPHSUXOIARwcR1FoBZdUqoyfVmWynRdQmnKkmsm3VKg3Kauq2WnGmmjobk2ob4q+Qw8tFisKKWqRkl2JwUBdzD4ks3KVLl/DEE0/g6NGjDe7XLVPWaPjms6NEIhHcnSQoqqhFaZUa3Yxc7iCDM9VEbSLT76nm7zUiW1RYUTdLLRU76DtvEHUW/sTZEJFIhAEBCsSl5uNMlpJJNbVqzpw5cHR0xN69e9GtWzcWujIRd7kjiipqUWbkCuCCIOiTau6pJmoZC5UR2baCMl07LSnfz1CnY1JtYyK71yXV3FdNbZGcnIyTJ0+iT58+5h6KTTNVW638shpUq7QQO4jg7+Fk1McmsjVyLv8msmmFFTeTaqLOZtwGXWR2un3VZ5hUUxv07dsXBQUF5h6GzXM3UVstXZEyfw+50fstEtkaJykLlRHZsoKyuuXf3E9N5sB3YTZGVwH8Ul4ZKmtN0xeXrFtpaan+9s477+DFF19EXFwcCgsLG3yutLTU3EO1GW6ym221jInttIjaTu7ImWoiW5bPdlpkRlz+bWN83eXwcZMhr6wG52+UYkiIp7mHRBbGw8OjwV4jQRBw9913NziGhcqMSz9TXW3cC10391O7GPVxiWyRXMpCZUS2jO20yJyYVNugyAAP/JqSi9PXlUyqqZGDBw+aewh2x91Ee6pZpIyo7W621GKhMiJbVFA/U92VM9VkBkyqbVBkgAK/puTiTBb3VVNjY8aM0f8/IyMDgYGBjapkCoKAzMzMzh6azdIXKjPynmom1URtpytUVlVrupnqapUGP53JxuZj13D+Rik2zBmCUb26muz5iOgmFiojc2JSbYMG1O+rPn29xLwDIYsXGhqK7Oxs+Pj4NLi/qKgIoaGhXP5tJLrl38beU32tkD2qidpKN1Ndozb+77XMokpsSbiGr05korjyZpyv+vUSk2qiTsJCZWROTKpt0IDudUn11YIKlFWr9LNkRH+m2zv9Z+Xl5ZDL5WYYkW262VLLeDPVlbVq/VK3QM5UE7VKLqmrzWqsmWqNVsDhi/nYfCwdcRfzIQh19/sr5HhwSCDWxl3GyWvFOH29BJH1nTmIyHT0M9UuTKqp8zGptkHerjJ093BCVkkVzmaVIrqHl7mHRBZmyZIlAACRSIRXX30Vzs43kzKNRoOEhAQMGjTITKOzPe5yXUst481UZxZVAQAUThIonHjhjKg1+j3Vam2zFxTbKimjGIt2JOnjEABG9fLGY9EhGBveFY5iB2QWVWJPUha++CMd/5k5qKPDJ6IWaLQCiirqZ6rduPybOh+Tahs1oLsCWSVVOJNVwqSaGklKSgJQN1N95swZSKU3/wBJpVIMHDgQzz//vLmGZ3N0M9XGXP59rbACAJd+E7WVrD6p1mgFqDQCpI6GJ9WbjqYjs6gK7nJH/HVIIB4ZHoxQ74ZV+OeMCMGepCz8cPoGlk7pAx83rv4hMpXiylpoBUAkAjydmVRT52NSbaMGBCgQey4Hp6+zWBk1pqsA/vjjj2P16tVwd3c384hsmylaaumKlHHpN1Hb6Gaqgbq2WlJHB4Mf60JOGQDg/b8Owvi+vk0eMzDQA7cFeeBURgm2JWRg8bjeBj8fEbVMtx2qi7MUjmLDY5vIUPyps1GR9cXKWAGcWrJx40Ym1J3A3QQz1bqkOphJNVGbSMQiONRPTtd0oFd1rVqLy3nlAICIbm4tHvv4HaEAgC3xGSYpkEZEdfQ9ql04S03mwaTaRumKlV0rrISy0rgVh4mofXRJdbVKi1q1cXrksp0WUfuIRCL9bHVVB5LqK/nlUGsFuMkc0d3DqcVjJ/X3g5+7HAXlNfjpTLbBz0lELdPNVLPyN5mL1SXVa9asQWhoKORyOaKionDkyJEWjz906BCioqIgl8sRFhaGTz75pJNGal4ezlL9m+3TWSXmHQyRnXOV39xpY6zZaibVRO2n61VdrTL84taFnFIAQJ9ubq0WO5OIHRATHQwA2PhHOgRdiXAiMqr8MvaoJvOyqqR6586dWLx4MV555RUkJSVh1KhRmDx5MjIyMpo8Pi0tDVOmTMGoUaOQlJSEl19+GYsWLcKuXbs6eeTmMTjIAwBwIr3YvAMhsnNiBxFcZcbbV63RCrheX3U4iIXKiNpMboSZ6gvZdfup+/i1bevMrNsDIXV0wOnrSpzK4N9jIlMorGCPajIvq0qq//Of/2Du3Ll48sknERERgVWrViEwMBBr165t8vhPPvkEQUFBWLVqFSIiIvDkk0/iiSeewHvvvdfJIzePYaF1Vb8TrhaaeSREZMy2Wrml1ajVaCERi9BN0fLyUyK6yUmqm6k2PKlOqS9S1qeV/dQ6Xq4yzBjkD6ButprI2qxduxaRkZFwd3eHu7s7oqOj8fPPP+s/X15ejoULFyIgIABOTk6IiIho9r25qRTUz1R3dWNSTeZhNUl1bW0tTp48iQkTJjS4f8KECTh69GiT5xw7dqzR8RMnTkRiYiJUKtvfZzwszBMAkJRZ0qE3EETUce5OumJlHZ+p1i39DujiDLGD4W2BiOyNXFL3tqdjM9X1y7/bOFMNAHNG1BUs+/lsDrKVVa0cTWRZAgIC8PbbbyMxMRGJiYm46667MH36dJw7dw4A8NxzzyE2NhZbtmxBSkoKnnvuOfz973/Hd99912lj1M1Us1AZmYvVJNUFBQXQaDTw9W3YusLX1xc5OTlNnpOTk9Pk8Wq1GgUFBU2eU1NTg9LS0gY3axXm7QJvVxlq1Vr8L7PE3MMhsmtuuplqI+ypzihkOy0iQ+gKlRla/buwvAZ59TNi4X5tm6kGgL7+7hgW6gmNVsCW+GsGPTeRudx7772YMmUKevfujd69e+Ott96Cq6sr4uPjAdRNYs2ePRt33nknQkJC8NRTT2HgwIFITEzstDGyUBmZm9Uk1Tp/LgoiCEKLhUKaOr6p+3VWrlwJhUKhvwUGBnZwxOYjEon0s9UJaUVmHg2RfTNmW62bRcq49JuoPTq6pzq1ful3kKezvk5CW+naa21LyODqMbJaGo0GO3bsQEVFBaKjowEAI0eOxPfff4+srCwIgoCDBw/i4sWLmDhxYqeNS99Si4XKyEysJqn29vaGWCxuNCudl5fXaDZax8/Pr8njHR0d4eXl1eQ5y5Ytg1Kp1N8yMzON8wLMZFioLqnmvmqyHMXFxYiJidFfvIqJiUFJSUmzx6tUKrz00ksYMGAAXFxc4O/vj8ceeww3btzovEF3kG6mWmmEPdXX9D2qXTr8WET2pKPVv/X7qdsxS60zvq8vuns4obhShe+Sswx6fiJzOXPmDFxdXSGTyTB//nzs2bMHffv2BQD897//Rd++fREQEACpVIpJkyZhzZo1GDlyZLOPZ8yVoYIgIJ8z1WRmVpNUS6VSREVFYf/+/Q3u379/P0aMGNHkOdHR0Y2O37dvH4YMGQKJRNLkOTKZTF+IQXezZrpiZSevFRutPy51jou5ZVBpbPN79vDDDyM5ORmxsbGIjY1FcnIyYmJimj2+srISp06dwquvvopTp05h9+7duHjxIqZNm9aJo+4YH3c5ACBHWdPhx9LNVHP5N1H76Geqaw2bKdbvp+7W/vcGYgcRZo9gey2yTuHh4UhOTkZ8fDyefvppzJ49G+fPnwdQl1THx8fj+++/x8mTJ/H+++9jwYIF+PXXX5t9PGOuDC2vUevf4zKpJnNp39olM1uyZAliYmIwZMgQREdH49NPP0VGRgbmz58PoG6WOSsrC5s3bwYAzJ8/Hx999BGWLFmCefPm4dixY9iwYQO2b99uzpfRqXr5uKKLswTFlSqcyVIiKriLuYdErbicV45Vv17Ej2eysfK+AZg1NMjcQzKqlJQUxMbGIj4+HsOGDQMArF+/HtHR0UhNTUV4eHijcxQKRaMLZB9++CGGDh2KjIwMBAVZ/tdIlwBnFFV0+LEydTPVbKdF1C5OHSxUdqF+pjrCgJlqAJg5JAgf7L+ECzlliL9ahOgeTa+aI7I0UqkUPXv2BAAMGTIEJ06cwOrVq7Fq1Sq8/PLL2LNnD+655x4AQGRkJJKTk/Hee+9h3LhxTT7esmXLsGTJEv3HpaWlBifWBfVLv12kYn2Ff6LOZlVJ9cyZM1FYWIg33ngD2dnZ6N+/P3766ScEB9dd+c3Ozm7Qszo0NBQ//fQTnnvuOXz88cfw9/fHf//7XzzwwAPmegmdzsFBhKGhnvjlXC4S0gqZVFuwa4UVWP3bJXyblAVt/QRGam6ZeQdlAseOHYNCodAn1AAwfPhwKBQKHD16tMmkuilKpRIikQgeHh4mGqlxBeuT6soOPU5ZtQpF9VVOOVNN1D7yDhQqU2u0uJira6dl2Co2hbME99/WHVsTMvDF0TQm1WS1BEFATU0NVCoVVCoVHBwaLn4Vi8XQaptfbSeTySCTGWdWubB+6bcXZ6nJjKwqqQaABQsWYMGCBU1+7osvvmh035gxY3Dq1CkTj8qyDQv1qkuqrxZhwZ3mHg39WVZJFT787RK+PnkdmvpselyEL54b3wv9/BVmHp3x5eTkwMfHp9H9Pj4+zVby/7Pq6mosXboUDz/8cItbNGpqalBTc3O5tTmr+QfdklS3VmCxJbqk3MtF2u5CSUT2zqkDhcrSCytRo9bCSSLWx7Mh5owIwdaEDOw/n4vMokpeHCOL9/LLL2Py5MkIDAxEWVkZduzYgbi4OMTGxsLd3R1jxozBCy+8ACcnJwQHB+PQoUPYvHkz/vOf/3TK+G5W/maRMjIfq9lTTYbTVQBPTC+C2kb36Fqj3NJqvPbdWYz9dxx2nMiERitgTO+u+O6ZO/DZ7CFWl1CvWLECIpGoxZuuvUZTCWVbE02VSoVZs2ZBq9VizZo1LR5rSdX8/T2c4CCqK5CUX2b4vmpdO60gLv0mG7BmzRqEhoZCLpcjKioKR44cMenzdaRQ2YWcuotyvf3cOtQfvpevG0b18oZWAN7bl2rw4xB1ltzcXMTExCA8PBx33303EhISEBsbi/HjxwMAduzYgdtvvx2PPPII+vbti7fffhtvvfWWfnumqeXrK39zpprMh9McdqCPnzvc5Y4orVbj3I1SDAz0MPeQ7FqtWot1h67go4OXUVNfWCM6zAv/mNAbQ0I8zTw6wy1cuBCzZs1q8ZiQkBCcPn0aubm5jT6Xn5/fbCV/HZVKhb/+9a9IS0vDgQMHWi0kaMw9Wx0ldXSAv4cTrhdXIaOoUl+4rL1uttNiUk3WbefOnVi8eDHWrFmDO+64A+vWrcPkyZNx/vx5k9VJ6EhLrQvZHdtPfasXJ/bB75d/x3fJN/Dw0CAMC+u8ZeBqjRa/puThQk4pHEQiiB3qbyIRHBxEEIvqiqp1dZNjeJgnPJw5+2fvNmzY0OLn/fz8sHHjxk4aTWO6OiPdPdhmksyHSbUdENfvq/41JQ8JaYVMqs3o5LViLNt9GhdzywEAQ4K7YMmE3hjRw9vMI+s4b29veHu3/jqio6OhVCpx/PhxDB06FACQkJAApVLZbCV/4GZCfenSJRw8eLDZtni3MuaeLWMI8nTG9eIqXCusNPgCCpNqshX/+c9/MHfuXDz55JMAgFWrVuGXX37B2rVrsXLlSpM8p65QmSF9onUz1REG7qe+1YAABR4aGoRtCRlY/v057P37SDiKTbt4sLRaha9OZGLjH+nIKqlq0zkiEdDfX4E7enrjjp5euD3EU39hgshSpBXUFQAN9WabSTIfJtV2YlioV11SfbUIT43uYe7h2J3yGjX+HXsBm+OvQRDq9sO+dm9fTBvob/DeWmsVERGBSZMmYd68eVi3bh0A4KmnnsLUqVMbFCnr06cPVq5cifvuuw9qtRoPPvggTp06hb1790Kj0ej3X3t6ekIqtY6ZlGAvZxy9UtihYmVMqskW1NbW4uTJk1i6dGmD+ydMmICjR4+a7HlvLv9uf1Kdkm14j+qmvDAhHD+dycaFnDJsib+GOXeEGuVx/yyjsBIbj6bh68TrKK9RAwC6OEswvq8vxA4iaLQCNFpAKwh1/xcEaDQCruSX41JeOc5kKXEmS4lPDl2B1NEBUUFdMLKXNwYHeSDYywV+7vIOLYf/M5VGC2WVCuXValTWalClUqOiRqP/f2WtBlW6m0qDapW2/t+6+6rVdf93lUng7SqFl6sUXi4yeLlK4e1a96+nixTSVi5iqLV1Xw+1VoBao9V/rNJoodEK6OIs5X54C8GkmiwBk2o7odtXfTy9CBqtYNQ/gNSyX8/n4tXvziJbWQ0AeDAqAK9MiUAXF+tIBE1h69atWLRoESZMmAAAmDZtGj766KMGx6SmpkKpVAIArl+/ju+//x4AMGjQoAbHHTx4EHfeeafJx2wMujdgmUyqyc4VFBRAo9E02vLh6+vbbMFCYxQe1LXbae+e6tJqlX52t49fx2eqAaCLixTPTwjH/317Fu/vv4ipA/2N1mNXEAQkXivGhiNp2Hc+R99RoqePK+aODMV9g7u3acY5t7QaR68U4PdLhTh6pQDZymocu1qIY1cL9cdIxCIEdHFGkOfNW6CnM1xljqhS1Se+9cnurYlwabUKykoVSqpqUVKpQkmlqi6Zrk/8LV3M8GC8OaO/uYdh9zRaQV9rhEk1mROTajvRt5s7XGWOKKtWIyW7FP27W1cRLGuUV1aN178/jx/PZAOom6X8130DcEdP61/q3VGenp7YsmVLi8cIgqD/f0hISIOPrZUuEb5mYFKt1miRVVz3xj7Yi28eyPr9eaVOSwULV65ciddff71DzydzNGxPdWp9f2p/hRwKZ0mHxnCrh4YGYceJDJzNKsW7sRfw7oMDO/yYJZW1eHZHMg5dzNffN7p3VzxxRwjG9O7artVRvu5y3Dc4APcNDoAgCLhaUIGjlwvwx+VCXMwtQ2ZxJVQaAWkFFfrZQmMQiQAXqSOcpGI4S8VwktT963zLfc5SMeSSus/p/60/VubogPIaNQrLa1BQXouC8hoUlteisKLu36LKWrTlT4puv7mj7iZ2gNhBBImDCG5yvoW2BDdKqlCr0UIqrqtbQmQu/I1gJxzFDogK7oJDF/NxPK2ISbWJ7TuXg+e//h9Kq9UQO4gwb1QYnr27l36WhOxTsGddImzo8u9sZTXUWgFSRwf4uFnOXnGi9vL29oZYLG40K52Xl9dswUJjFB7U/Q6uqm1fUn0hu25W3ND+1M0RO4jw+rT+eGDtUXyVeB2zhgbhtqAuBj/exdwyzNuciGuFlZA6OuD+wd3xxMhQ9Pbt+JJ1kUiEHl1d0aOrK2KiQwDUzRLmlFbjWmEFMosqkVFUiWuFlcgsqms/pkt2nXTJrsRBnwS7yR3RxVkKD2cJFE4SeDhL4eEkgYezBG5yiUlX1Gm1Am7Nqf980VYA9IXbyLLpLuYEeTlzFSaZFZNqOzIszBOHLuYjIa0QT4w0zd4teycIAj48cBn/2X8RADCguwJvPzDA6tpjkWnoZqrzy2pQVatp90UWXTIe2MWJb/bIqkmlUkRFRWH//v2477779Pfv378f06dPb/IcYxQelDvWFypTty+pTskx7n7qW0UFd8GDUQH45uR1LP/uHL595g6DkoP953OxeEcSKmo1COjihM9mDzHaUvXmiB1E6O7hVFd12YrKtTT+/cnfp9aK+6nJUrBPtR0ZFlpXLfl4WhG0WutfSmtpKmvVeGbbKX1CPWdECHYvGMGEmvQUzhK41y8ZNGS2+lr9vjEu/SZbsGTJEnz22Wf4/PPPkZKSgueeew4ZGRkm7W2r31NtITPVOi9N6gM3mSPOZCmx80Rmu84VBAEfHbiEp75MREWtBsPDPPH9wpEmT6iJLAGTarIUnKm2I5EBCjhJxCiuVOFSXjnCTXDF3V5dL67EvM0nkZJdColYhDen98esoabps0rWLdjLBWeylMgoqmx3DLJIGdmSmTNnorCwEG+88Qays7PRv39//PTTTwgODjbZczrpqn+r216oTKsV9HuqjdGjuild3WR4bnxvvLH3PN795QIm9/drUzHLylo1XvjmNH48XVe747HoYLw6tS8kJm7PRWQpmFSTpeBvXTsiqd9XDQAJaYWtHE1tlXC1ENM++gMp2aXwdpVi+7zhTKipWfpiZYXtL+qTyaSabMyCBQuQnp6OmpoanDx5EqNHjzbp8+kqXrdnT/X14ipU1GogFTuY9I37Y9HBCPd1Q0mlCu/vT231+KySKjy49hh+PJ0NiViElfcPwBvT+zOhJruSXv+3NIQruMjM+JvXzgwLrWutlXC1yMwjsQ1b4q/hkc8SUFRRi/7d3fHdwpEYEuJp7mGRBQvyMryt1rWi+oIsTKqJDKLvU63WtLmjQEpO3dLvXr6ucDRhwuoodsCKaf0AAFsTMnA2S9ng84IgIFtZhT8uF+CLP9Iw7cPfcT67FF4uUmybNxwP8WIu2ZlatVb/tzSsK5NqMi8u/7Yzw8Lq9lUnpBW22LqEWqbSaPH6D+ewJT4DAHDvQH+8+0Akq3tTq3QJsSF7qnW9OHWJORG1j1xSlxQLAvTVqVtzIVtXpMz0e5Sje3jh3oH++OF/N7B092ncFe6DKwUVSMuva1n151Zg/fzd8eljQ+oKhRHZmcziSmgFwFkqZkcMMjsm1XZmYKACMkcHFJTX4kp+BXr6uJp7SFantFqFZ7aewpFLBRCJgOcnhGPBnT14gYLaxNBe1SWVtSitVgMAArswqSYyxK1JdI2qjUl1/Ux1RLfOqUPyypQI/JaSi7NZpTibVdrgc44OIgR5OiOsqwsGdPfAU6PDeDGX7FZa/s2l33wPRubGpNrOyBzFGBzkgfirRTieVsSkup2ySqrwxMYTSM0tg7NUjP/OGoxxfZvuqUrUFF1Sfb2oClqt0ObWWLqZbR83Gd9EExlIInaAo4MIaq2AKpUGCkhaPedCTufNVAOAn0KOdx+MxFeJ19Hdwwlh3i4I6+qCUG8XBHo6c880UT3dfmoWKSNLwKTaDg0N9UL81SIkpBXi4WHcg9VWZ64r8cSmE8gvq4GPmwyfz7kd/buzXRa1TzeFHI4OItRqtMgtq0Y3RduWbeqS6mAu/SbqECeJGGU1alSrWi9WVlmr1r9x79NJM9UAMDXSH1Mj/Tvt+Yis0VVW/iYLwsuddmj4LcXK2lqoxd79ej4Xf113DPllNejj54Zvn7mDCTUZxFHsgO5d6hJpXd/pttAdG8giZUQdItNVAG9DUn0xtxyCAHi7yuDtyj2bRJYkvT6pDmFSTRaASbUdGhzUBRKxCDml1QYVS7I3m46m46kvE1Gl0mBUL298PT8a/iwKQx1gSLEyttMiMg4nad1bn7Yk1ReyO3c/NRG1HXtUkyVhUm2HnKRiDAzwAMDWWi3RaAW88cN5LP/+HLQCMOv2QHw+53a4yVvfg0fUEn1S3Y6Z6iv55QDYi5Ooo5x0bbXaklTr91MzqSayJFW1GmQrqwEwqSbLwKTaTg0Lq1sCHp9WaOaRWKaqWg0WbD2Jz/9IAwC8MDEcK+8fwAIxZBS6fdFtnalWabQ4U9+zltsOiDpG3o6kOqV+prqzipQRUdvoah0onCTo4szJDjI/q8kQiouLERMTA4VCAYVCgZiYGJSUlDR7vEqlwksvvYQBAwbAxcUF/v7+eOyxx3Djxo3OG7QFGxZa36+aM9WNFFfU4pHP4vHLuVxIxQ7470OD8czYnmzXQEbT3uXfqTllqFZp4S53RBivyBN1yM2kWtvicYIg3Jyp5vJvIoty635qvj8jS2A1SfXDDz+M5ORkxMbGIjY2FsnJyYiJiWn2+MrKSpw6dQqvvvoqTp06hd27d+PixYuYNm1aJ47ackUFd4HYQYSskipcL+a+ap3Moko88MlRnMoogbvcEVueHIZpA1mBlYwrsJ1JdVJmCQBgYKBHm1twEVHTdEl1VW3LM9XZymooq1QQO4jYfpLs2tq1axEZGQl3d3e4u7sjOjoaP//8s/7zIpGoydu///1vk41JV/mbF5rJUlhFS62UlBTExsYiPj4ew4YNAwCsX78e0dHRSE1NRXh4eKNzFAoF9u/f3+C+Dz/8EEOHDkVGRgaCguy7lZSLzBGDAz2QeK0Ye09nY/6YHuYektmdu6HEnI11LbP8FXJsemIoevlydoKMTzdTXVRRi7JqVav79JMzSgDUFRkkoo5xktTNJ1SrW06qL+TULf3u0dUFMkf2hif7FRAQgLfffhs9e/YEAGzatAnTp09HUlIS+vXrh+zs7AbH//zzz5g7dy4eeOABk41JP1PNOiNkIaxipvrYsWNQKBT6hBoAhg8fDoVCgaNHj7b5cZRKJUQiETw8PJo9pqamBqWlpQ1utuqvQwIBAFsTrkGjte/WWn9cLsDMdfH6llm7F9zBhJpMxk0ugaeLFACQWVTV6vFJmcUAgMGBHqYcFpFdaOtMdUq2rkgZ91OTfbv33nsxZcoU9O7dG71798Zbb70FV1dXxMfHAwD8/Pwa3L777juMHTsWYWFhJhuTvvJ3VybVZBmsIqnOycmBj49Po/t9fHyQk5PTpseorq7G0qVL8fDDD8Pdvfk/kCtXrtTv21YoFAgMDDR43Jbu3oH+cJc7IrOoCocv5pt7OGbzbVIW5mw8jvIaNYaHeWLn36Lhp5Cbe1hk424uAa9o8ThlpQpX8+uOGcSkmqjDdNW/a9Qt76nmfmqixjQaDXbs2IGKigpER0c3+nxubi5+/PFHzJ0716Tj0BUqC+VMNVkIsybVK1asaHYfhu6WmJgIAE0WIRAEoU3FCVQqFWbNmgWtVos1a9a0eOyyZcugVCr1t8zMTMNenBVwkorxl/rZ6i3x18w8ms4nCAI+PXwFi3cmQ6URcE9kN2x6YigUTqwiSaYX3MZ91cnXSwAAIV7O6FI/u01EhmvrTPXNHtWcqSY6c+YMXF1dIZPJMH/+fOzZswd9+/ZtdNymTZvg5uaG+++/v8XH68jK0NJqFQrKawEAId7O7XshRCZi1j3VCxcuxKxZs1o8JiQkBKdPn0Zubm6jz+Xn58PX17fF81UqFf76178iLS0NBw4caHGWGgBkMhlkMlnrg7cRjwwLwobf03AgNQ+ZRZX62TNbp9UK+OePKfqWWU/cEYr/uyeCRaCo0+j2VV9rpVd1Ukb90m/upyYyCn1S3UJLrWqVRl8IKYLLv4kQHh6O5ORklJSUYNeuXZg9ezYOHTrUKLH+/PPP8cgjj0Aub3nF38qVK/H6668bNBbdfmpvV1mrNUmIOotZk2pvb294e3u3elx0dDSUSiWOHz+OoUOHAgASEhKgVCoxYsSIZs/TJdSXLl3CwYMH4eXlZbSx24qwrq4Y2dMbv18uwLbjGXhpUh9zD8nkatQaLPnqf/jxdF1hjZen9MG8UWFsyUCdKqiNvaqT6yt/c+k3kXHIdYXKWkiqL+eVQ6MV4OEsga+7/VxoJ2qOVCrVFyobMmQITpw4gdWrV2PdunX6Y44cOYLU1FTs3Lmz1cdbtmwZlixZov+4tLS0zVsu01j5myyQVeypjoiIwKRJkzBv3jzEx8cjPj4e8+bNw9SpUxtU/u7Tpw/27NkDAFCr1XjwwQeRmJiIrVu3QqPRICcnBzk5OaitrTXXS7FIjw4PBgDsPJGJmlaqoVq70moV5nx+Aj+ezoZELMKqmYPw1OgeTKip0+lmqjNbSKoFQdAn1YODPDphVES2z6kNM9X6/dR+bvz7QNQEQRBQU1PT4L4NGzYgKioKAwcObPV8mUymb9Glu7VVmr5HtX2sriTrYBUttQBg69atWLRoESZMmAAAmDZtGj766KMGx6SmpkKpVAIArl+/ju+//x4AMGjQoAbHHTx4EHfeeafJx2wtxkX4wM9djpzSasSezcH0Qd3NPSSTyCutxuyNJ5CSXQoXqRjrYoZgZK/WV0oQmYIuqb5eXAW1RgtHceNrnOmFlSipVEHq6MAKxERG4iStL1Smar5Q2an6bRfcT00EvPzyy5g8eTICAwNRVlaGHTt2IC4uDrGxsfpjSktL8fXXX+P99983+Xj0lb+92T+eLIfVJNWenp7YsmVLi8cIws22UCEhIQ0+puY5ih3w0NAgfPDrRXx57JpNJtVX8ssx+/PjuF5cBW9XGb54/Hb0764w97DIjvm5yyEVO6BWo0W2srrJega6/dQDuisgdbSKhUVEFk/u2PJMtVYr4NfzdXVcxvTu2mnjIrJUubm5iImJQXZ2NhQKBSIjIxEbG4vx48frj9mxYwcEQcBDDz1k8vGk65NqzlST5eC7NAIAzBoaCEcHERKvFeP8DdvqzZ2UUYwH1x7F9eIqhHg5Y/fTI5hQk9k5OIgQ4OkEoPkl4NxPTWR88vqZ6ub2VJ/OUiKvrAauMkdE92AtFqINGzYgPT0dNTU1yMvLw6+//togoQaAp556CpWVlVAoTPv+ShAEfRFBzlSTJWFSTQAAX3c5JvbzAwBsSbCd9loHLuTi4fUJKK5UYWCAAt88PUJfIIrI3PQVwJtJqpMySgBwPzWRMcnrV300N1O9/3wOAGBMeFfI6me1icgyFFXUoqxaDQAI5vs5siBMqklPV7Ds26QslFWrzDyajvsqMRPzNp9ElUqDMb27Ytu84fB2ZRVXshwt9aquVmmQUt8nlzPVRMbjpJ+pbnpP9b5zdUu/J/RtuWUnEXU+3X7q7h5O+vZ4RJaASTXpDQ/zRE8fV1TWarAnKcvcwzGYIAj4YP9FvPjNaWi0Au6/rTs+mz0ELjKrKSFAdkK3jzqjiV7VZ7OUUGsFdHWTobuHU2cPjchm6d6IN7X8O72gApfyyuHoIMKd4T6dPTQiagUrf5OlYlJNeiKRCI8OCwIAfHnsmlUWeqtRa/CPr/6H1b9dAgA8fWcPvP+XgZA0UVmZyNyCvep6bDY1U33rfmq29CEyHqcWkur99QXKhoV5QuEk6dRxEVHrblb+Zo9qsizMNKiB+6MC4CQR41JeORLSisw9nHZRVqrw2Ibj2J2UBbGDCCvvH4CXJvVhQkIWK6iF5d/cT01kGnJJ83uq99Xvp57Q169Tx0REbZNeWD9T7cWkmiwLk2pqwF0uwYzBdS21tsRbT8GyjMJK3Lf2DySkFcFV5ojP59yOh4YGmXtYRC0KrK/+raxSQVnZsI4BK38TmYZu+XdVbcOkurC8Biev1bWxG8f91EQW6Wp+XVId1pVJNVkWJtXUyKPD65LR2LM5yCurNvNoWncqoxj3rfkDV/Mr0E0hx9fzo9lblKyCs9QRXd3qiufdOludW1qNrJIqOIiAyAAPM42OyDbpln/XqLXQam9uc/rtQh60AtDP3511DIgskFYr4Fp9DRLOVJOlYVJNjfTzV+C2IA+otQJ2Hs8093Ba9NOZbDz0aTwKK2rRz98d3z5zByK6uZt7WERtdrOtVoX+Pt3S796+bnBlgT0io7q1YnCN+mYF8JtVv7n0m8gS5ZZVo0qlgdhBpC/0SWQpmFRTk2Ki69prbTueAbWm6bYj5iQIAtYduoIFW0+hRq3F3X188NXfouHrLjf30KgNiouLERMTA4VCAYVCgZiYGJSUlLT5/L/97W8QiURYtWqVycbYWZraV61b+s391ETGd2tSrStWVlWrwe+X8wEA47n0m8gi6YqUBXZxYgFasjj8iaQmTe7fDZ4uUmQrq/HBrxfNPZwGatVavLTrNFb+fAEAMDs6GJ8+xpZZ1uThhx9GcnIyYmNjERsbi+TkZMTExLTp3G+//RYJCQnw9/c38Sg7hy6pzrwlqU7KqNvXyf3URMYndhBBKm5YrOzIpXxUq7To7uGEiG5u5hweETWDlb/JkjGppibJJWIsv7cvAODjg1ew71yOmUdUp6iiFo9uSMBXidfhIAJem9oXr0/vD7EDK3xbi5SUFMTGxuKzzz5DdHQ0oqOjsX79euzduxepqaktnpuVlYWFCxdi69atkEhso92Nfvl3/T4xtUaLM1lKAMDgoC5mGxeRLdNVANfNVO+rb6U1oZ8vO0YQWah0fY9qJtVkeZhUU7OmD+qOx+8IAQAs+ep/uJJfbtbxXMotw4yP/8Dx+grfG+bcjidGhpp1TNR+x44dg0KhwLBhw/T3DR8+HAqFAkePHm32PK1Wi5iYGLzwwgvo169fm56rpqYGpaWlDW6WJtir4fLvi7nlqKzVwFXmiB5dXc05NCKbpa8ArtJAoxVw4EIeAC79JrJkupnqMCbVZIGYVFOLXp4SgaEhniivUWP+lydRUaM2yzjiUvNw/5qjyCiqRKCnE3YvGIGx4T5mGQt1TE5ODnx8Gn/vfHx8kJPT/IqId955B46Ojli0aFGbn2vlypX6fdsKhQKBgYEGjdmUdDPVN0qqoNJo9fupBwYquAKDyEScpHVJdbVKi5PXilFUUQuFkwRDQzzNPDIiak4aZ6rJgjGpphZJxA746JHB8HGT4VJeOV785jQEQWj9RCMRBAEb/0jDE1+cQFmNGkNDPPHdMyPR25d73izNihUrIBKJWrwlJiYCQJPLKwVBaHbZ5cmTJ7F69Wp88cUX7VqauWzZMiiVSv0tM9Pyqtl3dZNBLnGAVgCyiqu4n5qoE8gddUm1Rr+96a4+PnBk8SMii6TWaPUrurinmiwRKztRq3zc5Fj76G2Y9Wk8fjyTjUFHPDBvdJjJn1el0WL59+ewLSEDAPCXqAD8877+kDmKWzmTzGHhwoWYNWtWi8eEhITg9OnTyM3NbfS5/Px8+Po2vfTyyJEjyMvLQ1BQkP4+jUaDf/zjH1i1ahXS09ObPE8mk0Emk7X9RZiBSCRCkKczLuaWI6Oo8mbl70DupyYyFXn9THVVrQb7U3SttLj0m8hS3SiphkojQOroAH8F+8iT5WFSTW0SFeyJ16b2xavfncPKn1PQr7s7RvTwNtnzZZVU4R9fJSP+ahFEImDZ5D6YNyqMBWQsmLe3N7y9W/+ZiI6OhlKpxPHjxzF06FAAQEJCApRKJUaMGNHkOTExMRg3blyD+yZOnIiYmBg8/vjjHR+8memS6rM3lLhcX7tgENtpEZmMU32hstNZSlwrrITU0QGje3c186iIqDlXC+r+NoZ4OcOBW6PIAnGdE7XZo8ODcf9t3aEVgL9vS8KNkiqjP4cgCNhxPAMTPziM+KtFcJGKsT5mCJ4a3YMJtY2IiIjApEmTMG/ePMTHxyM+Ph7z5s3D1KlTER4erj+uT58+2LNnDwDAy8sL/fv3b3CTSCTw8/NrcI61CqzfV733f9kQBCDQ0wnerpY9w05kzXSFyn743w0AwB09vNiWkciC6St/e3HpN1kmJtXUZiKRCP+6bwD6dnNHYUUtnt56CjVqjdEeP6ukCo99fhxLd59BeY0atwV54Pu/j8Q4LsmzOVu3bsWAAQMwYcIETJgwAZGRkfjyyy8bHJOamgqlUmmmEXau4Pqk+nx2XXVyLv0mMi2n+qRaV/hoQj8/cw6HiFqh71HdlUk1WSarSaqLi4sRExOjr+IbExODkpKSNp//t7/9DSKRCKtWrTLZGO2BXCLGupgoKJwk+F9mCV7ZcxZVtR1LrG+dnT5yqQAyRwe8MiUCX88fwZZCNsrT0xNbtmzRt7nasmULPDw8GhwjCALmzJnT7GOkp6dj8eLFJh1nZwmqb6ulwyJlRKalm6kGAJEIuDuC3SSILFlaYX2RMs5Uk4WymqT64YcfRnJyMmJjYxEbG4vk5GTExMS06dxvv/0WCQkJ8Pf3N/Eo7UOgpzP++9BgiETANyevY8Tbv+Hfv1xAbml1ux/rRkkVZm880WB2+qdnR2He6DC2EyK7EeTZ8E3CYO6nJjKpW5PqQYEe8HGTm3E0RNSatPo91az8TZbKKpLqlJQUxMbG4rPPPkN0dDSio6Oxfv167N27F6mpqS2em5WVhYULF2Lr1q2QSCSdNGLbN6Z3V6yaOQiBnk4orlTh44NXMPKdA3huZzLOZrW8ZLe8Ro3jaUX4+OBlTPzgMA5fzOfsNNm1gC43K5lKxQ7o6+9uxtEQmVZ6ejrmzp2L0NBQODk5oUePHli+fDlqa2s7bQxyyc23PxP6cuk3UUvWrl2LyMhIuLu7w93dHdHR0fj5558bHJOSkoJp06ZBoVDAzc0Nw4cPR0ZGhlGev0atQVZxXR0fJtVkqayiKsexY8egUCgwbNgw/X3Dhw+HQqHA0aNHmy1UpNVqERMTgxdeeAH9+vXrrOHajemDumNqpD/2n8/Bht/TcCK9GHuSsrAnKQtDQz0xd2QohgR3QUp2Gc7eUOJslhLnbpTq98Xo3BbkgX//ZSCTabJbcokYfu5y5JRWo6+/O9vGkU27cOECtFot1q1bh549e+Ls2bOYN28eKioq8N5773XKGJxumakez7odRC0KCAjA22+/jZ49ewIANm3ahOnTpyMpKQn9+vXDlStXMHLkSMydOxevv/46FAoFUlJSIJcbZwVIZlEltALgIhWjqxuLeJJlsoqkOicnBz4+jfc7+fj4ICcnp9nz3nnnHTg6OmLRokVtfq6amhrU1NToPy4tLW3fYO2M2EGESf27YVL/bjh9vQQbfk/Dj6ezcTytCMfTipo9z18hR7/uCozp3RUPDQ3iUm+ye0FezsgpreZ+arJ5kyZNwqRJk/Qfh4WFITU1FWvXru20pFq3/DvM2wU9fXhBl6gl9957b4OP33rrLaxduxbx8fHo168fXnnlFUyZMgXvvvuu/piwsDCjPX9aQd1+6hBvF3aCIYtl1qR6xYoVeP3111s85sSJEwDQZBAJgtBscJ08eRKrV6/GqVOn2hWAK1eubHVM1LTIAA+snjUYSyf3weZj17AtIQPKKhVCvJzRr7sC/f0V6Ofvjn7+7vBiuyCiBsZH+OLUtWLcO5C1H8j+KJVKeHp6tniMMS96RwYo4CACHhoaZPBjENkjjUaDr7/+GhUVFYiOjoZWq8WPP/6IF198ERMnTkRSUhJCQ0OxbNkyzJgxo9nHaU88Xyusr/zNpd9kwUSCIAjmevKCggIUFBS0eExISAi2bduGJUuWNKr27eHhgQ8++ACPP/54o/NWrVqFJUuWwMHh5r4pjUYDBwcHBAYGIj09vcnnayrIAwMDoVQq4e7OfY7todJoUavWsvenCZSWlkKhUPDnsp0s/eum1Qpw4KoNu2PpP5emduXKFdx22214//338eSTTzZ7XHMX4g39ulXVauAk5VYLMi5bjeczZ84gOjoa1dXVcHV1xbZt2zBlyhTk5OSgW7ducHZ2xj//+U+MHTsWsbGxePnll3Hw4EGMGTOmycdrTzwLgoDc0hqoNFoEejo3OofIVNoTz2ZNqtsqJSUFffv2RUJCAoYOHQoASEhIwPDhw3HhwoUm91QXFhYiOzu7wX0TJ05ETEwMHn/88Wb3Yf+Zrf5yJOvGn0vD8OtGlshWfi7buvpsyJAh+o9v3LiBMWPGYMyYMfjss89aPJcXvcka2Eo8/1ltbS0yMjJQUlKCXbt24bPPPsOhQ4fg4eGB7t2746GHHsK2bdv0x0+bNg0uLi7Yvn17k4/HeCZr0J54toopxIiICEyaNAnz5s3DunXrAABPPfUUpk6d2iA57tOnD1auXIn77rsPXl5e8PLyavA4EokEfn5+bU6oiYiIqG0WLlyIWbNmtXhMSEiI/v83btzA2LFjER0djU8//bTVx5fJZJDJuHWIyBykUqm+UNmQIUNw4sQJrF69Gh9++CEcHR3Rt2/fBsdHRETg999/b/bxGM9ka6wiqQaArVu3YtGiRZgwYQKAuitgH330UYNjUlNToVS23M6JiIiIjM/b2xve3t5tOjYrKwtjx45FVFQUNm7c2GCrFhFZPkEQUFNTA6lUittvv71Ri9uLFy8iODjYTKMj6nxWk1R7enpiy5YtLR7T2kr25vZRExERUee4ceMG7rzzTgQFBeG9995Dfn6+/nN+fuwZTWRpXn75ZUyePBmBgYEoKyvDjh07EBcXh9jYWADACy+8gJkzZ2L06NH6PdU//PAD4uLizDtwok5kNUk1ERERWb99+/bh8uXLuHz5MgICAhp8zgrKvBDZndzcXMTExCA7OxsKhQKRkZGIjY3F+PHjAQD33XcfPvnkE6xcuRKLFi1CeHg4du3ahZEjR5p55ESdxyoKlZmTrRacIOvGn0vD8OtGlog/l4bh140sEX8uDcOvG1mi9vxcchMTERERERERkYGYVBMREREREREZiHuqW6FbHV9aWmrmkRDdpPt55O6N9mE8kyViPBuG8UyWiPFsGMYzWaL2xDOT6laUlZUBAAIDA808EqLGysrKoFAozD0Mq8F4JkvGeG4fxjNZMsZz+zCeyZK1JZ5ZqKwVWq0WN27cgJubG0QiUaPPl5aWIjAwEJmZmXZVWMFeXzdgGa9dEASUlZXB39+f/V3bgfHcNHt93YBlvHbGs2EYz82z19duCa+b8WwYxnPz7PW1W8Lrbk88c6a6FQ4ODo1afjTF3d3drn7Qdez1dQPmf+28At5+jOeW2evrBsz/2hnP7cd4bp29vnZzv27Gc/sxnltnr6/d3K+7rfHMS2hEREREREREBmJSTURERERERGQgJtUdJJPJsHz5cshkMnMPpVPZ6+sG7Pu12zp7/d7a6+sG7Pu12zp7/t7a62u319dtD+z5e2uvr93aXjcLlREREREREREZiDPVRERERERERAZiUk1ERERERERkICbVRERERERERAZiUt2KNWvWIDQ0FHK5HFFRUThy5EiLxx86dAhRUVGQy+UICwvDJ5980kkjNZ6VK1fi9ttvh5ubG3x8fDBjxgykpqa2eE5cXBxEIlGj24ULFzpp1MaxYsWKRq/Bz8+vxXNs4XtuLxjPjGfGs+1gPDOeGc+2g/HMeLb6eBaoWTt27BAkEomwfv164fz588Kzzz4ruLi4CNeuXWvy+KtXrwrOzs7Cs88+K5w/f15Yv369IJFIhG+++aaTR94xEydOFDZu3CicPXtWSE5OFu655x4hKChIKC8vb/acgwcPCgCE1NRUITs7W39Tq9WdOPKOW758udCvX78GryEvL6/Z423le24PGM+MZ8az7WA8M54Zz7aD8cx4toV4ZlLdgqFDhwrz589vcF+fPn2EpUuXNnn8iy++KPTp06fBfX/729+E4cOHm2yMnSEvL08AIBw6dKjZY3RBXlxc3HkDM4Hly5cLAwcObPPxtvo9t0WM5zqM5+bZ6vfcFjGe6zCem2er33NbxHiuw3hunjV8z7n8uxm1tbU4efIkJkyY0OD+CRMm4OjRo02ec+zYsUbHT5w4EYmJiVCpVCYbq6kplUoAgKenZ6vHDh48GN26dcPdd9+NgwcPmnpoJnHp0iX4+/sjNDQUs2bNwtWrV5s91la/57aG8XwT45nxbO0YzzcxnhnP1o7xfBPj2brjmUl1MwoKCqDRaODr69vgfl9fX+Tk5DR5Tk5OTpPHq9VqFBQUmGyspiQIApYsWYKRI0eif//+zR7XrVs3fPrpp9i1axd2796N8PBw3H333Th8+HAnjrbjhg0bhs2bN+OXX37B+vXrkZOTgxEjRqCwsLDJ423xe26LGM91GM+MZ1vAeK7DeGY82wLGcx3Gs/XHs6O5B2DpRCJRg48FQWh0X2vHN3W/tVi4cCFOnz6N33//vcXjwsPDER4erv84OjoamZmZeO+99zB69GhTD9NoJk+erP//gAEDEB0djR49emDTpk1YsmRJk+fY2vfcljGeGc+MZ9vBeGY8M55tB+OZ8Wzt8cyZ6mZ4e3tDLBY3ukqWl5fX6EqJjp+fX5PHOzo6wsvLy2RjNZW///3v+P7773Hw4EEEBAS0+/zhw4fj0qVLJhhZ53FxccGAAQOafR229j23VYxnxjPAeLYVjGfGM8B4thWMZ8YzYBvxzKS6GVKpFFFRUdi/f3+D+/fv348RI0Y0eU50dHSj4/ft24chQ4ZAIpGYbKzGJggCFi5ciN27d+PAgQMIDQ016HGSkpLQrVs3I4+uc9XU1CAlJaXZ12Er33Nbx3hmPAOMZ1vBeGY8A4xnW8F4ZjwDNhLPnVsXzbroSvxv2LBBOH/+vLB48WLBxcVFSE9PFwRBEJYuXSrExMToj9eVe3/uueeE8+fPCxs2bLC4cu9t8fTTTwsKhUKIi4trUOq+srJSf8yfX/sHH3wg7NmzR7h48aJw9uxZYenSpQIAYdeuXeZ4CQb7xz/+IcTFxQlXr14V4uPjhalTpwpubm42/z23B4xnxjPj2XYwnhnPjGfbwXhmPNtCPDOpbsXHH38sBAcHC1KpVLjtttsalLmfPXu2MGbMmAbHx8XFCYMHDxakUqkQEhIirF27tpNH3HEAmrxt3LhRf8yfX/s777wj9OjRQ5DL5UKXLl2EkSNHCj/++GPnD76DZs6cKXTr1k2QSCSCv7+/cP/99wvnzp3Tf95Wv+f2gvHMeGY82w7GM+OZ8Ww7GM+MZ2uPZ5Eg1O/yJiIiIiIiIqJ24Z5qIiIiIiIiIgMxqSYiIiIiIiIyEJNqIiIiIiIiIgMxqSYiIiIiIiIyEJNqIiIiIiIiIgMxqSYiIiIiIiIyEJNqIiIiIiIiIgMxqSYiIiIiIiIyEJNqO7NixQoMGjTI3MNo1hdffAGRSASRSITFixd3ynOuWLFC/5yrVq3qlOckMgbGc2OMZ7JWjOfGGM9krRjPjdl6PDOptiG6H9TmbnPmzMHzzz+P3377rdPHFhcXB5FIhJKSklaPdXd3R3Z2Nt58803TDwzA888/j+zsbAQEBHTK8xG1BePZMIxnskSMZ8MwnskSMZ4NY+vx7GjuAZDxZGdn6/+/c+dOvPbaa0hNTdXf5+TkBFdXV7i6uppjeG0mEong5+fXac+n+5qIxeJOe06i1jCeDcN4JkvEeDYM45ksEePZMLYez5yptiF+fn76m0Kh0AfLrff9eTnKnDlzMGPGDPzrX/+Cr68vPDw88Prrr0OtVuOFF16Ap6cnAgIC8Pnnnzd4rqysLMycORNdunSBl5cXpk+fjvT09CbHlZ6ejrFjxwIAunTpor+K1x5r1qxBr169IJfL4evriwcffFD/OUEQ8O677yIsLAxOTk4YOHAgvvnmmwbnnzt3Dvfccw/c3d3h5uaGUaNG4cqVK+0aA1FnYjwznsl2MJ4Zz2Q7GM+M56Zwpppw4MABBAQE4PDhw/jjjz8wd+5cHDt2DKNHj0ZCQgJ27tyJ+fPnY/z48QgMDERlZSXGjh2LUaNG4fDhw3B0dMQ///lPTJo0CadPn4ZUKm3w+IGBgdi1axceeOABpKamwt3dHU5OTm0eX2JiIhYtWoQvv/wSI0aMQFFREY4cOaL//P/93/9h9+7dWLt2LXr16oXDhw/j0UcfRdeuXTFmzBhkZWVh9OjRuPPOO3HgwAG4u7vjjz/+gFqtNtrXkMhSMJ6JbAfjmch2MJ5tnEA2aePGjYJCoWh0//Lly4WBAwfqP549e7YQHBwsaDQa/X3h4eHCqFGj9B+r1WrBxcVF2L59uyAIgrBhwwYhPDxc0Gq1+mNqamoEJycn4ZdffmlyPAcPHhQACMXFxe0e965duwR3d3ehtLS00fHl5eWCXC4Xjh492uD+uXPnCg899JAgCIKwbNkyITQ0VKitrW3xuYODg4UPPvigxWOIzIHxzHgm28F4ZjyT7WA8M551OFNN6NevHxwcbu4E8PX1Rf/+/fUfi8VieHl5IS8vDwBw8uRJXL58GW5ubg0ep7q62iRLPMaPH4/g4GCEhYVh0qRJmDRpEu677z44Ozvj/PnzqK6uxvjx4xucU1tbi8GDBwMAkpOTMWrUKEgkEqOPjcjSMJ6JbAfjmch2MJ5tG5NqavTDLxKJmrxPq9UCALRaLaKiorB169ZGj9W1a1ejj8/NzQ2nTp1CXFwc9u3bh9deew0rVqzAiRMn9GP68ccf0b179wbnyWQyAGjX0hcia8d4JrIdjGci28F4tm1MqqndbrvtNuzcuRM+Pj5wd3dv0zm6fR8ajcag53R0dMS4ceMwbtw4LF++HB4eHjhw4ADGjx8PmUyGjIwMjBkzpslzIyMjsWnTJqhUKru9ekbUHMYzke1gPBPZDsazdWH1b2q3Rx55BN7e3pg+fTqOHDmCtLQ0HDp0CM8++yyuX7/e5DnBwcEQiUTYu3cv8vPzUV5e3ubn27t3L/773/8iOTkZ165dw+bNm6HVahEeHg43Nzc8//zzeO6557Bp0yZcuXIFSUlJ+Pjjj7Fp0yYAwMKFC1FaWopZs2YhMTERly5dwpdfftmg/QGRvWI8E9kOxjOR7WA8Wxcm1dRuzs7OOHz4MIKCgnD//fcjIiICTzzxBKqqqpq9kta9e3e8/vrrWLp0KXx9fbFw4cI2P5+Hhwd2796Nu+66CxEREfjkk0+wfft29OvXDwDw5ptv4rXXXsPKlSsRERGBiRMn4ocffkBoaCgAwMvLCwcOHEB5eTnGjBmDqKgorF+/3i6vohH9GeOZyHYwnolsB+PZuogEQRDMPQginS+++AKLFy9GSUlJpz93SEgIFi9ejMWLF3f6cxPZIsYzke1gPBPZDsaz8XGmmiyOUqmEq6srXnrppU55vn/9619wdXVFRkZGpzwfkT1hPBPZDsYzke1gPBsXZ6rJopSVlSE3NxdA3TIUb29vkz9nUVERioqKANRVU1QoFCZ/TiJ7wHgmsh2MZyLbwXg2PibVRERERERERAbi8m8iIiIiIiIiAzGpJiIiIiIiIjIQk2oiIiIiIiIiAzGpJiIiIiIiIjIQk2oiIiIiIiIiAzGpJiIiIiIiIjIQk2oiIiIiIiIiAzGpJiIiIiIiIjIQk2oiIiIiIiIiA/0/g6HWUBuZOs4AAAAASUVORK5CYII=\n", + "image/png": "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Yzy3rKOeu73Pu7XxzEtoRERERERERGZiUk1ERERERERkJibV7eTu7o758+fD3d3d3kOxqY563kDHPndX11F/th31vIGOfe6uriP/bDvquXfU8+4IOvLPtqOeu7OdNwuVEREREREREZmJM9VEREREREREZmJSTURERERERGQmJtVEREREREREZmJS3YLFixcjJiYGcrkcAwYMwL59+5o9fs+ePRgwYADkcjm6dOmCL7/80kYjtZyFCxfilltugY+PD4KCgnDvvfciPT292cfs3r0bIpGowe3s2bM2GrVlLFiwoME5hISENPsYV/iZdxSMZ8Yz49l1MJ4Zz4xn18F4Zjw7fTwL1KQNGzYIbm5uwldffSWcPn1amDVrluDl5SVkZmY2evylS5cET09PYdasWcLp06eFr776SnBzcxO+/fZbG4+8fcaNGyesXLlSOHnypJCamirceeedQmRkpFBRUdHkY3bt2iUAENLT04W8vDzTTavV2nDk7Td//nyhT58+9c6hsLCwyeNd5WfeETCeGc+MZ9fBeGY8M55dB+OZ8ewK8cykuhmDBg0SnnvuuXr39ezZU3jllVcaPf4f//iH0LNnz3r3Pfvss8KQIUOsNkZbKCwsFAAIe/bsafIYY5Bfu3bNdgOzgvnz5wvx8fGtPt5Vf+auiPFswHhumqv+zF0R49mA8dw0V/2ZuyLGswHjuWnO8DPn8u8m1NbW4siRIxg7dmy9+8eOHYv9+/c3+pgDBw40OH7cuHFISUmBRqOx2litTaVSAQD8/f1bPPamm25CaGgoRo0ahV27dll7aFZx/vx5hIWFISYmBpMnT8alS5eaPNZVf+auhvF8HeOZ8ezsGM/XMZ4Zz86O8Xwd49m545lJdROKioqg0+kQHBxc7/7g4GDk5+c3+pj8/PxGj9dqtSgqKrLaWK1JEATMnTsXw4YNQ9++fZs8LjQ0FP/973+xefNmbNmyBbGxsRg1ahT27t1rw9G23+DBg/H111/j119/xVdffYX8/HwMHToUxcXFjR7vij9zV8R4NmA8M55dAePZgPHMeHYFjGcDxrPzx7PU3gNwdCKRqN7XgiA0uK+l4xu731nMnDkTaWlp+P3335s9LjY2FrGxsaavExISkJ2djQ8++AAjRoyw9jAtZsKECaa/9+vXDwkJCejatStWr16NuXPnNvoYV/uZuzLGM+OZ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", "text/plain": [ "
" ] @@ -291,7 +334,7 @@ "plt.xlabel('$x$ [m]')\n", "plt.ylabel('$y$ [m]')\n", "plt.axis('equal')\n", - "plt.legend(frameon=False)\n", + "plt.legend()\n", "\n", "plt.figure()\n", "plot_results(timepts, lqr_resp.states, lqr_resp.outputs[6:8]);" @@ -315,7 +358,12 @@ " label=actual_label.format(i=i))\n", " plt.plot(timepts[start:], est_states[i, start:], 'b', \n", " label=estimated_label.format(i=i))\n", + " if i % 3 == 0:\n", + " plt.ylabel(\"State, estimate\")\n", + " if i > 2:\n", + " plt.xlabel(\"Time $t$ [s]\")\n", " plt.legend()\n", + " plt.gcf().align_labels()\n", " plt.tight_layout()\n", " \n", "# Define a function to plot out all of the relevant signals\n", @@ -356,6 +404,7 @@ " plt.ylabel(f'W[{i}]')\n", " plt.xlabel('Time [s]')\n", "\n", + " plt.gcf().align_labels()\n", " plt.tight_layout()" ] }, @@ -364,7 +413,9 @@ "id": "73dd9be3", "metadata": {}, "source": [ - "## State Estimation" + "## State Estimation\n", + "\n", + "We first construct a standard linear estimator (Kalman filter). To do so, we create a new nonlinear system that has limited outputs (the original system had full state output):" ] }, { @@ -375,9 +426,8 @@ "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", + "sys = ct.nlsys(\n", + " pvtol_noisy.updfcn, 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", @@ -394,15 +444,14 @@ "name": "stdout", "output_type": "stream", "text": [ - ": sys[7]\n", + ": sys[5]\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 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", + "Update: ._estim_update at 0x1533a9bc0>\n", + "Output: ._estim_output at 0x1533a9620>\n", + "xe=array([0., 0., 0., 0., 0., 0.]), 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", @@ -412,7 +461,7 @@ }, { "data": { - "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", + "image/png": "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43J17IxGIxcvXsTf379CCYvs7GxatGjBuXPnnLK+krw+69M0jZycHCIiInBzc96ZDdJunPP1SZuxrarajTP/ToG8PluwpN24XI+dm5sbzZs3r/aYgIAAp/xlNJHXZ13O3usA0m7AuV+ftBnbqKndOPPvFMjrszZz241zf1wSQgghhHAhktgJIYQQQjgJSexu4uXlxdy5c/Hy8rJ3KDYhr0/YgrP/3J359Tnza3Nkzv5zl9dnXy63eEIIIYQQwllJj50QQgghhJOQxE4IIYQQwklIYieEEEII4SQksRNCCCGEcBKS2AkhhBBCOAmXS+yWLl1Ky5YtadSoETExMezatava43fs2EFMTAyNGjWiVatWvPfee/UUqWXi4uLo1asX/v7+hIWFMWbMGI4fP17tY7Zv345Op6twOXbsWD1Fbb558+ZViLNJkybVPqahvHcNgTO2G2kzFTWE962hcMY2A9JuKuNw753mQlavXq15enpqK1as0I4cOaJNnz5d8/X11ZKSkio9/syZM5qPj482ffp07ciRI9qKFSs0T09P7bPPPqvnyGs2dOhQbeXKldrhw4e1hIQEbcSIEVpkZKSWm5tb5WO2bdumAdrx48e1lJSU0ktxcXE9Rm6euXPnap06dSoXZ2pqapXHN6T3ztE5a7uRNlNeQ3nfGgJnbTOaJu3mVo743rlUYnfHHXdoTz31VLnb2rdvr82ePbvS4//0pz9p7du3L3fb73//e61Pnz42i9FaUlNTNUDbsWNHlceYGtvVq1frL7Bamjt3rtatWzezj2/I752jcZV2I22mYb5vjshV2oymSbtxxPfOZYZiCwsL2bdvH0OGDCl3+5AhQ9i9e3elj/nhhx8qHD906FB+/vlnioqKbBarNWRlZQEQFBRU47E9evSgadOmDB48mG3bttk6tFo7efIkERERtGzZkvHjx3PmzJkqj23I750jcaV2I22mYb5vjsaV2gxIu3HE985lErv09HRKSkoIDw8vd3t4eDiXLl2q9DGXLl2q9Pji4mLS09NtFmtdaZrGzJkz6d+/P507d67yuKZNm7J8+XLWrl3L559/zm233cbgwYPZuXNnPUZrnt69e/Phhx8SHx/PihUruHTpEv369SMjI6PS4xvqe+doXKXdSJtpmO+bI3KVNgPSbsAx3zsPuzyrHel0unLfa5pW4baajq/sdkcy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", "text/plain": [ "
" ] @@ -441,12 +490,22 @@ "plot_state_comparison(timepts, kf_resp.outputs, lqr_resp.states)" ] }, + { + "cell_type": "markdown", + "id": "6417b46d-b527-47c3-a13c-0a8c0d9006d9", + "metadata": {}, + "source": [ + "We see that the Kalman filter does a good job of estimating most states, but the estimates for $x_2$ ($y$) and $x_4$ ($\\dot y$) are not very close." + ] + }, { "cell_type": "markdown", "id": "654dde1b", "metadata": {}, "source": [ - "### Extended Kalman filter" + "### Extended Kalman filter\n", + "\n", + "To try to improve the performance of the estimator, we construct an extended Kalman filter, which uses the linearization of the dynamics at the current state rather than a fixed linearization." ] }, { @@ -459,13 +518,13 @@ "name": "stdout", "output_type": "stream", "text": [ - ": sys[8]\n", + ": sys[6]\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" + "Update: \n", + "Output: \n" ] } ], @@ -524,7 +583,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "
" ] @@ -540,6 +599,24 @@ "plot_state_comparison(timepts, ekf_resp.outputs, lqr_resp.states)" ] }, + { + "cell_type": "markdown", + "id": "b4ee15d5-fc01-40d1-aaf6-194d4c734c80", + "metadata": {}, + "source": [ + "This estimator does a considerably better job, though still with fairly significant errors (~15%) in the $\\dot y$ estimate." + ] + }, + { + "cell_type": "markdown", + "id": "09c3c9db-f781-4009-897a-da5fe93d286b", + "metadata": {}, + "source": [ + "## Fixed horizon, maximum likelihood estimator (MLE)\n", + "\n", + "We now create an estimator that tries to find the disturbances and noise that maximumize the likelihood of the signals given a Gaussian noise model. This estimator will compute the estimated state over a finite horizon." + ] + }, { "cell_type": "code", "execution_count": 12, @@ -551,13 +628,13 @@ "output_type": "stream", "text": [ "Summary statistics:\n", - "* Cost function calls: 5051\n", - "* Final cost: 354.3319137685172\n" + "* Cost function calls: 5050\n", + "* Final cost: 485.715540533845\n" ] }, { "data": { - "image/png": "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\n", + "image/png": "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Y8YwefJktm7dytatW5k8eTJjx46tMIXctWtXli5dav37qaee4uuvv2bhwoUcOXKEd955hx9//JGHH37YqfL6+ED//ur9b7+her9a6v44eQp2714Vx2rwu0AXksVTJ9hNSkoKSUlJpKSkYDKZSEpKIikpifyaytM4keBAlSCRl19z6E5mlvo8okerip1KBK/AZqMuIiKC4+WBYSUlJezatYuEhATr53l5efj5+dVJiLrEOZw5c4YxY8Zw++2388ADD1S7b6fFOJQTvvFb9BRjNus4c6b6cVZPXQeHHl7wMr744gt69uzJqFGjGDVqFL169eLf//53hTHJyckVenWOHz+e9957j5dffpmePXvy4Ycf8t133zF06FCny1vuUGT79vIVAwaoWnHmmuOC6otl6nXgsCB8jOfh5pudejzB83juuefo27cvs2bNIj8/n759+9K3b996xdzVh+BJdwCQV1Lz9K5l+lVq1HknNk+/jhkzhhkzZvDSSy/x/fffExgYyFVXXWX9fM+ePXSoo8Vib5zDmTNnuPbaa0lISOCDDz6ocTtnxjgA+ISF0i7rOMl0Zc0auO++qsdZY+oK90Je3MXy4IJgB6GhoXz++ec1jtGqKKZ8//33c//99ztLrGqxGHWWqVBWrmyQ41rj6QbTyBstC67ik08+4ZNPPnG1GFaC77oZnoO8C741jss4kgcEE37uENC1QWQT3AebjboXXniBW2+9lWuuuYZmzZrx6aefotfrrZ9//PHHjBo1qk5C2BPncPr0aa699lr69evHokWL8HFysHWthIUxiY/4O68wbx4kJkKTy/6rpaVw8qR633HqaOi5GK6+uuFlFYQGZsAA9bp/v+o9X4c+83Xi0vZgguAJWPwABQVgMlVuRGIh41g+EEzE1u+BGQ0kneAu2GwRtWrVik2bNpGTk0NOTg7jx4+v8Pk333zDrFmzHC7gpZw5c4Zhw4YRHR3Nq6++SlZWFunp6dXW6GoQwsJ4mAWENSvk6FH48svKQ06eVErYlAIiSXNdzyRBaGCiotTX3WyGXbsa5pjnzoElL2TQi+PB1S2eBMEBBGcds76vKawv86zyKkS0rLlIseCZ2O3mMhgM+FbxiBAaGlrBc+cMVq1axZEjR1i7di1t27YlMjLSuriMli0JooAnE1RF/xdeoFLCxKU9X3Ug3SQEr8Lirdu+HXj/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", "text/plain": [ "
" ] @@ -586,7 +663,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "
" ] @@ -611,13 +688,13 @@ "output_type": "stream", "text": [ "Summary statistics:\n", - "* Cost function calls: 9464\n", - "* Final cost: 212754409.97292745\n" + "* Cost function calls: 10947\n", + "* Final cost: 212754409.96759257\n" ] }, { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "
" ] @@ -645,7 +722,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "
" ] @@ -665,7 +742,7 @@ "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." + "Another thing that the maximum likelihood estimator can handle is input distributions that are bounded. We implement that here by carrying out the optimal estimation problem with constraints." ] }, { @@ -676,7 +753,7 @@ "outputs": [ { "data": { - "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", + "image/png": "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", "text/plain": [ "
" ] @@ -691,6 +768,8 @@ "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.xlabel(\"Time $t$ [s]\")\n", + "plt.ylabel(\"Disturbance, sensor noise\")\n", "plt.legend();" ] }, @@ -705,14 +784,14 @@ "output_type": "stream", "text": [ "Summary statistics:\n", - "* Cost function calls: 3572\n", - "* Constraint calls: 3756\n", - "* Final cost: 531.7451775567271\n" + "* Cost function calls: 3896\n", + "* Constraint calls: 4082\n", + "* Final cost: 715.5190193022809\n" ] }, { "data": { - "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", + "image/png": "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", "text/plain": [ "
" ] @@ -722,7 +801,7 @@ }, { "data": { - "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", + "image/png": "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", "text/plain": [ "
" ] @@ -746,7 +825,7 @@ "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.suptitle(\"MLE with constraints\")\n", "plt.tight_layout()\n", "\n", "plt.figure()\n", @@ -767,7 +846,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "
" ] @@ -800,7 +879,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "MHE for continuous time systems not implemented\n" + "MHE for continuous-time systems not implemented\n" ] } ], @@ -819,7 +898,7 @@ " )\n", " plot_state_comparison(timepts, est_mhe.states, lqr_resp.states)\n", "except:\n", - " print(\"MHE for continuous time systems not implemented\")" + " print(\"MHE for continuous-time systems not implemented\")" ] }, { @@ -833,18 +912,19 @@ "output_type": "stream", "text": [ "Sample time: Ts=0.1\n", - ": sys[9]\n", + ": sys[7]\n", "Inputs (4): ['F1', 'F2', 'Dx', 'Dy']\n", "Outputs (3): ['x', 'y', 'theta']\n", "States (6): ['x0', 'x1', 'x2', 'x3', 'x4', 'x5']\n", + "dt = 0.1\n", "\n", - "Update: at 0x168af1360>\n", - "Output: at 0x168598940>\n" + "Update: at 0x153eb9da0>\n", + "Output: at 0x1533aa5c0>\n" ] } ], "source": [ - "# Create discrete time version of PVTOL\n", + "# Create discrete-time version of PVTOL\n", "Ts = 0.1\n", "print(f\"Sample time: {Ts=}\")\n", "dsys = ct.NonlinearIOSystem(\n", @@ -863,7 +943,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "
" ] @@ -884,6 +964,8 @@ "# 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.xlabel(\"Time $t$ [s]\")\n", + "plt.ylabel(\"Disturbance, sensor noise\")\n", "plt.legend();" ] }, @@ -909,7 +991,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "
" ] @@ -932,6 +1014,14 @@ "plot_state_comparison(timepts, mhe_resp.states, lqr_resp.states)" ] }, + { + "cell_type": "markdown", + "id": "d94b5d23-e482-440e-b449-4cd905d6269e", + "metadata": {}, + "source": [ + "We see that while the estimates eventually converge to the correct values, the initial estimates for the state trajectory are not close to the actual values. This is in large part due to the fact that we started far from an equilibrium point for the closed loop system. We can see an improved response if we change the control problem to start at the origin and then move to the final point, allowing the MHE estimator to have an initial estimate that is closer to the actual state." + ] + }, { "cell_type": "code", "execution_count": 24, @@ -939,7 +1029,7 @@ "metadata": {}, "outputs": [], "source": [ - "# Resimulate starting at the origin and moving to the \"initial\" condition\n", + "# Resimulate starting at the origin and moving to the original 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", @@ -954,7 +1044,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "
" ] @@ -964,6 +1054,7 @@ } ], "source": [ + "# Create a new optimal estimation problem with a slightly shorter horizon\n", "mhe_timepts = timepts[0:8]\n", "oep = opt.OptimalEstimationProblem(\n", " dsys, mhe_timepts, traj_cost, terminal_cost=init_cost,\n", @@ -978,12 +1069,12 @@ ] }, { - "cell_type": "code", - "execution_count": null, - "id": "4158e922", + "cell_type": "markdown", + "id": "29d5d904-f6bc-463b-8e53-c0b5fbbeeded", "metadata": {}, - "outputs": [], - "source": [] + "source": [ + "We see now that the MHE estimtor is able to quickly converge to values that are close to the actual state and maintain a very good estimate throughout the trajectory." + ] } ], "metadata": { @@ -1002,7 +1093,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.6" + "version": "3.13.1" } }, "nbformat": 4, diff --git a/examples/mrac_siso_lyapunov.py b/examples/mrac_siso_lyapunov.py index 60550a8d9..52dc2610c 100644 --- a/examples/mrac_siso_lyapunov.py +++ b/examples/mrac_siso_lyapunov.py @@ -42,27 +42,27 @@ 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): @@ -72,7 +72,7 @@ def adaptive_controller_output(_t, xc, uc, params): r = uc[0] #xm = uc[1] x = uc[2] - + # Controller state kr = xc[0] kx = xc[1] @@ -112,7 +112,7 @@ def adaptive_controller_output(_t, xc, uc, params): Tend = 100 dt = 0.1 -# Define simulation time +# Define simulation time t_vec = np.arange(0, Tend, dt) # Define control reference input diff --git a/examples/mrac_siso_mit.py b/examples/mrac_siso_mit.py index f901478cb..a821b65d0 100644 --- a/examples/mrac_siso_mit.py +++ b/examples/mrac_siso_mit.py @@ -42,11 +42,10 @@ 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 @@ -59,7 +58,7 @@ def adaptive_controller_state(t, xc, uc, params): # x2 = xc[1] # kr x3 = xc[2] # # x4 = xc[3] # kx - + # Algebraic relationships e = xm - x @@ -78,11 +77,11 @@ def adaptive_controller_output(t, xc, uc, params): r = uc[0] # xm = uc[1] x = uc[2] - + # Controller state kr = xc[1] kx = xc[3] - + # Control law u = kx*x + kr*r @@ -118,7 +117,7 @@ def adaptive_controller_output(t, xc, uc, params): Tend = 100 dt = 0.1 -# Define simulation time +# Define simulation time t_vec = np.arange(0, Tend, dt) # Define control reference input diff --git a/examples/phase_plane_plots.py b/examples/phase_plane_plots.py index b3b2a01c3..44a47a29c 100644 --- a/examples/phase_plane_plots.py +++ b/examples/phase_plane_plots.py @@ -5,9 +5,8 @@ # using the phaseplot module. Most of these figures line up with examples # in FBS2e, with different display options shown as different subplots. -import time import warnings -from math import pi, sqrt +from math import pi import matplotlib.pyplot as plt import numpy as np @@ -15,6 +14,9 @@ import control as ct import control.phaseplot as pp +# Set default plotting parameters to match ControlPlot +plt.rcParams.update(ct.rcParams) + # # Example 1: Dampled oscillator systems # @@ -35,16 +37,18 @@ def damposc_update(t, x, u, params): ct.phase_plane_plot(damposc, [-1, 1, -1, 1], 8, ax=ax1) ax1.set_title("boxgrid [-1, 1, -1, 1], 8") -ct.phase_plane_plot(damposc, [-1, 1, -1, 1], ax=ax2, gridtype='meshgrid') -ax2.set_title("meshgrid [-1, 1, -1, 1]") +ct.phase_plane_plot(damposc, [-1, 1, -1, 1], ax=ax2, plot_streamlines=True, + gridtype='meshgrid') +ax2.set_title("streamlines, meshgrid [-1, 1, -1, 1]") ct.phase_plane_plot( - damposc, [-1, 1, -1, 1], 4, ax=ax3, gridtype='circlegrid', dir='both') -ax3.set_title("circlegrid [0, 0, 1], 4, both") + damposc, [-1, 1, -1, 1], 4, ax=ax3, plot_streamlines=True, + gridtype='circlegrid', dir='both') +ax3.set_title("streamlines, circlegrid [0, 0, 1], 4, both") ct.phase_plane_plot( damposc, [-1, 1, -1, 1], ax=ax4, gridtype='circlegrid', - dir='reverse', gridspec=[0.1, 12], timedata=5) + plot_streamlines=True, dir='reverse', gridspec=[0.1, 12], timedata=5) ax4.set_title("circlegrid [0, 0, 0.1], reverse") # @@ -67,17 +71,19 @@ def invpend_update(t, x, u, params): ax1.set_title("default, 5") ct.phase_plane_plot( - invpend, [-2*pi, 2*pi, -2, 2], gridtype='meshgrid', ax=ax2) -ax2.set_title("meshgrid") + invpend, [-2*pi, 2*pi, -2, 2], gridtype='meshgrid', ax=ax2, + plot_streamlines=True) +ax2.set_title("streamlines, meshgrid") ct.phase_plane_plot( invpend, [-2*pi, 2*pi, -2, 2], 1, gridtype='meshgrid', - gridspec=[12, 9], ax=ax3, arrows=1) -ax3.set_title("denser grid") + gridspec=[12, 9], ax=ax3, arrows=1, plot_streamlines=True) +ax3.set_title("streamlines, denser grid") ct.phase_plane_plot( invpend, [-2*pi, 2*pi, -2, 2], 4, gridspec=[6, 6], - plot_separatrices={'timedata': 20, 'arrows': 4}, ax=ax4) + plot_separatrices={'timedata': 20, 'arrows': 4}, ax=ax4, + plot_streamlines=True) ax4.set_title("custom") # @@ -102,21 +108,22 @@ def oscillator_update(t, x, u, params): try: ct.phase_plane_plot( oscillator, [-1.5, 1.5, -1.5, 1.5], 1, gridtype='meshgrid', - dir='forward', ax=ax2) + dir='forward', ax=ax2, plot_streamlines=True) except RuntimeError as inst: - axs[0,1].text(0, 0, "Runtime Error") + ax2.text(0, 0, "Runtime Error") warnings.warn(inst.__str__()) -ax2.set_title("meshgrid, forward, 0.5") +ax2.set_title("streamlines, meshgrid, forward, 0.5") ax2.set_aspect('equal') -ct.phase_plane_plot(oscillator, [-1.5, 1.5, -1.5, 1.5], ax=ax3) +ct.phase_plane_plot(oscillator, [-1.5, 1.5, -1.5, 1.5], ax=ax3, + plot_streamlines=True) pp.streamlines( oscillator, [-0.5, 0.5, -0.5, 0.5], dir='both', ax=ax3) -ax3.set_title("outer + inner") +ax3.set_title("streamlines, outer + inner") ax3.set_aspect('equal') ct.phase_plane_plot( - oscillator, [-1.5, 1.5, -1.5, 1.5], 0.9, ax=ax4) + oscillator, [-1.5, 1.5, -1.5, 1.5], 0.9, ax=ax4, plot_streamlines=True) pp.streamlines( oscillator, np.array([[0, 0]]), 1.5, gridtype='circlegrid', gridspec=[0.5, 6], dir='both', ax=ax4) @@ -141,8 +148,9 @@ def saddle_update(t, x, u, params): ax1.set_title("default") ct.phase_plane_plot( - saddle, [-1, 1, -1, 1], 0.5, gridtype='meshgrid', ax=ax2) -ax2.set_title("meshgrid") + saddle, [-1, 1, -1, 1], 0.5, plot_streamlines=True, gridtype='meshgrid', + ax=ax2) +ax2.set_title("streamlines, meshgrid") ct.phase_plane_plot( saddle, [-1, 1, -1, 1], gridspec=[16, 12], ax=ax3, @@ -150,9 +158,9 @@ def saddle_update(t, x, u, params): ax3.set_title("vectorfield") ct.phase_plane_plot( - saddle, [-1, 1, -1, 1], 0.3, + saddle, [-1, 1, -1, 1], 0.3, plot_streamlines=True, gridtype='meshgrid', gridspec=[5, 7], ax=ax4) -ax3.set_title("custom") +ax4.set_title("custom") # # Example 5: Internet congestion control @@ -172,6 +180,7 @@ def _congctrl_update(t, x, u, params): return np.append( c / x[M] - (rho * c) * (1 + (x[:-1]**2) / 2), N/M * np.sum(x[:-1]) * c / x[M] - c) + congctrl = ct.nlsys( _congctrl_update, states=2, inputs=0, params={'N': 60, 'rho': 2e-4, 'c': 10}) @@ -203,7 +212,7 @@ def _congctrl_update(t, x, u, params): ax3.set_title("vector field") ct.phase_plane_plot( - congctrl, [2, 6, 200, 300], 100, + congctrl, [2, 6, 200, 300], 100, plot_streamlines=True, params={'rho': 4e-4, 'c': 20}, ax=ax4, plot_vectorfield={'gridspec': [12, 9]}) ax4.set_title("vector field + streamlines") diff --git a/examples/plot_gallery.py b/examples/plot_gallery.py new file mode 100644 index 000000000..d7876d78f --- /dev/null +++ b/examples/plot_gallery.py @@ -0,0 +1,162 @@ +# plot_gallery.py - different types of plots for comparing versions +# RMM, 19 Jun 2024 +# +# This file collects together some of the more interesting plots that can +# be generated by python-control and puts them into a PDF file that can be +# used to compare what things look like between different versions of the +# library. It is mainly intended for uses by developers to make sure there +# are no unexpected changes in plot formats, but also has some interest +# examples of things you can plot. + +import os +import sys +from math import pi + +import matplotlib.pyplot as plt +import numpy as np + +import control as ct + +# Don't save figures if we are running CI tests +savefigs = 'PYCONTROL_TEST_EXAMPLES' not in os.environ +if savefigs: + # Create a pdf file for storing the results + import subprocess + from matplotlib.backends.backend_pdf import PdfPages + from datetime import date + git_info = subprocess.check_output(['git', 'describe'], text=True).strip() + pdf = PdfPages( + f'plot_gallery-{git_info}-{date.today().isoformat()}.pdf') + +# Context manager to handle plotting +class create_figure(object): + def __init__(self, name): + self.name = name + def __enter__(self): + self.fig = plt.figure() + print(f"Generating {self.name} as Figure {self.fig.number}") + return self.fig + def __exit__(self, type, value, traceback): + if type is not None: + print(f"Exception: {type=}, {value=}, {traceback=}") + if savefigs: + pdf.savefig() + if hasattr(sys, 'ps1'): + # Show the figures on the screen + plt.show(block=False) + else: + plt.close() + +# Define systems to use throughout +sys1 = ct.tf([1], [1, 2, 1], name='sys1') +sys2 = ct.tf([1, 0.2], [1, 1, 3, 1, 1], name='sys2') +sys_mimo1 = ct.tf2ss( + [[[1], [0.1]], [[0.2], [1]]], + [[[1, 0.6, 1], [1, 1, 1]], [[1, 0.4, 1], [1, 2, 1]]], name="sys_mimo1") +sys_mimo2 = ct.tf2ss( + [[[1], [0.1]], [[0.2], [1]]], + [[[1, 0.2, 1], [1, 24, 22, 5]], [[1, 4, 16, 21], [1, 0.1]]], + name="sys_mimo2") +sys_frd = ct.frd( + [[np.array([10 + 0j, 5 - 5j, 1 - 1j, 0.5 - 1j, -.1j]), + np.array([1j, 0.5 - 0.5j, -0.5, 0.1 - 0.1j, -.05j]) * 0.1], + [np.array([10 + 0j, -20j, -10, 2j, 1]), + np.array([10 + 0j, 5 - 5j, 1 - 1j, 0.5 - 1j, -.1j]) * 0.01]], + np.logspace(-2, 2, 5)) +sys_frd.name = 'frd' # For backward compatibility + +# Close all existing figures +plt.close('all') + +# bode +with create_figure("Bode plot"): + try: + ct.bode_plot([sys_mimo1, sys_mimo2]) + except AttributeError: + print(" - falling back to earlier method") + plt.clf() + ct.bode_plot(sys_mimo1) + ct.bode_plot(sys_mimo2) + +# describing function +with create_figure("Describing function plot"): + H = ct.tf([1], [1, 2, 2, 1]) * 8 + F = ct.descfcn.saturation_nonlinearity(1) + amp = np.linspace(1, 4, 10) + ct.describing_function_response(H, F, amp).plot() + +# nichols +with create_figure("Nichols chart"): + response = ct.frequency_response([sys1, sys2]) + ct.nichols_plot(response) + +# nyquist +with create_figure("Nyquist plot"): + ct.nyquist_plot([sys1, sys2]) + +# phase plane +with create_figure("Phase plane plot"): + def invpend_update(t, x, u, params): + m, l, b, g = params['m'], params['l'], params['b'], params['g'] + return [x[1], -b/m * x[1] + (g * l / m) * np.sin(x[0]) + u[0]/m] + invpend = ct.nlsys(invpend_update, states=2, inputs=1, name='invpend') + ct.phase_plane_plot( + invpend, [-2*pi, 2*pi, -2, 2], 5, + plot_separatrices={'gridspec': [12, 9]}, + params={'m': 1, 'l': 1, 'b': 0.2, 'g': 1}) + +# pole zero map +with create_figure("Pole/zero map"): + T = ct.tf( + [-9.0250000e-01, -4.7200750e+01, -8.6812900e+02, + +5.6261850e+03, +2.1258472e+05, +8.4724600e+05, + +1.0192000e+06, +2.3520000e+05], + [9.02500000e-03, 9.92862812e-01, 4.96974094e+01, + 1.35705659e+03, 2.09294163e+04, 1.64898435e+05, + 6.54572220e+05, 1.25274600e+06, 1.02420000e+06, + 2.35200000e+05], name='T') + ct.pole_zero_plot([T, sys2]) + +# root locus +with create_figure("Root locus plot") as fig: + ax_array = ct.pole_zero_subplots(2, 1, grid=[True, False]) + ax1, ax2 = ax_array[:, 0] + sys1 = ct.tf([1, 2], [1, 2, 3], name='sys1') + sys2 = ct.tf([1, 0.2], [1, 1, 3, 1, 1], name='sys2') + ct.root_locus_plot([sys1, sys2], ax=ax1) + ct.root_locus_plot([sys1, sys2], ax=ax2) + plt.suptitle("Root locus plots (w/ specified axes)", fontsize='medium') + +# sisotool +with create_figure("sisotool"): + s = ct.tf('s') + H = (s+0.3)/(s**4 + 4*s**3 + 6.25*s**2) + ct.sisotool(H) + +# step response +with create_figure("step response") as fig: + try: + ct.step_response([sys_mimo1, sys_mimo2]).plot() + except ValueError: + print(" - falling back to earlier method") + fig.clf() + ct.step_response(sys_mimo1).plot() + ct.step_response(sys_mimo2).plot() + +# time response +with create_figure("time response"): + timepts = np.linspace(0, 10) + + U = np.vstack([np.sin(timepts), np.cos(2*timepts)]) + resp1 = ct.input_output_response(sys_mimo1, timepts, U) + + U = np.vstack([np.cos(2*timepts), np.sin(timepts)]) + resp2 = ct.input_output_response(sys_mimo1, timepts, U) + + resp = ct.combine_time_responses( + [resp1, resp2], trace_labels=["resp1", "resp2"]) + resp.plot(transpose=True) + +# Show the figures if running in interactive mode +if savefigs: + pdf.close() diff --git a/examples/pvtol-nested-ss.py b/examples/pvtol-nested-ss.py index f53ac70f1..e8542a828 100644 --- a/examples/pvtol-nested-ss.py +++ b/examples/pvtol-nested-ss.py @@ -10,7 +10,6 @@ import os 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 @@ -23,12 +22,12 @@ c = 0.05 # damping factor (estimated) # Transfer functions for dynamics -Pi = tf([r], [J, 0, 0]) # inner loop (roll) -Po = tf([1], [m, c, 0]) # outer loop (position) +Pi = ct.tf([r], [J, 0, 0]) # inner loop (roll) +Po = ct.tf([1], [m, c, 0]) # outer loop (position) # Use state space versions -Pi = tf2ss(Pi) -Po = tf2ss(Po) +Pi = ct.tf2ss(Pi) +Po = ct.tf2ss(Po) # # Inner loop control design @@ -40,10 +39,10 @@ # Design a simple lead controller for the system k, a, b = 200, 2, 50 -Ci = k*tf([1, a], [1, b]) # lead compensator +Ci = k*ct.tf([1, a], [1, b]) # lead compensator # Convert to statespace -Ci = tf2ss(Ci) +Ci = ct.tf2ss(Ci) # Compute the loop transfer function for the inner loop Li = Pi*Ci @@ -51,49 +50,49 @@ # Bode plot for the open loop process plt.figure(1) -bode(Pi) +ct.bode(Pi) # Bode plot for the loop transfer function, with margins plt.figure(2) -bode(Li) +ct.bode(Li) # Compute out the gain and phase margins #! Not implemented # (gm, pm, wcg, wcp) = margin(Li); # Compute the sensitivity and complementary sensitivity functions -Si = feedback(1, Li) +Si = ct.feedback(1, Li) Ti = Li*Si # Check to make sure that the specification is met plt.figure(3) -gangof4(Pi, Ci) +ct.gangof4(Pi, Ci) # Compute out the actual transfer function from u1 to v1 (see L8.2 notes) # Hi = Ci*(1-m*g*Pi)/(1+Ci*Pi); -Hi = parallel(feedback(Ci, Pi), -m*g*feedback(Ci*Pi, 1)) +Hi = ct.parallel(ct.feedback(Ci, Pi), -m*g*ct.feedback(Ci*Pi, 1)) plt.figure(4) plt.clf() -bode(Hi) +ct.bode(Hi) # Now design the lateral control system a, b, K = 0.02, 5, 2 -Co = -K*tf([1, 0.3], [1, 10]) # another lead compensator +Co = -K*ct.tf([1, 0.3], [1, 10]) # another lead compensator # Convert to statespace -Co = tf2ss(Co) +Co = ct.tf2ss(Co) # Compute the loop transfer function for the outer loop Lo = -m*g*Po*Co plt.figure(5) -bode(Lo, display_margins=True) # margin(Lo) +ct.bode(Lo, display_margins=True) # margin(Lo) # Finally compute the real outer-loop loop gain + responses L = Co*Hi*Po -S = feedback(1, L) -T = feedback(L, 1) +S = ct.feedback(1, L) +T = ct.feedback(L, 1) # Compute stability margins #! Not yet implemented @@ -101,7 +100,7 @@ plt.figure(6) plt.clf() -out = ct.bode(L, logspace(-4, 3), initial_phase=-math.pi/2) +out = ct.bode(L, np.logspace(-4, 3), initial_phase=-math.pi/2) axs = ct.get_plot_axes(out) # Add crossover line to magnitude plot @@ -111,7 +110,7 @@ # Nyquist plot for complete design # plt.figure(7) -nyquist(L) +ct.nyquist(L) # set up the color color = 'b' @@ -126,10 +125,10 @@ # 'EdgeColor', color, 'FaceColor', color); plt.figure(9) -Yvec, Tvec = step(T, linspace(1, 20)) +Yvec, Tvec = ct.step_response(T, np.linspace(1, 20)) plt.plot(Tvec.T, Yvec.T) -Yvec, Tvec = step(Co*S, linspace(1, 20)) +Yvec, Tvec = ct.step_response(Co*S, np.linspace(1, 20)) plt.plot(Tvec.T, Yvec.T) #TODO: PZmap for statespace systems has not yet been implemented. @@ -142,7 +141,7 @@ # Gang of Four plt.figure(11) plt.clf() -gangof4(Hi*Po, Co, linspace(-2, 3)) +ct.gangof4(Hi*Po, Co, np.linspace(-2, 3)) if 'PYCONTROL_TEST_EXAMPLES' not in os.environ: plt.show() diff --git a/examples/pvtol-nested.py b/examples/pvtol-nested.py index 040b4a1f4..eeb46d075 100644 --- a/examples/pvtol-nested.py +++ b/examples/pvtol-nested.py @@ -61,8 +61,6 @@ Hi = ct.parallel(ct.feedback(Ci, Pi), -m * g *ct.feedback(Ci * Pi, 1)) plt.figure(4) -plt.clf() -plt.subplot(221) ct.bode_plot(Hi) # Now design the lateral control system @@ -129,7 +127,7 @@ # plt.figure(7) plt.clf() -ct.nyquist_plot(L, (0.0001, 1000)) +ct.nyquist_plot(L) # Add a box in the region we are going to expand plt.plot([-2, -2, 1, 1, -2], [-4, 4, 4, -4, -4], 'r-') diff --git a/examples/pvtol-outputfbk.ipynb b/examples/pvtol-outputfbk.ipynb index 7d8bc8529..bc999c140 100644 --- a/examples/pvtol-outputfbk.ipynb +++ b/examples/pvtol-outputfbk.ipynb @@ -13,7 +13,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 1, "id": "544525ab", "metadata": {}, "outputs": [], @@ -30,7 +30,7 @@ "metadata": {}, "source": [ "## System definition\n", - "We consider a (planar) vertical takeoff and landing aircraf model:\n", + "We consider a (planar) vertical takeoff and landing aircraft model:\n", "\n", "![PVTOL diagram](https://murray.cds.caltech.edu/images/murray.cds/7/7d/Pvtol-diagram.png)\n", "\n", @@ -63,7 +63,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 2, "id": "ffafed74", "metadata": {}, "outputs": [ @@ -71,15 +71,25 @@ "name": "stdout", "output_type": "stream", "text": [ - "Object: 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", + ": 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", + "Parameters: ['m', 'J', 'r', 'g', 'c']\n", "\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" + "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" ] } ], @@ -117,7 +127,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 3, "id": "1e1ee7c9", "metadata": {}, "outputs": [], @@ -143,7 +153,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 4, "id": "3647bf15", "metadata": {}, "outputs": [ @@ -151,10 +161,13 @@ "name": "stdout", "output_type": "stream", "text": [ - "Object: sys[3]\n", - "Inputs (5): x0, x1, x2, 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" + ": sys[1]\n", + "Inputs (5): ['x0', 'x1', 'x2', '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: at 0x13771f7e0>\n" ] } ], @@ -209,7 +222,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 5, "id": "9787db61", "metadata": {}, "outputs": [ @@ -217,10 +230,10 @@ "name": "stdout", "output_type": "stream", "text": [ - "Object: control\n", - "Inputs (14): xd[0], xd[1], xd[2], xd[3], xd[4], xd[5], ud[0], ud[1], xh0, xh1, xh2, xh3, xh4, xh5, \n", - "Outputs (2): F1, F2, \n", - "States (0): \n", + ": sys[2]\n", + "Inputs (14): ['xd[0]', 'xd[1]', 'xd[2]', 'xd[3]', 'xd[4]', 'xd[5]', 'ud[0]', 'ud[1]', 'xh0', 'xh1', 'xh2', 'xh3', 'xh4', 'xh5']\n", + "Outputs (2): ['F1', 'F2']\n", + "States (0): []\n", "\n", "A = []\n", "\n", @@ -228,20 +241,72 @@ "\n", "C = []\n", "\n", - "D = [[-3.16227766e+00 -1.31948924e-07 8.67680175e+00 -2.35855555e+00\n", - " -6.98881806e-08 1.91220852e+00 1.00000000e+00 0.00000000e+00\n", - " 3.16227766e+00 1.31948924e-07 -8.67680175e+00 2.35855555e+00\n", - " 6.98881806e-08 -1.91220852e+00]\n", - " [-1.31948923e-06 3.16227766e+00 -2.32324805e-07 -2.36396241e-06\n", - " 4.97998224e+00 7.90913288e-08 0.00000000e+00 1.00000000e+00\n", - " 1.31948923e-06 -3.16227766e+00 2.32324805e-07 2.36396241e-06\n", - " -4.97998224e+00 -7.90913288e-08]]\n", - " \n", + "D = [[-3.16227766e+00 -1.31948922e-07 8.67680175e+00 -2.35855555e+00\n", + " -6.98881821e-08 1.91220852e+00 1.00000000e+00 0.00000000e+00\n", + " 3.16227766e+00 1.31948922e-07 -8.67680175e+00 2.35855555e+00\n", + " 6.98881821e-08 -1.91220852e+00]\n", + " [-1.31948921e-06 3.16227766e+00 -2.32324826e-07 -2.36396240e-06\n", + " 4.97998224e+00 7.90913276e-08 0.00000000e+00 1.00000000e+00\n", + " 1.31948921e-06 -3.16227766e+00 2.32324826e-07 2.36396240e-06\n", + " -4.97998224e+00 -7.90913276e-08]] \n", + "\n", + ": sys[3]\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): ['pvtol_noisy_x0', 'pvtol_noisy_x1', 'pvtol_noisy_x2', 'pvtol_noisy_x3', 'pvtol_noisy_x4', 'pvtol_noisy_x5', 'sys[1]_x[0]', 'sys[1]_x[1]', 'sys[1]_x[2]', 'sys[1]_x[3]', 'sys[1]_x[4]', 'sys[1]_x[5]', 'sys[1]_x[6]', 'sys[1]_x[7]', 'sys[1]_x[8]', 'sys[1]_x[9]', 'sys[1]_x[10]', 'sys[1]_x[11]', 'sys[1]_x[12]', 'sys[1]_x[13]', 'sys[1]_x[14]', 'sys[1]_x[15]', 'sys[1]_x[16]', 'sys[1]_x[17]', 'sys[1]_x[18]', 'sys[1]_x[19]', 'sys[1]_x[20]', 'sys[1]_x[21]', 'sys[1]_x[22]', 'sys[1]_x[23]', 'sys[1]_x[24]', 'sys[1]_x[25]', 'sys[1]_x[26]', 'sys[1]_x[27]', 'sys[1]_x[28]', 'sys[1]_x[29]', 'sys[1]_x[30]', 'sys[1]_x[31]', 'sys[1]_x[32]', 'sys[1]_x[33]', 'sys[1]_x[34]', 'sys[1]_x[35]', 'sys[1]_x[36]', 'sys[1]_x[37]', 'sys[1]_x[38]', 'sys[1]_x[39]', 'sys[1]_x[40]', 'sys[1]_x[41]']\n", + "\n", + "Subsystems (3):\n", + " * ['x0', 'x1', 'x2', 'x3', 'x4', 'x5']>\n", + " * ['F1',\n", + " 'F2']>\n", + " * ['xh0', 'xh1',\n", + " 'xh2', 'xh3', 'xh4', 'xh5']>\n", + "\n", + "Connections:\n", + " * pvtol_noisy.F1 <- sys[2].F1\n", + " * pvtol_noisy.F2 <- sys[2].F2\n", + " * pvtol_noisy.Dx <- Dx\n", + " * pvtol_noisy.Dy <- Dy\n", + " * pvtol_noisy.Nx <- Nx\n", + " * pvtol_noisy.Ny <- Ny\n", + " * pvtol_noisy.Nth <- Nth\n", + " * sys[2].xd[0] <- xd[0]\n", + " * sys[2].xd[1] <- xd[1]\n", + " * sys[2].xd[2] <- xd[2]\n", + " * sys[2].xd[3] <- xd[3]\n", + " * sys[2].xd[4] <- xd[4]\n", + " * sys[2].xd[5] <- xd[5]\n", + " * sys[2].ud[0] <- ud[0]\n", + " * sys[2].ud[1] <- ud[1]\n", + " * sys[2].xh0 <- sys[1].xh0\n", + " * sys[2].xh1 <- sys[1].xh1\n", + " * sys[2].xh2 <- sys[1].xh2\n", + " * sys[2].xh3 <- sys[1].xh3\n", + " * sys[2].xh4 <- sys[1].xh4\n", + " * sys[2].xh5 <- sys[1].xh5\n", + " * sys[1].x0 <- pvtol_noisy.x0\n", + " * sys[1].x1 <- pvtol_noisy.x1\n", + " * sys[1].x2 <- pvtol_noisy.x2\n", + " * sys[1].F1 <- sys[2].F1\n", + " * sys[1].F2 <- sys[2].F2\n", "\n", - "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): 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" + "Outputs:\n", + " * x0 <- pvtol_noisy.x0\n", + " * x1 <- pvtol_noisy.x1\n", + " * x2 <- pvtol_noisy.x2\n", + " * x3 <- pvtol_noisy.x3\n", + " * x4 <- pvtol_noisy.x4\n", + " * x5 <- pvtol_noisy.x5\n", + " * F1 <- sys[2].F1\n", + " * F2 <- sys[2].F2\n", + " * xh0 <- sys[1].xh0\n", + " * xh1 <- sys[1].xh1\n", + " * xh2 <- sys[1].xh2\n", + " * xh3 <- sys[1].xh3\n", + " * xh4 <- sys[1].xh4\n", + " * xh5 <- sys[1].xh5\n" ] } ], @@ -292,20 +357,18 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 6, "id": "c2583a0e", "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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8cQTePLJJ/Hiiy/mumqVmr1796Jbt24YM2YM9/wTTzyBZ555BmPGjMGsWbPQrFkzHH/88an93jxHrWYcccQR6nXXXac51rlzZ/Xuu+/OUY2qB1u2bFEBqFOmTMl1Vaocu3fvVjt27KiOHz9e7devn3rLLbfkukpVjrvuukvt06dPrqtR5Tn55JPVK6+8UnPsrLPOUi+++OIc1ajqAUD94osvUr/j8bjarFkz9bHHHksdKysrU4uKitRXX301K3WqVhqR8vJyzJkzB4MGDdIcHzRoEKZPn56jWlUPiouLAQANGjTIcU2qHjfeeCNOPvlkDBw4MNdVqbJ8/fXX6NmzJ84991w0adIE3bt3x+uvv57ralU5+vTpgwkTJmDp0qUAgAULFuDXX3/Ff/7znxzXrOqycuVKbNq0STMuhkIh9OvXL2vjYl5veuc227ZtQywWQ9OmTTXHmzZtik2bNuWoVlUfVVUxfPhw9OnTB127ds11daoUH3/8MebOnYtZs2bluipVmhUrVuCVV17B8OHDcc8992DmzJm4+eabEQqFcOmll+a6elWGu+66C8XFxejcuTP8fj9isRgeeeQRXHDBBbmuWpUlOfbxxsXVq1dnpQ7VShBJoiiK5reqqoZjhHsMHToUf/75J3799ddcV6VKsXbtWtxyyy34+eefUVhYmOvqVGni8Th69uyJRx99FADQvXt3LFq0CK+88goJIi7yySef4P3338eHH36ILl26YP78+Rg2bBhatGiByy67LNfVq9LkclysVoJIo0aN4Pf7DdqPLVu2GKRBwh1uuukmfP3115g6dSpatmyZ6+pUKebMmYMtW7agR48eqWOxWAxTp07FmDFjEA6H4ff7c1jDqkPz5s1x0EEHaY4deOCB+Pzzz3NUo6rJHXfcgbvvvhuDBw8GABx88MFYvXo1Ro8eTYKIRzRr1gxAQjPSvHnz1PFsjovVykekoKAAPXr0wPjx4zXHx48fj969e+eoVlUTVVUxdOhQjBs3DhMnTkS7du1yXaUqx3HHHYeFCxdi/vz5qX89e/bERRddhPnz55MQ4iJHH320Yfn50qVL0aZNmxzVqGqyb98++HzaYcnv99PyXQ9p164dmjVrphkXy8vLMWXKlKyNi9VKIwIAw4cPxyWXXIKePXuiV69eGDt2LNasWYPrrrsu11WrUtx444348MMP8dVXX6FOnTopLVRRURFq1KiR49pVDerUqWPwualVqxYaNmxIvjguc+utt6J379549NFHcd5552HmzJkYO3Ysxo4dm+uqVSlOPfVUPPLII2jdujW6dOmCefPm4ZlnnsGVV16Z66pVavbs2YPly5enfq9cuRLz589HgwYN0Lp1awwbNgyPPvooOnbsiI4dO+LRRx9FzZo1ceGFF2angllZm5NnvPTSS2qbNm3UgoIC9bDDDqMlpR4AgPvv7bffznXVqjS0fNc7vvnmG7Vr165qKBRSO3furI4dOzbXVapylJSUqLfccovaunVrtbCwUG3fvr167733quFwONdVq9RMmjSJ2x9fdtllqqomlvDef//9arNmzdRQKKQec8wx6sKFC7NWP0VVVTU7Ig9BEARBEISWauUjQhAEQRBEfkGCCEEQBEEQOYMEEYIgCIIgcgYJIgRBEARB5AwSRAiCIAiCyBkkiBAEQRAEkTNIECEIgiAIImeQIEIQBEEQRM4gQYQgCIIgiJxBgghBEARBEDmDBBGCIAiCIHIGCSIEQRAEQeSM/wfylua4XzYrPAAAAABJRU5ErkJggg==", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -333,20 +396,18 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 7, "id": "ad7a9750", "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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iKj3mjw4CACw6+wVkSMhIiIiot7KZRJvhUKB+Ph4pKWlWWxPS0vDpEmT2jxu48aNWLRoET7//HPMmjXL0WESkYu5blgwZFIJjudrkF1SLXY4RERERNQLuUziDQApKSn417/+hfXr1+PUqVN47LHHkJOTg+TkZADGYeILFy40779x40YsXLgQ//znPzFx4kQUFhaisLAQajXnchKRUZC30lz1/i4zX+RoiIiIiKg3cqnEe968eVi9ejVWrlyJMWPGYOfOndi6dSuio6MBAAUFBRZrer/33nvQ6XR46KGHEBYWZr49+uijYj0FInJCt40NBwB8nZEHvcFlVlgkIiIiIhfhUut4i4HreBP1fnUNekxM/RkVNQ1YtyAeSSP7iR0SERERETmxXruONxGRo7i7yTDvauPSgR/uvShuMERERETU6zDxJiICsGBiNORSCfaeL0XGpXKxwyEiIiKiXoSJNxERgAh/T/x+XAQA4I2fz4ocDRERERH1Jky8iYgaPXT9YMilEuw8cwX7zpeKHQ4RERER9RJMvImIGkUFeuKP46MAACu+PwGd3iByRERERETUGzDxJiJqJmXGUPh5uuG3wkp8uv+S2OEQERERUS/AxJuIqBl/LwX+mjQMAPDKT6eRW1YjckRERERE5OqYeBMRtXDn+CiMHxCAmno9nvzmKAwGQeyQiIiIiMiFMfEmImpBKpXgldtHwd1Nir3nS/HZwRyxQyIiIiIiF8bEm4jIigFBXnjypuEAgBf/exJniipFjoiIiIiIXBUTbyKiNtyTOABThgShrsGAhz47jJp6ndghEREREZELYuJNRNQGqVSC1+eNQYiPEmeLq/D3706IHRIRERERuSAm3kRE7QjyVuLNP46FVAJ8cziPS4wRERERUacx8SYi6sDEgYH4643GJcb+seUE9p4rETkiIiIiInIlTLyJiGzw4HWDMHdMOPQGAQ9+dhjZJdVih0RERERELoKJNxGRDSQSCV7+/SiMjfKDurYB9314CMWVdWKHRUREREQugIk3EZGN3N1keG9BPPr7eSC7pBp3/+sAyqrrxQ6LiIiIiJwcE28iok4I8XHH5w9MQKivEmeKqnD3vw5AXdMgdlhERERE5MSYeBMRdVJ0oBc+u38igrwVOFmgwZ3/2o+SKq3YYRERERGRk2LiTUTUBYNDvPHp/RMQ6KXAicsa/OHd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Xq9HaGioxfbQ0FAUFhaKFBUREbVHEASkpKTgmmuuQVxcnNjhEHXLsWPHkJiYiLq6Onh7e2Pz5s0YMWKE2GG5FFa8yWU999xzkEgk7d7S09PFDpPIbiQSicV9QRBabSMiIufw8MMP4+jRo9i4caPYoRB127Bhw5CVlYX9+/fjwQcfxD333IOTJ0+KHZZLYcWbXNbDDz+M+fPnt7vPgAEDeiYYIgcKCgqCTCZrVd0uLi5uVQUnIiLxPfLII9iyZQt27tyJiIgIscMh6jaFQoHBgwcDABISEnDo0CG88cYbeO+990SOzHUw8SaXFRQUhKCgILHDIHI4hUKB+Ph4pKWl4bbbbjNvT0tLw5w5c0SMjIiImhMEAY888gg2b96M7du3IyYmRuyQiBxCEARotVqxw3ApTLypT8jJyUFZWRlycnKg1+uRlZUFABg8eDC8vb3FDY7IBikpKViwYAESEhKQmJiIdevWIScnB8nJyWKHRtRlVVVVOHfunPl+dnY2srKyEBAQgKioKBEjI+qahx56CJ9//jn+/e9/w8fHxzxSSaVSwcPDQ+ToiLrm6aefxsyZMxEZGYnKykp88cUX2L59O3788UexQ3MpXE6M+oRFixbho48+arX9119/xdSpU3s+IKIuWLNmDV555RUUFBQgLi4Or7/+OpenIZe2fft2XH/99a2233PPPfjwww97PiCibmqr78aGDRuwaNGing2GyE4WL16Mn3/+GQUFBVCpVBg1ahSefPJJzJgxQ+zQXAoTbyIiIiIiIiIHYldzIiIiIiIiIgdi4k1ERERERETkQEy8iYiIiIiIiByIiTcRERERERGRAzHxJiIiIiIiInIgJt5EREREREREDsTEm4iIiIiIiMiBmHgTERERERERORATbyIiImrl4sWLkEgkkEgkGDNmTLfPZzqXn59ft89FRETkaph4ExERUZv+97//4eeff+72eQoKCrB69eruB0REROSCmHgTERFRmwIDAxEYGNjt8/Tr1w8qlcoOEREREbkeJt5ERES93JUrV9CvXz+89NJL5m0HDhyAQqHAtm3bOnWuRYsWYe7cuXjppZcQGhoKPz8/rFixAjqdDo8//jgCAgIQERGB9evX2/tpEBERuSy52AEQERGRYwUHB2P9+vWYO3cukpKSMHz4cNx9991YsmQJkpKSOn2+X375BREREdi5cyf2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", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -368,30 +429,42 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 8, "id": "c5f24119", "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "<>:16: SyntaxWarning: invalid escape sequence '\\h'\n", + "<>:16: SyntaxWarning: invalid escape sequence '\\h'\n", + "<>:16: SyntaxWarning: invalid escape sequence '\\h'\n", + "<>:16: SyntaxWarning: invalid escape sequence '\\h'\n", + "/var/folders/3h/8vlrqzts6wnd_p5xvy01zclc0000gn/T/ipykernel_62492/1696903767.py:16: SyntaxWarning: invalid escape sequence '\\h'\n", + " [h1, h2, h3, h4], ['$x$', '$y$', '$\\hat{x}$', '$\\hat{y}$'],\n", + "/var/folders/3h/8vlrqzts6wnd_p5xvy01zclc0000gn/T/ipykernel_62492/1696903767.py:16: SyntaxWarning: invalid escape sequence '\\h'\n", + " [h1, h2, h3, h4], ['$x$', '$y$', '$\\hat{x}$', '$\\hat{y}$'],\n" + ] + }, { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 18, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -427,20 +500,26 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 9, "id": "3b6a1f1c", "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/murray/Library/CloudStorage/Dropbox/macosx/src/python-control/murrayrm/control/statefbk.py:788: UserWarning: cannot verify system output is system state\n", + " warnings.warn(\"cannot verify system output is system state\")\n" + ] + }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY4AAAEKCAYAAAAFJbKyAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAA08UlEQVR4nO3deZyNdf/H8dcHo4RISJFQ1iyDGWvckV1RqpsUSt1yl1K/+1bRrX3fF+4kt9SdsoQokqVEQsZSwm3Jvu9rGDPz/f3xOceMMWPmzJzlmpnP8/E4j5lzXdc553tOJ+/57uKcwxhjjMmsfJEugDHGmJzFgsMYY0xALDiMMcYExILDGGNMQCw4jDHGBMSCwxhjTEAKRLoA4VCyZElXoUKFSBfDGGNyjCVLluxzzpVK61yeCI4KFSoQFxcX6WIYY0yOISKb0ztnTVXGGGMCYsFhjDEmIBYcxhhjAmLBYYwxJiAWHMYYYwJiwWGMMSYgFhzGGGMCYsERQfnz5yc6OvrM7ZVXXjnv9S+99FJQX79IkSIBXf/MM8/wxhtvnPf4yZMnad26Nc8++yxw7nvctGlTtsttjImsPDEB0KsKFSrE8uXLM339Sy+9xKBBg0JXoGyKj4/n1ltvpX79+jz99NNA4O/RGON9VuPwmMOHD1O1alXWrFkDwB133MFHH33EE088wYkTJ4iOjubOO+8E4LPPPqNBgwZER0dz//33k5iYCGhN4sknn6ROnTo0atSI3bt3A7Bx40YaN25MbGwsgwcPPut1X3/9dWJjY6ldu/aZf/QBXnzxRapWrUqrVq3OlCktCQkJdOvWjcqVK2dYczLG5GyeqnGIyEjgRmCPc65mGucFeBfoAPwJ3O2cW5rd133kEQj2H8XR0fDOO+e/xh8EfgMHDqRr164MGTKEu+++m/79+3Pw4EH+9re/ATBkyJAzf72vXr2asWPHMn/+fKKionjggQcYPXo0PXv25Pjx4zRq1IgXX3yRxx57jI8++oh//etf9O/fn7///e/07NmToUOHnnndGTNmsG7dOn755Recc3Tq1Im5c+dSuHBhxowZw7Jly0hISKBevXrUr18/zffy2muv0apVK95J9aZTvseKFSsyadKkAD5FY4wXeSo4gFHAEODTdM63Byr7bg2BD3w/c6T0mnFat27N+PHjefDBB/n111/TfOzs2bNZsmQJsbGxgP4DXbp0aQAKFizIjTfeCED9+vWZOXMmAPPnz2fChAkA9OjRg8cffxzQ4JgxYwZ169YF4NixY6xbt46jR49yyy23cNFFFwHQqVOndN/Lddddx4IFC1i7di1VqlTJ8D0aY3IuTwWHc26uiFQ4zyWdgU+dcw5YKCLFReRy59zO7LxuRjWDcEtKSmL16tUUKlSIAwcOUK5cuXOucc7Rq1cvXn755XPORUVFoZUz7ZxOSEg4c85/PPVzDRw4kPvvv/+s4++8806a16elefPm9OrVi/bt2zNv3jyuuOKKTD3OGBN8p4+dYulrs2j4XMeQPH9O6+MoC2xNcX+b79g5RKSPiMSJSNzevXvDUrhgefvtt6levTpffPEFvXv35vTp04AGgv/3G264gS+//JI9e/YAcODAATZvTncxSwCaNm3KmDFjABg9evSZ423btmXkyJEcO3YMgO3bt7Nnzx6aN2/OpEmTOHHiBEePHuXrr78+7/PfeuutDBgwgHbt2nHo0KEsvXdjTPbNv+vfNHz+Rv7X+7WQPH9OC460/vx1aV3onBvunItxzsWUKpXmkvIR52//99+eeOIJ1q5dy4gRI3jzzTdp1qwZzZs354UXXgCgT58+1K5dmzvvvJMaNWrwwgsv0KZNG2rXrk3r1q3ZufP8Fa93332XoUOHEhsby+HDh88cb9OmDd27d6dx48bUqlWL2267jaNHj1KvXj26du1KdHQ0t956K82aNcvwPfXt25cuXbrQqVMnTp48mb0PyBiTJTU/6McS6nHphA9D8vyirT7e4Wuq+iadzvEPgTnOuS9899cA12fUVBUTE+NsPw5jTF5w6BCMbPIR/Vf3Zf/N91F6UtbCQ0SWOOdi0jqX02ocU4CeohoBh7Pbv2GMMbmBczDt493MKXsn/7e6D7uubUXp0W+H5LU81TkuIl8A1wMlRWQb8DQQBeCcGwZMQ4firkeH494TmZIaY4w3JCbC1xPi2fjYB/Te/BSFOMG2vz1LuQ+ehPz5Q/KangoO59wdGZx3wINhKo4xxnjWjh3w2SeJ7HpzNP32P8PNbGRbjTYUHvce5a6tGtLX9lRwGGOMSd+JEzB1KowamcRF0yfyjHuKGqzmUMVoEt/5hnI3dYBMDqHPDgsOY4zxsPh4mDULxoyBKZMSaXvsS16Neplr3a+curo6vDKe4l26QL7wdVlbcBhjjMckJsKPP2pYTJgARw/Ec3+h//K/qFcpwzpcparw5Kdc0L17yPoxzienjarKVQJZcnzUqFH069cPSH9587QsX76cadOmBe06Y0xoOAcLFkD//lCuHNxwA3wz+jDvVXiLwyWv5v0T91HmmqLw5ZfIypXQo0dEQgOsxhFR4VjHafny5cTFxdGhQ4egXGeMCR7nYMkSGD8exo6FzZvhggug9/UbeKTee1SeNxJZehSaN4dBI6BNm7D0YWTEahweU6FCBfbt2wdAXFwc119/faYfO378eGrWrEmdOnVo3rw58fHxPPXUU4wdO5bo6GjGjh3LL7/8QpMmTahbty5NmjRhzZo1aV53/PhxevfuTWxsLHXr1mXy5MkhesfG5C3OwaJFMGAAVKoEsbHw1ltQo7pj+qC5HG19C/+ecQ1VZgxFOneGuDhtt2rb1hOhAVbjUBFaVz3YS44/99xzfPfdd5QtW5ZDhw5RsGBBnnvuOeLi4hgyZAgAR44cYe7cuRQoUIBZs2YxaNAgJkyYcM51gwYNomXLlowcOZJDhw7RoEEDWrVqReHChbNVRmPyoqQkDYvx4+HLL2HrVoiKgtat4ZlB8dyaOI4iH70NLy2FEiVg4EB48EHw6GKhFhwRFOymqqZNm3L33Xfz17/+lS5duqR5zeHDh+nVqxfr1q1DRM4smpjajBkzmDJlyllbwm7ZsoXq1asHrbzG5GZJSfDzzxoUEybAtm1QsKC2Nr3wAnSqu5Xi44bD4I9g926oVg2GDdO+C99WBl5lwQGeWle9QIECJCUlAQS8SOCwYcNYtGgRU6dOJTo6Os1QGjx4MC1atGDSpEls2rQp3aYw5xwTJkygatXQTiQyJjeJj4c5c2DKFJg4EXbu1D6Ldu3g5ZfhphsdxZZ8D0OHQu8pmi4dO2rtok2bsA6pzY6cUco8pEKFCixZsgTgzKZLmfXHH3/QsGFDnnvuOUqWLMnWrVspWrQoR48ePXPN4cOHKVtWV6IfNWrUmeOpr2vbti3vv/8+/kUwly1bltW3ZEyudvAgfP45dO0KJUtqV8TIkdCokR7fswe+GnWIuw68R7FG1aFVK5g7F/75T9iwAb7+WpMlh4QGWHB4ztNPP03//v1p1qwZ+QMcajdgwABq1apFzZo1ad68OXXq1KFFixasWrXqTKf3Y489xsCBA2natOmZPcqBc64bPHgwp0+fpnbt2tSsWfOcPcqNycs2bYJ339Uhs6VLw513av91166aA/v3a43jjmt/4+IB90PZsjrOtnhx+PRTbbd65RWoUCHC7yRrPLeseijYsurGmOxIStJhs1OmwOTJsGKFHq9RAzp1gs6doUEDX6Xh+HEYNw6GD4eFC+HCC6F7d3jgAahfP6LvIxDnW1bd+jiMMSYNJ0/CDz9oUHz9tS4qmC8fXHcdvPmmBsY116R4wK+/alh89hkcOaKd3W++CXffrSOlchELDmOM8dm4Eb79FqZNg++/10UFCxfWLohOnbQf+9JLUzzg2DGduTd8OPzyi/aE33479OmjCeOReRfBZsFhjMmzTp2Cn37SoJg2Df73Pz1eqRLcey906AAtWmhr0xnO6aS8kSNh9Gg4ehSqV9fRmT165LraRVosOIwxecrWrcm1ilmztEuiYEG4/nro2xfat4fKldOoLOzcqc1Qo0bBqlWaJrffDvffD02a5NraRVosOIwxudrp0zB/fnJY/P67Hr/qKujZM7lWkeaiCCdPagfHqFEwfbr2kjduDB9+CH/9q46SyoMsOIwxuYpzsG4dzJgBM2dqB/fRo7rER/Pm2lfdoYP2XadZSfA3RY0aBV98oRM1ypaFxx+HXr3AJsV6KzhEpB3wLpAfGOGceyXV+WLAZ0B5tOxvOOc+DntBjTGesm8fzJ6tQTFzJmzZoscrVdKRsO3bQ8uWULToeZ5kyxYNik8/TW6KuuUWTZobbojYEuZe5JngEJH8wFCgNbANWCwiU5xzq1Jc9iCwyjl3k4iUAtaIyGjnXHwEimyMiZBTp7T5yR8US5dqRaF4cQ2IQYN0AcFKlTJ4ogMHdDGp0aN1NjdoU9Tw4doUVaxYqN9KjuSZ4AAaAOudcxsARGQM0BlIGRwOKCoiAhQBDgAJ4S6oMSa8kpK0b2LWLA2KH3/UobIFCui/888+q0s91a+vx87rxAn45hsNi2nTtBOkWjV4/nmtnmSYNsZLwVEW2Jri/jagYaprhgBTgB1AUaCrcy4pPMUzxoSLc7B2rc6l+P577afYv1/PVasG992nQfGXv2TQ/OSXmKhPMnq0rgVy5Ahcfjn06wd33QV16+apUVHZ5aXgSLObKtX9tsByoCVwNTBTROY5546c82QifYA+AOXLlw9uSY0xQbdp09lBsWOHHr/ySrjxRm2CatFC72eKc7BsmQ6hHTNGh9MWLQq33qqLS7VoYf0WWeSl4NgGpPxKlENrFindA7zidIGt9SKyEagG/JL6yZxzw4HhoGtVhaTExpgs27FDA+KHHzQsNm7U46VLa0j4g+LqqwOsDKxdq2tFjR6tM/qionQY1Z13agIVKhSS95OXeCk4FgOVRaQisB3oBnRPdc0W4AZgnohcBlQFNoS1lMaYLNm+HebN0z7oH35InqVdvLhOvnv0UQ2LGjWy0Gq0YYMu/TFuXPJuns2b65PedluemM0dTp4JDudcgoj0A75Dh+OOdM6tFJG+vvPDgOeBUSKyAm3aetw5ty9ihTbGpMk5WL8+OSjmzdN/2wGKFIFmzXRJj5YtoU6dLLYYbd6sQTFunM67AN0E4623dEZ3uXJBez/mbLasujEm25KSdKnxlEGxa5eeK1lSg6JZM60E1KmTiZFP6dm2TTfuHjtWN/EGiInRjTBuv12ng5ugsGXVjTFBFR+v+1P4g2L+fDh0SM9deaXOl/MHRboztDNrxw7dtHvsWH0hgOho3Yv19tu1E8SElQWHMSZDBw/Czz/rbf58XUH8xAk9V7Wq/vvtD4qg/NG/caMOm50wARYs0GO1aulci7/+FapUCcKLmKyy4DDGnMXfP+EPifnzdQUO0L6IunV1u4lmzXTLicsuC9ILr16tQTFxog6jBX2x55+HLl2019x4ggWHMXncqVO6ZIc/JH7+Gfbs0XPFi+vM7O7doWlTiI1NZxXZrPDPs/DXLPzDrBo3hjfe0HWibBa3J1lwGJPH7Nt3dm0iLk7DA7S7oF07DYkmTfSP/Hz5gvjiSUna9DRxot42bdJqzF/+Ag89BDffDFdcEcQXNKFgwWFMLuYcrFlzdm1izRo9FxWlazv166ch0aQJlCkTgkKcOKEz/Pybd+/apTsntW4NgwfrnqwlS4bghU2oWHAYk4scOQKLF8PChfqH/cKFyWs8XXqphsPdd2uNIiYmhJOo9+2DqVM1LL77Dv78U5f7aNdOaxU33ggXXxyiFzehZsFhTA6VlKS1B39ALFyoK8j6p2ZVr65/zDdtqreqVUO8jt/69RoUkydr9SYpSTdA6tULOnfW6eEXXBDCAphwseAwJoc4eFDnvPlDYtGi5LkTxYvrpOlbb9WfDRuGYVfTpCQdl+sPi9Wr9Xjt2vDkkxoW9erZqrO5kAWHMR6UmAgrV57d5OQfdJQvH9SsqdMZGjXSQUhVqgS5Ezs9R4/qphhTp+qeFrt3J3du9+0LN90EFSuGoSAmkiw4jPGAvXuTaxILF+of8seO6bmSJTUcevTQoIiNzeQeFMGybp0GxdSpuoPS6dPaP9G2rdYqOnSASy4JY4FMpFlwGBNm8fG6gOuiRclNT3/8oefy59fVNHr10rBo1EinMoS1tSc+XtcR8YfFunV6vHp16N8fOnbUTpOoqDAWyniJBYcxIeScTlXwB8SiRTrnzT9v4oortD/i/vs1JOrXh4suikBBd+7UbVSnTtW9WY8d047sFi3g4Ye1VmGT8YyPBYcxQZRyOKy/RuGfhV2okA6BfeghDYtGjSK48ndCgraHTZ+uYbF0qR4vV043POrYUdc8D9o0cZObWHAYk0UpO7D9IbFqVfJw2KpVoX375JCoWTPCrTvbtumciunTtYP70CHtUW/cGF56ScOiVi0bBWUyZMFhTCbt3Hl2SCxeDMeP67kSJTQc/COdYmM90F988iT89JMGxfTpmnKg7WNduuhkvFatPFBQk9NYcBiThhMndL+JlB3YW7fquago7cC+557kORMB74sdCv5lbf1BMWeOztguWFCXsr37bg2La6/1QGFNTmbBYfK8pCQdOJQyJH77TbsBACpU0KU6/CFRty5ceGFEi5zs6FHdwNsfFhs36vFrroHevTUorr/e+ipMUHkqOESkHfAuuuf4COfcK2lccz3wDhAF7HPO/SWMRTS5wP792i/sD4lfftFZ2aDzI2Jj4bHHNCQaNgzifhPBkJSkY3lnztSgmD9f51UULqyd2f/8p86vsF3xTAh5JjhEJD8wFGgNbAMWi8gU59yqFNcUB/4NtHPObRGR0hEprMkx4uO19pByOKx/WkK+fNpqk3KZjurVdS6Fp2zdqkExYwbMnq0LCIIu7fHoo1qraNLE1oEyYeOZ4AAaAOudcxsARGQM0BlYleKa7sBE59wWAOfcnrCX0njagQNn7zWxeLH2EYMuGd6wobbgNGyoQ2PDOgM7s44c0f6JmTP15l8HvUwZHabVurV2al9+eUSLafIuLwVHWWBrivvbgIaprqkCRInIHKAo8K5z7tPwFM94jXNae0i514R/nb0CBXR9vb59k2dgX3mlR/uEExI04fxBsXChHitUSNeA6tNHw6JmTY++AZPXeCk40vo/wqW6XwCoD9wAFAIWiMhC59zac55MpA/QB6B8+fJBLqqJhJMndaRTyqDwt9pccom21vTooT9jYyM0AzsznNM1RvxB8f33cPiwhkK9etpP0aaNNT8Zz/JScGwDrkxxvxywI41r9jnnjgPHRWQuUAc4Jzicc8OB4QAxMTGpA8jkAHv2nN3stGSJ9lkAVK6sewH5tzitVi1Mq8Nm1YEDGhAzZmhYbNqkx6+6Cm6/XWsULVvaTngmR/BScCwGKotIRWA70A3t00hpMjBERAoABdGmrLfDWkoTMlu26Np6/pu/ab9gQa1B9O+fHBSlSkW2rBmKj9f10P1BERenNY2LL9b1n/y1imuuseYnk+N4Jjiccwki0g/4Dh2OO9I5t1JE+vrOD3POrRaR6cBvQBI6ZPf3yJXaZJV/rtrcubpS99y5sHmzniteXOer3XuvBkX9+jmgxcY53TBjxgy9/fijTivPn187WJ5+WmsVDRpoB4wxOZg4l/tbcWJiYlxcXFyki5GnJSXpihcpaxS7dum50qWhefPkW82aHhwSm5a9e3V4rD8stm/X41WqaEi0bq2T74oVi2gxjckKEVninItJ65z96WNCIiFB56n5Q2LePG3mB12A9YYbkoMi5HthB8upU9rZ4p9T4V9R9pJLdHhsmzYaFlddFdlyGhNiFhwmKJzTlWFnzdI/wn/8UacjgDbj33xzclBUqJBDgsL/pvz9FD/+qGs/FSigHS0vvKBBUb9+DqkiGRMcFhwmy7Zs0ZCYNUsHDPmbnq6+Grp101aa5s2hbNmIFjMwe/boG/LXKnb4BvZVraqdLm3a6NwKT84cNCY8LDhMph0+rP+m+msV/qU7SpfWpif/rUKFiBYzMCdPavOTv1axbJkeL1Hi7OYnmwtkzBkWHCZdzmmH9rRpeps/X/suihbVP7ofeECDIkdNaPa/qZTNTydO6FrpTZrAiy9qWNSta81PxqTDgsOc5dgxrU34w2LbNj0eHQ0DBuhSSY0aRXgnu0AdOqTVpG+/1RVl/c1P1arB3/6W3PxUpEhEi2lMTmHBYdi8GSZPhq+/1hFQ8fFaq2jdGp55RhdfzVH9FM7pkK5vv9XbggW6z2uxYhoS7drpm7vyygyfyhhzLguOPMg5+P13+OormDQpuVm/enV4+GHo0EEn3hUsGNFiBubgQW168tcq/D31devC448nV5Vs8p0x2Wb/F+URiYn6h/dXX+ntjz+0X6JxY3jtNR0uW7lyhAsZCP+GRilrFUlJOu28TRsNinbtdClyY0xQWXDkYklJ8NNPMGYMTJigI02jorRD+7HHoFOnHPbv6sGD2qntr1Xs3q3H69eHQYM0LGxJD2NCzv4Py2Wc061Qx4yBceO0H7hQIV1JtksXbYa6+OJIlzIAf/wBU6Ykd8AkJupM7bZtNSjatvXY3q7G5H4WHLmAc/DrrxoWY8fqit0FC2pIdO2qoZFjBgwlJupGRl9/rYHh35np2mt1WNdNN+n2fTZU1piIseDIwfbsgc8+g48/1s7uAgV0sNCzz0Lnzjlobb1jx7QJasoUmDpVd2cqUECHyN5/v4ZFpUqRLqUxxseCI4eJj9f5FR9/rD8TEvQP8A8+0P2ALr000iXMpF27tJd+8mRdryQ+Xju2O3TQoGjXTu8bYzzHgiOH2L4dPvwQhg/XPuEyZeDRR+Huu6FGjUiXLpM2b4aJE7Wn/ueftY3t6quhXz8Ni6ZNc9jMQmPyJgsOD3NOV8QYOlTnWyQl6R/kffvqH+Q5YvDQ2rUaFBMm6N6vALVr68zCLl207yLHrFdijAELDk9KSNBO7tdeg99+0/X2Hn0U/v73HNDU7xysWKFBMXGidr6ADpN99VUNi2uuiWwZjTHZYsHhIcePw8iR8Oab2qpTowb85z9wxx06pNbTVq6Ezz/XMcDr12stolkzePdduOUWW97DmFzEgsMD9u+H99+HIUP096ZN9X7HjpAvX6RLdx6bNukY4M8/11pGvnw6u3DAAB3WZfMrjMmVPBUcItIOeBfID4xwzr2SznWxwEKgq3PuyzAWMagOH9baxdtv64jUm27SZZWaNo10yc5j924YPx6++EI7uEGXI3//fR3WZWFhTK7nmeAQkfzAUKA1sA1YLCJTnHOr0rjuVeC78JcyOI4fh/feg9df11U0brtN+4qvvTbSJUvHqVM6Ie/jj+G773SSXq1a8PLLutVfjtq5yRiTXZ4JDqABsN45twFARMYAnYFVqa57CJgAxIa3eNmXlASffqrLKu3cqU1Rzz+vC7h60q+/alh89pm2oZUtq4tcde+uuzcZY/KkDINDREpk4nmSnHOHslmWssDWFPe3AQ1TlaUscAvQkgyCQ0T6AH0Ayntg28+ffoJHHtERqQ0bwpdfaguP5xw4oM1QI0fC0qW6dsnNN8M99+i0dFvqw5g8LzM1jh2+2/kG2+cHsvuvc1rP71Ldfwd43DmXKBmM/XfODQeGA8TExKR+nrDZtw/+7//gv/+FcuVg9GgdJeW5qQuLF+uEkTFjtGmqbl3tt7jjjhw0Hd0YEw6ZCY7VzrnzNqaIyLIglGUbkHLMZjk0sFKKAcb4QqMk0EFEEpxzXwXh9YPKOR1s9Mgj2gn+r3/BwIFw0UWRLlkKJ07ohJGhQyEuTldCvPde3U41OjrSpTPGeFRmgqNxkK7JyGKgsohUBLYD3YDuKS9wzlX0/y4io4BvvBgae/ZA7966Xl/DhjBihMe6BDZu1MWt/vMfbZqqXl3HAvfokcPWXDfGREKGweGcOwkgIjHAk8BVvseJnna1/ddkh3MuQUT6oaOl8gMjnXMrRaSv7/yw7L5GOEyfrutHHTqkw2wfeshD3QKLF+t09IkTta2sc2d48EFo0cKDbWfGGK8KZFTVaGAAsAJICkVhnHPTgGmpjqUZGM65u0NRhqxKTNTRUq+9psNqZ87UEasR55zumPf66zBnjq61PmCALixYrlykS2eMyYECCY69zrkpIStJDnb4sE5nmD5dt494+20PLBESH68d3a+/rutFlSsHb7yh/RfWHGWMyYZAguNpERkBzAZO+Q865yYGvVQ5yMaNuoPpH3/AsGEaHBF1+rROFnn+eV3wqmZN+OQTTbaCBSNcOGNMbhBIcNwDVAOiSG6qckCeDY6VK3Vqw8mTMGuWblgXMQkJOlHv+edhwwaIjdXRUh06WP+FMSaoAgmOOs45L7Tae8KSJdCmDVxwAcydG8FRU4mJOu73ued0Vdp69XR5kI4dLTCMMSERyNqrC0Ukp+w1F1KrVmloFC2qM8IjFhrTp0OdOtCzJxQurFuxxsXBjTdaaBhjQiaQ4LgOWC4ia0TkNxFZISK/hapgXrV5szZPFSwIs2dHaGOlFSugbVvtXDl5UvfAWLpUh9daYBhjQiyQpqp2IStFDnHyJNx6q65uO2+ebpcdVkeOwODBOlmvWDF46y2dh2Gd3saYMMp0cDjnNoeyIDlB//7atzF5cpjnaDintYpHH4Vdu3QP2eef1z1ljTEmzDJsqhKRpcG4JqebMQOGD9eNljp1CuMLb9+ufRbdusEVV8CiRTpaykLDGBMhmalxVM+gL0OAYkEqjyedOKF/5FepAs8+G6YXdU6H1z78sK5W+847OtvbM+uXGGPyqswER7VMXJOY3YJ42bBhOjVi1iwdfhtyBw/CfffpmlJNm8KoUXDNNWF4YWOMyVhmFjnM030bf/4Jr74KLVvCDTeE4QUXLNA9MHbs0OVCHn3UahnGGE/x0taxnjRmDOzerT9Dyjl491345z+hfHmdINKgQYhf1BhjAhfIPI486T//gWrVQrycyKlT2jT16KPa875smYWGMcazMh0cIjJLROqEsjBes307/Pwz9OoVwnl1e/ZAq1a6x/fgwboZebFcPdbAGJPDBdJU9RjwtohsBgY553aGqEyeMXOm/mzfPkQvsHKlrinlbwvr2jVEL2SMMcGT6RqHc26pc64l8A0wXUSeFpFI7zoRUgsXwiWXhGiyX1wcNG+uzVRz51poGGNyjID6OEREgDXAB8BDwDoR6RGKgnnB//6n23HnC3ZP0Lx5Okzr4ou1Ezw2NsgvYIwxoRNIH8dPwHbgbaAscDdwPdBARIYHozAi0s63iOJ6EXkijfN3+hZY/E1Efg51n8vmzVCxYpCf9JdfdI+MsmU1NMK+4JUxxmRPIH0cfYGVzjmX6vhDIrI6uwURkfzAUKA1sA1YLCJTnHOrUly2EfiLc+6giLQHhgMNs/va6TlyBIoXD+IT/v47tGsHpUvr0rpXXBHEJzfGmPAIpI/j9zRCw69jEMrSAFjvnNvgnIsHxgCdU5XhZ+fcQd/dhUC5ILxuuhISgjj3btcu7WUvVEinoFtoGGNyqKC03jvnNgThacoCW1Pc3+Y7lp57gW/TOykifUQkTkTi9u7dm6UCXXyx1jqy7cQJuPlmOHAApk4NQfuXMcaEj5cmAKY1UyLNGo6ItECD4/H0nsw5N9w5F+OciylVqlSWCnTFFbBlS5YeeraHH9ZVbT/7DKKjg/CExhgTOV4Kjm3AlSnulwN2pL5IRGoDI4DOzrn9oSxQzZraLZEtY8bAiBEwcCDccktQymWMMZHkpeBYDFQWkYoiUhDoBkxJeYGIlAcmAj2cc2tDXaDatXVi97ZtWXyCbdvg/vuhUaMwrsdujDGh5ZngcM4lAP2A74DVwDjn3EoR6SsifX2XPQVcCvxbRJaLSFwoy+Rfn+r777PwYOd0W9fTp7WJKioqqGUzxphI8dTquM65acC0VMeGpfj9PuC+cJWndm0oVUp3/+vZM8AHT54MU6bAa6/ZXA1jTK7imRqHF+XLBzfdpBnw558BPPD0aRgwAGrU0BVvjTEmF7HgyECPHnDsGHz1VQAP+ugjWL9eaxsFPFWpM8aYbLPgyEDz5lChAgwZot0WGTp9WrcMbNpUlxYxxphcxoIjA/nyaavTggUwZ04mHjBunE7+eOKJEG7iYYwxkWPBkQm9e0OZMvDMM5modXzwAVSpYrUNY0yuZcGRCRdeCE8/rdtmTJp0ngvXrYP58zVpgr4WuzHGeIP965ZJ992nM8n/8Q84eTKdi8aP15933RW2chljTLhZcGRSgQLwzjuwaRO89FI6F02bBvXr614bxhiTS1lwBOCGG3R47ksvwZIlqU4eP6496O3aRaRsxhgTLhYcAXr3XbjsMujVK1WT1bJlkJSk61IZY0wuZsERoEsu0cVuV67UpajOjLJavlx/1qsXqaIZY0xYWHBkQfv28K9/wciRMHSo7+DGjbq73+WXR7RsxhgTarYeRhY9+6xWMvr3h3Ll4OatW6F8eZv0Z4zJ9azGkUX58sEXX0BMDHTrBgc2HYHixSNdLGOMCTmrcWRDkSI6ArdZM1i99E9qRxeiaJBf49QpWLsW9u3T34sU0XwqV85yyhgTGRYc2XTppbpfx+Zrolj16ykK/64TBbPrwMqdfNl/Hu8tiGXlnxXTfe1rr9WBXP36wZVXpnmZMcYElQVHEJQrB8WbFmbz3P20aAmzZ0OtWll/vkOHYE39O+hz6kf6AIeurMnvQ34kf6kSHDum5zdv1hVO5s3T1dtnz4a4kO6HaIwxyoIjSIpUKUu1pfMpWBBa+sKjdu2sPde8eVDi1GlcvnxI3boUX7KE667cDHVLnHXd7Nkwdar+3rVrNt+AMcZkkqc6x0WknYisEZH1IvJEGudFRN7znf9NRLwzaaJSJfIfOsCPXx/hwgs1PH79NWtPVawYDKEfkpSkU9QbN4bo6LOuWbwYOnaEiy+GRYt06XdjjAkHzwSHiOQHhgLtgRrAHSJSI9Vl7YHKvlsf4IOwFvJ8KlUC4OrEtcyZAxddpOGxdGngT1WjBoyhG6ejLtIDt99+1jBf5+Dee3U/9HnzoEGDIJTfGGMyyTPBATQA1jvnNjjn4oExQOdU13QGPnVqIVBcRLwx4y42Vn8uWMDVV+umT0WLangsWhTYU5UsCVWqCGsu8LV1RUWddf6PP2DFChg0SDvIjTEmnLwUHGWBrSnub/MdC/QaAESkj4jEiUjc3r17g1rQNJUvr73k8+cDWgGZO1dDoFUrrRkE4p+99lLz2EIADharcNa5pCT9aVt+GGMiwUv/9KQ15Tr1fnuZuUYPOjfcORfjnIspVapUtguXKc2awQ8/QGIioFkyd67mSbt22pmdWb3vij/z++09L+Tw4eRzlSvrbcgQ3eLcGGPCyUvBsQ1IOROhHLAjC9dEzi23wJ49Z1UvrrhCm62uvlo7s6dNy/hpjh6FB14sS120g6RXx/0UK5Z8XkT3BnnwQcifP7hvwRhjMuKl4FgMVBaRiiJSEOgGTEl1zRSgp290VSPgsHNuZ7gLmq4OHXShQ/9OgD6XXaYVkWuvhZtvhq++Sv8p5szRYbwffQRdHtDumx4d9qf5Un37WnOVMSb8PPPPjnMuAegHfAesBsY551aKSF8R6eu7bBqwAVgPfAQ8EJHCpqdwYejcGT7/XDd2SuHSS7Wpql49uO02GDv27IceOwYPPQQtWuhug/PmweA3fNWMI0fC9AaMMSZjngkOAOfcNOdcFefc1c65F33Hhjnnhvl+d865B33naznnvDdX+sEHdWr36NHnnCpeHGbOhCZNoHt3+PRTSEjQ5dmrV9cl2h9+WFfdbdoUuOACfeCpU2F8A8YYc36eCo5coWlTnaz33nvJw59SKFoUxo3TU7166Ujbe+/VvpB583SHwcKFfRfnywcXXqjVEWOM8QhbciTYRDhw7wBKPHQnk3pMZEHZ2zhyRFubDh2CNWtgw4azH9K2LXz7bTpbeeTPn2YAGWNMpFiNI8hefRVKP9SVVVSn8ufPMPT9JCZN0iVCdu3S/Tuef15X1N23TzvLv/sO3ngjjSc7eVL7Smz9dGOMh1iNI4ji4+GZZ6BuTH4u7PI0lQZ14/i/P4F77kn3MePGQY8e8NhjmhODB6c4uW6d/qxcOaTlNsaYQFiNI4gKFIBrrtHlzR+edzuHazTGPfEEZ83eSyUqSvvRe/aEp56Ct99OcXL1av1ZrVpoC26MMQGw4AiifPngxx91P/Jf4vLRctX7uD17WXH7c8THp/+4/Pnh44+hSxf4xz9gin/2ysqV+qRVq4al/MYYkxkWHEFWooTWHLZsgQdG1GdiifuoNvM9bq+8nJkz039cvnzw3/9qH8gdd/iWZF+9GipW1EmFxhjjERYcIXLhhTrM9tY1L5N4SUle29WTG9uc4okndFn0tFx0kdY2ihXTfo+khCQoWDC8BTfGmAxYcISYlLyUC/87gqrxK5gc/Qyvvqo1kvSUKQMffqjLpi/bWUaHYhljjIdYcIRDx45w7720/e01nms1l9dfh+3b07/8ppugfXuYuaIMHDxoM8eNMZ5iwREub72FXH01A3/rRomEPbz66vkv/9vfYNPxknpn/7mLHBpjTKRYcITLxRfD+PEUOHyAWZfdyYgPE89b66hcGcS/1YgtgWuM8RD7Fymc6tSB99+nxo5ZPJbw4nlrHT/8AFH4dmlKtXWsMcZEkgVHuN13H9x1F08lPcOODyazcOHZpw8ehMcfh/794drKvskfFhzGGA+xJUfCTQSGDydx5Ro+WX4nf7nuJy5uHk2ZMtphvnChLl1yzz1wT8VEeArb5s8Y4ylW44iEQoWImjqZC8sUZ+ZFnYjav4tFi3Rvjgcf1Ml/I0dCwcK+mkZCQmTLa4wxKViNI1Iuv5z8U7/mkuuu47sLOsGCOToDMCX/5L+TJzlr03FjjIkgq3FEUt26us1sXBzcdRckJp59vnx5/blxY/jLZowx6fBEcIhICRGZKSLrfD8vSeOaK0XkBxFZLSIrRaR/JMoadJ07w1tvwaRJurZ6SjVr6s8VK8JfLmOMSYcnggN4ApjtnKsMzPbdTy0B+IdzrjrQCHhQRGqEsYyh078/9OunATJ0aPLxChV0H9nff49Y0YwxJjWvBEdn4BPf758AN6e+wDm30zm31Pf7UWA1UDZcBQwpEXjnHV1r5OGH4Ztv9Hi+fLoXx5o1ES2eMcak5JXguMw5txM0IIDS57tYRCoAdYFF57mmj4jEiUjc3r17g1nW0MifX/s7oqOhWzdYulSPlyt3/oWtjDEmzMIWHCIyS0R+T+PWOcDnKQJMAB5xzh1J7zrn3HDnXIxzLqZUqVLZLX54FCmitY0SJeDGG2HrVv394MFIl8wYY84I23Bc51yr9M6JyG4Rudw5t1NELgf2pHNdFBoao51zE0NU1Mi6/HKYOhWuu05X1a1UyfbkMMZ4ileaqqYAvXy/9wImp75ARAT4D7DaOfdWGMsWfrVqwZdf6g6AkyfrZubGGOMRXgmOV4DWIrIOaO27j4hcISLTfNc0BXoALUVkue/WITLFDYPWrWHYMP193br0tw00xpgwE5cH/kGKiYlxcXFxkS5G1ojoz7ffhkceiWhRjDF5h4gscc7FpHXOKzUOk5aTJ5N/HzAAfv45cmUxxhgfCw4v27pVf77zji4/0rUr5IShxcaYXM2Cw8s2bdKftWvD+PEaGj17Wn+HMSaiLDi8zD8JsFYtqFcP3nwTpk+Hjz6KbLmMMXmaBYeX/fyzbj5esqTe//vf4YYb4B//SK6NGGNMmFlweFViIvz0EzRtmnwsXz7d4Skp6dyVdI0xJkwsOLxq4UI4cADatz/7ePnyWuMYPx5++y0yZTPG5GkWHF71zTc6Y7xNm3PP9e8PF1wAw4eHv1zGmDzPgsOrpk/XZqrixc89d+mlugHUl1/aCCtjTNhZcHjR/v2wfDm0SnddSGjZEnbvhg0bwlYsY4wBCw5v8i+P0qRJ+tdcdZX+3L079OUxxpgULDi8aPly/Vm3bvrXHD+uPy+4IOTFMcaYlCw4vGjzZu3HuOSS9K+ZN09Do3r18JXLGGOw4PCm06d1zkZ6jh2D0aOhQwe46KLwlcsYY7Dg8KaaNXVdqpUrzz3nHAwcCPv22SRAY0xEWHB4UffuOgy3Vy84dCj5+P79emzIEN2bo1GjCBXQGJOX2Z6kXlSqFHz6KXTpAmXL6uq4+fPDsmVw4gQ8/TQ89VSkS2mMyaOsxuFVN92ky4707g2FCuks8t69YcUKeOaZ8/eBGGNMCHmixiEiJYCxQAVgE/BX59zBdK7ND8QB251zN4arjBFRv77ejDHGQ7zyZ+sTwGznXGVgtu9+evoDq8NSKmOMMefwSnB0Bj7x/f4JcHNaF4lIOaAjMCI8xTLGGJOaV4LjMufcTgDfz9LpXPcO8BiQlNETikgfEYkTkbi9tk+3McYETdj6OERkFlAmjVNPZvLxNwJ7nHNLROT6jK53zg0HhgPExMTYErLGGBMkYQsO51y6S72KyG4Rudw5t1NELgf2pHFZU6CTiHQALgQuFpHPnHN3hajIxhhj0uCVpqopQC/f772AyakvcM4NdM6Vc85VALoB31toGGNM+HklOF4BWovIOqC17z4icoWITItoyYwxxpzFE/M4nHP7gRvSOL4D6JDG8TnAnJAXzBhjzDm8UuMwxhiTQ1hwGGOMCYgFhzHGmIBYcBhjjAmIBYcxxpiAWHAYY4wJiDiX+1fjEJG9wOZIlyOLSgL7Il0ID7HP42z2eZzNPo9k2f0srnLOlUrrRJ4IjpxMROKcczGRLodX2OdxNvs8zmafR7JQfhbWVGWMMSYgFhzGGGMCYsHhfcMjXQCPsc/jbPZ5nM0+j2Qh+yysj8MYY0xArMZhjDEmIBYcxhhjAmLB4REi0k5E1ojIehF5Io3zIiLv+c7/JiL1IlHOcMnE53G9iBwWkeW+21ORKGc4iMhIEdkjIr+ncz6vfTcy+jzy0nfjShH5QURWi8hKEemfxjXB/3445+wW4RuQH/gDqAQUBH4FaqS6pgPwLSBAI2BRpMsd4c/jeuCbSJc1TJ9Hc6Ae8Hs65/PMdyOTn0de+m5cDtTz/V4UWBuOfzusxuENDYD1zrkNzrl4YAzQOdU1nYFPnVoIFPftz54bZebzyDOcc3OBA+e5JC99NzLzeeQZzrmdzrmlvt+PAquBsqkuC/r3w4LDG8oCW1Pc38a5//Ezc01ukdn32lhEfhWRb0Xk2vAUzZPy0ncjs/Lcd0NEKgB1gUWpTgX9++GJrWMNksax1OOkM3NNbpGZ97oUXUvnmIh0AL4CKoe6YB6Vl74bmZHnvhsiUgSYADzinDuS+nQaD8nW98NqHN6wDbgyxf1ywI4sXJNbZPhenXNHnHPHfL9PA6JEpGT4iugpeem7kaG89t0QkSg0NEY75yamcUnQvx8WHN6wGKgsIhVFpCDQDZiS6popQE/fCIlGwGHn3M5wFzRMMvw8RKSMiIjv9wbod3l/2EvqDXnpu5GhvPTd8L3P/wCrnXNvpXNZ0L8f1lTlAc65BBHpB3yHjiga6ZxbKSJ9feeHAdPQ0RHrgT+BeyJV3lDL5OdxG/B3EUkATgDdnG8ISW4jIl+gI4VKisg24GkgCvLedwMy9Xnkme8G0BToAawQkeW+Y4OA8hC674ctOWKMMSYg1lRljDEmIBYcxhhjAmLBYYwxJiAWHMYYYwJiwWGMMSYgFhzGGGMCYsFhTBiJSAUROZFizH1mH1fIt0R4fG6eBW1yBgsOY8LvD+dcdCAPcM6d8D0mzy4lYrzDgsOYIPJtqtPa9/sLIvJeBtdXEJH/icgIEfldREaLSCsRmS8i63xLZhjjKbbkiDHB9TTwnIiURpe47pSJx1wD3A70Qdfp6g5c53vsIODmkJTUmCyy4DAmiJxzc30Lz/0fcL1zLjETD9vonFsBICIrgdnOOSciK4AKoSutMVljTVXGBJGI1EK38zzl25EtM06l+D0pxf0k7I8740EWHMYEiW87ztHoVp3HRaRthItkTEhYcBgTBCJyETAR+IdzbjXwPPBMRAtlTIjYsurGhJFvX+hvnHM1s/j4TUCMc25fMMtlTCCsxmFMeCUCxbI6ARDdsCgpBOUyJtOsxmGMMSYgVuMwxhgTEAsOY4wxAbHgMMYYExALDmOMMQGx4DDGGBMQCw5jjDEBseAwxhgTEAsOY4wxAfl/tPc7k71RfMUAAAAASUVORK5CYII=\n", + "image/png": "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", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -503,7 +582,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.1" + "version": "3.13.1" } }, "nbformat": 4, diff --git a/examples/pvtol.py b/examples/pvtol.py index 4f92f12fa..bc826a564 100644 --- a/examples/pvtol.py +++ b/examples/pvtol.py @@ -64,8 +64,6 @@ def _pvtol_flat_forward(states, inputs, params={}): F1, F2 = inputs # Use equations of motion for higher derivates - x1ddot = (F1 * cos(theta) - F2 * sin(theta)) / m - x2ddot = (F1 * sin(theta) + F2 * cos(theta) - m * g) / m thddot = (r * F1) / J # Flat output is a point above the vertical axis @@ -110,7 +108,6 @@ def _pvtol_flat_reverse(zflag, params={}): J = params.get('J', 0.0475) # inertia around pitch axis r = params.get('r', 0.25) # distance to center of force g = params.get('g', 9.8) # gravitational constant - c = params.get('c', 0.05) # damping factor (estimated) # Given the flat variables, solve for the state theta = np.arctan2(-zflag[0][2], zflag[1][2] + g) @@ -185,10 +182,6 @@ def _windy_update(t, x, u, params): def _noisy_update(t, x, u, params): # Get the inputs 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 = \ @@ -196,7 +189,6 @@ def _noisy_update(t, 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 # Now add the disturbances xddot += Dx / m @@ -219,7 +211,6 @@ def _noisy_output(t, x, u, params): 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 diff --git a/examples/python-control_tutorial.ipynb b/examples/python-control_tutorial.ipynb new file mode 100644 index 000000000..4d718b050 --- /dev/null +++ b/examples/python-control_tutorial.ipynb @@ -0,0 +1,1267 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "numerous-rochester", + "metadata": {}, + "source": [ + "# Python Control Systems Library (python-control) Tutorial\n", + "\n", + "This Jupyter notebook contains an introduction to the basic operations in the Python Control Systems Library (python-control), a Python package for control system design. The tutorial consists of two examples:\n", + "\n", + "* Example 1: Open loop analysis of a coupled mass spring system\n", + "* Example 2: Trajectory tracking for a kinematic car model" + ] + }, + { + "cell_type": "markdown", + "id": "9531972e-c4b8-4a87-87d8-d83a01d4271f", + "metadata": {}, + "source": [ + "## Initialization\n", + "\n", + "The python-control package can be installed using `pip` or from conda-forge. The code below will import the control toolbox either from your local installation or via pip. We use the prefix `ct` to access control toolbox commands:" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "macro-vietnamese", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "python-control 0.10.1.dev324+g2fd3802a.d20241218\n" + ] + } + ], + "source": [ + "# Import the packages needed for the examples included in this notebook\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# Import the python-control package\n", + "try:\n", + " import control as ct\n", + " print(\"python-control\", ct.__version__)\n", + "except ImportError:\n", + " %pip install control\n", + " import control as ct" + ] + }, + { + "cell_type": "markdown", + "id": "distinct-communist", + "metadata": {}, + "source": [ + "### Installation notes\n", + "\n", + "If you get an error importing the `control` package, it may be that it is not in your current Python path. You can fix this by setting the PYTHONPATH environment variable to include the directory where the python-control package is located. If you are invoking Jupyter from the command line, try using a command of the form\n", + "\n", + " PYTHONPATH=/path/to/python-control jupyter notebook\n", + " \n", + "If you are using [Google Colab](https://colab.research.google.com), use the following command at the top of the notebook to install the `control` package:\n", + "\n", + " %pip install control\n", + "\n", + "(The import code above automatically runs this command if needed.)\n", + " \n", + "For the examples below, you will need version 0.10.0 or higher of the python-control toolbox. You can find the version number using the command\n", + "\n", + " print(ct.__version__)" + ] + }, + { + "cell_type": "markdown", + "id": "5dad04d8", + "metadata": {}, + "source": [ + "### More information on Python, NumPy, python-control\n", + "\n", + "* [Python tutorial](https://docs.python.org/3/tutorial/)\n", + "* [NumPy tutorial](https://numpy.org/doc/stable/user/quickstart.html)\n", + "* [NumPy for MATLAB users](https://numpy.org/doc/stable/user/numpy-for-matlab-users.html)\n", + "* [Python Control Systems Library (python-control) documentation](https://python-control.readthedocs.io/en/latest/)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "id": "1c619183", + "metadata": { + "id": "qMVGK15gNQw2" + }, + "source": [ + "## Example 1: Open loop analysis of a coupled mass spring system\n", + "\n", + "Consider the spring mass system below:\n", + "\n", + "
\n", + "\n", + "We wish to analyze the time and frequency response of this system using a variety of python-control functions for linear systems analysis.\n", + "\n", + "### System dynamics\n", + "\n", + "The dynamics of the system can be written as\n", + "\n", + "$$\n", + "\\begin{aligned}\n", + " m \\ddot{q}_1 &= -2 k q_1 - c \\dot{q}_1 + k q_2, \\\\\n", + " m \\ddot{q}_2 &= k q_1 - 2 k q_2 - c \\dot{q}_2 + ku\n", + "\\end{aligned}\n", + "$$\n", + "\n", + "or in state space form:\n", + "\n", + "$$\n", + "\\begin{aligned}\n", + " \\dfrac{dx}{dt} &= \\begin{bmatrix}\n", + " 0 & 0 & 1 & 0 \\\\\n", + " 0 & 0 & 0 & 1 \\\\[0.5ex]\n", + " -\\dfrac{2k}{m} & \\dfrac{k}{m} & -\\dfrac{c}{m} & 0 \\\\[0.5ex]\n", + " \\dfrac{k}{m} & -\\dfrac{2k}{m} & 0 & -\\dfrac{c}{m}\n", + " \\end{bmatrix} x\n", + " + \\begin{bmatrix}\n", + " 0 \\\\ 0 \\\\[0.5ex] 0 \\\\[1ex] \\dfrac{k}{m}\n", + " \\end{bmatrix} u.\n", + "\\end{aligned}\n", + "$$\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "9f86a07f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + ": coupled spring mass\n", + "Inputs (1): ['u[0]']\n", + "Outputs (2): ['q1', 'q2']\n", + "States (4): ['x[0]', 'x[1]', 'x[2]', 'x[3]']\n", + "\n", + "A = [[ 0. 0. 1. 0. ]\n", + " [ 0. 0. 0. 1. ]\n", + " [-4. 2. -0.1 0. ]\n", + " [ 2. -4. 0. -0.1]]\n", + "\n", + "B = [[0.]\n", + " [0.]\n", + " [0.]\n", + " [2.]]\n", + "\n", + "C = [[1. 0. 0. 0.]\n", + " [0. 1. 0. 0.]]\n", + "\n", + "D = [[0.]\n", + " [0.]]\n" + ] + } + ], + "source": [ + "# Define the parameters for the system\n", + "m, c, k = 1, 0.1, 2\n", + "# Create a linear system\n", + "A = np.array([\n", + " [0, 0, 1, 0],\n", + " [0, 0, 0, 1],\n", + " [-2*k/m, k/m, -c/m, 0],\n", + " [k/m, -2*k/m, 0, -c/m]\n", + "])\n", + "B = np.array([[0], [0], [0], [k/m]])\n", + "C = np.array([[1, 0, 0, 0], [0, 1, 0, 0]])\n", + "D = 0\n", + "\n", + "sys = ct.ss(A, B, C, D, outputs=['q1', 'q2'], name=\"coupled spring mass\")\n", + "print(sys)" + ] + }, + { + "cell_type": "markdown", + "id": "1941fba0", + "metadata": { + "id": "YmH87LEXWo1U" + }, + "source": [ + "### Initial response\n", + "\n", + "The `initial_response` function can be used to compute the response of the system with no input, but starting from a given initial condition. This function returns a response object, which can be used for plotting." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "195a3289", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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wMiRIzFt2jQ899xzWL9+fa92VqqdcsopmDNnDi699FIsXLgQo0aNwvbt2yEIAs455xz8/Oc/x8yZM/G73/0Ol19+OVauXIl//OMfePzxx5VrnHbaafjHP/6BWbNmIRgM4q677oo7duSxxx7D6NGjMX78eDz88MNoa2vDddddF/e+evpejx07Fueccw5uuOEGPP3009DpdPjpT3+atILY0/cGAEwmE37wgx/gL3/5CxwOB26//XZ897vf7dVYnFTcdNNNWLhwIe666y786Ec/wvr165VduH0Z+RLPqFGj8Oabb2LevHkQBAG//e1vI6rqyf7crF69GosXL8ZZZ52FoqIirF69Gk1NTSn/A4EoGituRP1Ap9Phb3/7G5566imUlZXFDTMajQaLFi3CunXrMGnSJPzf//0f/vznPx+S158yZQq+/PJLVFVV4eSTT8b06dPx29/+FqWlpQCkERRvvvkmTjvtNIwfPx5PPvkkXnnlFUycOFG5xjXXXIPu7m4cd9xxuPXWW/GTn/wEN954o/L+5557DsceeywuuOACnHDCCRBFER988EGv559ZLBZs374dl156KcaMGYMbb7wRt912G2666SYAwNlnn43//e9/+PTTTzFz5kzMmjULCxcuxLBhw1L6Wtx+++34+c9/jp///OeYPHkyPvroI2W8RKreeOMNzJw5E9///vcxYcIE/PKXv1Sqqscccwxee+01LFq0CJMmTcI999yD+++/H9dee63y8X/9619RUVGBOXPm4IorrsCdd94Ji8US8zp//OMf8dBDD2Hq1Kn46quv8M4776CgoCDuPfX0vQak71VFRQVOOeUUXHLJJbjxxhtRVFSU8PPs6XsDSCHnkksuwXnnnYezzjoLkyZNigiph8rw4cPx+uuv480338SUKVPwxBNP4Ne//jUAwGg0HtLXevjhh5Gbm4vZs2dj3rx5OPvss3HMMcco70/258Zut2Pp0qU477zzMGbMGPzmN7/BX//6V5x77rmH9B7p6COIvV0cQERHrblz52LatGk8mqifJTpxI9Pce++9ePvttwfsKLbf//73ePLJJ1FbWzsgr0/Un9gqJSKiQeXxxx/HzJkzkZ+fj+XLl+PPf/4zbrvttoG+LaJ+weBGRESDSlVVFR544AG0trZi6NCh+PnPf4677757oG+LqF+wVUpEREQ0SHBzAhER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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "response = ct.initial_response(sys, X0=[1, 0, 0, 0])\n", + "cplt = response.plot()" + ] + }, + { + "cell_type": "markdown", + "id": "3e48c1df", + "metadata": { + "id": "Y4aAxYvZRBnD" + }, + "source": [ + "If you want to play around with the way the data are plotted, you can also use the response object to get direct access to the states and outputs." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "705cac47", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlQAAAHHCAYAAAB5gsZZAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAvb9JREFUeJzsnXd4FOX2x7+bTSeNkAqEKi303kRAEETQqyKIBRvgz3YtXK9X9Kpg46pXxe69NmwXUQFFQZqCoBSli0DoPZAQ0nuy8/vj7LszuzuzO5vM7mzgfJ4nz+zOTmbfbTPf+Z7znmORJEkCwzAMwzAMU2dCzB4AwzAMwzBMQ4cFFcMwDMMwTD1hQcUwDMMwDFNPWFAxDMMwDMPUExZUDMMwDMMw9YQFFcMwDMMwTD1hQcUwDMMwDFNPWFAxDMMwDMPUExZUDMMwDMMw9YQFFcMwDMMwTD1hQcUwDMMwDFNPWFAxFxxz586FxWLB5s2b6/y/R44ccaxbv349Zs6ciYKCAq/b1ud5GP8xf/58dO7cGVFRUbBYLNi+fbvZQ2qQFBcX45FHHsGoUaOQnJwMi8WCmTNnmj0sv1FSUoIHH3wQTZs2RWRkJHr06IEvvvjC7GExJsGCimF8YOzYsdiwYQPS09Md69avX49Zs2a5CSq1bZngIzc3F5MnT0bbtm2xbNkybNiwAe3btzd7WA2SvLw8/Pe//0VlZSWuvvpqs4fjd6699lp8/PHHeOqpp/DDDz+gb9++uOGGG/C///3P7KExJhBq9gAYpiGRnJyM5ORkw7c1krKyMkRHRwf8eRsq+/btQ3V1NW6++WYMHTrU47b83nqmZcuWyM/Ph8ViwdmzZ/H++++bPSS/sXTpUqxcuRL/+9//cMMNNwAAhg8fjqNHj+Lvf/87rr/+elitVpNHyQQSdqiYC56ZM2fCYrHgzz//xA033ID4+HikpqbijjvuQGFhodO2rqG4mTNn4u9//zsAoHXr1rBYLLBYLFizZo1q2O7AgQO4/fbb0a5dO0RHR6NZs2a48sor8ccff9Rr7Fu3bsV1112Hxo0bo23bto7H9+/fjxtvvBEpKSmIiIhAp06d8NZbbzntIzc3F3feeScyMjIQERGB5ORkDB48GKtWrXJ7nm3btuHaa69FXFwc4uPjcfPNNyM3N9dpf7/88gtGjBiB2NhYREdHY9CgQViyZEmd33M949P7Wl257bbbcPHFFwMArr/+elgsFgwbNkzXe+vL69y5cycmTJiA+Ph4JCYmYvr06aipqUFWVhYuv/xyxMbGolWrVnjxxRc9jleQnZ2NmJgYTJo0yWn9999/j7CwMDz++OO69mM04vtvJMH6WhctWoSYmBhMmDDBaf3tt9+OU6dOYdOmTaaMizEPFlQMY2f8+PFo3749FixYgEcffRT/+9//8NBDD3n8n6lTp+Kvf/0rAGDhwoXYsGEDNmzYgF69eqluf+rUKTRp0gT/+te/sGzZMrz11lsIDQ1F//79kZWVVeexX3vttbjooovw1Vdf4d133wUA7N69G3379sWuXbvw8ssv4/vvv8fYsWNx//33Y9asWY7/nTx5Mr755hs8+eSTWLFiBd5//32MHDkSeXl5bs9zzTXX4KKLLsLXX3+NmTNn4ptvvsHo0aNRXV0NAPj5559x6aWXorCwEB988AHmzZuH2NhYXHnllZg/f77b/vS853rGp/e1uvLEE084RNfzzz+PDRs24O233/b63vr6OidOnIju3btjwYIFmDZtGl599VU89NBDuPrqqzF27FgsWrQIl156Kf7xj39g4cKFmuMVpKen45FHHsGXX36JLVu2AADWrFmDCRMm4O6778Zzzz3ndR+uSJKEmpoaXX+BJFhf665du9CpUyeEhjoHerp16+Z4nLnAkBjmAuOjjz6SAEi///67JEmS9NRTT0kApBdffNFpu3vuuUeKjIyUbDab2/8ePnzYse6ll15yW6e1rSs1NTVSVVWV1K5dO+mhhx7y6X+VY3/yySfdHhs9erTUvHlzqbCw0Gn9fffdJ0VGRkrnzp2TJEmSYmJipAcffFDX8yjHKEmS9Pnnn0sApM8++0ySJEkaMGCAlJKSIhUXFzu9xi5dukjNmzd3vJe+vOd6xqf3taqxevVqCYD01Vdfqb5mtffW19f58ssvO/1/jx49JADSwoULHeuqq6ul5ORk6dprr/X4WgWlpaVS06ZNpREjRki//fabFBsbK91+++1O793bb78t9ezZUwoNDZWeeuopj/sT74OeP2/fS0mSpNzcXAmA1+fVg7fXWlFRId12221S8+bNpdjYWKl///7Sr7/+6tfX2q5dO2n06NFu60+dOiUBkJ5//vl6v26mYcEOFcPYueqqq5zud+vWDRUVFcjJyTHsOWpqavD8888jMzMT4eHhCA0NRXh4OPbv3489e/bUeb/jx493ul9RUYEff/wR11xzDaKjo52uuK+44gpUVFRg48aNAIB+/fph7ty5ePbZZ7Fx40aH26TGTTfd5HR/4sSJCA0NxerVq1FaWopNmzbhuuuuQ0xMjGMbq9WKyZMn48SJE24unJ733Nv4fHmtdcH1va3L6xw3bpzT/U6dOsFisWDMmDGOdaGhobjoootw9OhRXeOKjo7Gs88+ix9//BHDhw/HmDFj8N577zmF3NLT0zFr1ixdCeK9e/fG77//ruuvadOmusZoFN5ea01NDVq3bo1ff/0VBQUFuPvuu3HVVVehrKxMdX9GvVZP4U2jQ59M8MNJ6Qxjp0mTJk73IyIiAADl5eWGPcf06dPx1ltv4R//+AeGDh2Kxo0bIyQkBFOnTq3X87jOJMzLy0NNTQ3eeOMNvPHGG6r/c/bsWQBUMuDZZ5/F+++/jyeeeAIxMTG45ppr8OKLLyItLc3pf1zvh4aGokmTJsjLy0N+fj4kSVKd1ShOSq5hRD3vubfx+fJa64Lr66nL60xMTHS6Hx4ejujoaERGRrqtLyoq0j02MRvRYrFg7ty5bknQQkh9++23XvcVExODHj166Hpe1zBXIPD0Whs1aoQnn3zScf/WW2/FQw89hP3796N79+5u+zLitYrvvSvnzp0D4P6ZM+c/LKgYJoB89tlnuOWWW/D88887rT979iwSEhLqvF/Xq+HGjRs7HJN7771X9X9at24NAEhKSsKcOXMwZ84cHDt2DIsXL8ajjz6KnJwcLFu2zOl/Tp8+jWbNmjnu19TUIC8vD02aNHGIw+zsbLfnOnXqlOO5fMXb+Hx5rXVB7b31x+v0le3bt2PcuHEYPHgwfv31V3z44Year18PP//8M4YPH65r28OHD6NVq1Z1fi5f8fW17t27F+Xl5U6TCJQY8Vq7du2KefPmoaamxkl0iQkmXbp00bV/5vyBBRXD1BNfnCyLxeLYXrBkyRKcPHkSF110kWFjio6OxvDhw7Ft2zZ069YN4eHhuv6vRYsWuO+++/Djjz/i119/dXv8888/R+/evR33v/zyS9TU1GDYsGFo1KgR+vfvj4ULF+Lf//43oqKiAAA2mw2fffYZmjdvXu/6Tmrjq+trrSuBeJ3eyMrKwujRozFw4EB8++23mDBhAmbOnImbb74Z8fHxddqnCIPpIZAhP19fa1lZGSZPnox//vOfTiFZJUa81muuuQbvvfceFixYgOuvv96x/uOPP0bTpk3Rv39/Xftnzh9YUDFMPenatSsA4LXXXsOtt96KsLAwdOjQQXXbcePGYe7cuejYsSO6deuGLVu24KWXXkLz5s0NH9drr72Giy++GEOGDMHdd9+NVq1aobi4GAcOHMB3332Hn376CYWFhRg+fDhuvPFGdOzYEbGxsfj999+xbNkyXHvttW77XLhwIUJDQ3HZZZfhzz//xBNPPIHu3btj4sSJAIDZs2fjsssuw/Dhw/Hwww8jPDwcb7/9Nnbt2oV58+b5nFeid3x6XquRGP06feHIkSMYOXIkOnTogAULFiAsLAz/+te/0KVLFzz//PN44YUX6rTf2NhY9OnTp97j++GHH1BaWori4mIANAPz66+/BgBcccUVTnW8LBYLhg4dijVr1qjuy9fXWl1djYkTJyIzMxOPPfaY5hiNeK1jxozBZZddhrvvvhtFRUW46KKLMG/ePCxbtgyfffYZ16C6AGFBxTD1ZNiwYZgxYwY+/vhjvPfee7DZbFi9erXqtq+99hrCwsIwe/ZslJSUoFevXli4cCH++c9/Gj6uzMxMbN26Fc888wz++c9/IicnBwkJCWjXrh2uuOIKAEBkZCT69++PTz/9FEeOHEF1dTVatGiBf/zjH3jkkUfc9rlw4ULMnDkT77zzDiwWC6688krMmTPH4QoNHToUP/30E5566incdtttsNls6N69OxYvXuyWmK0HvePT81qNxOjXqZfs7GyMHDkSKSkp+P777x3uWMeOHXHHHXfgtddecwhKs7j77rudEuu/+uorfPXVVwCcw2clJSUA3HPUBL6+VpvNhltuuQVWqxUffPBBQJLCFy5ciMcffxxPPvkkzp07h44dO2LevHluNbOYCwOLJEmS2YNgGCa4mTlzJmbNmoXc3NyA5AcxxiBmO959991o1qwZ/vnPfyIsLCwo3JOlS5di3Lhx2LFjh8PlrQ/Tpk3D/v37sWzZMrdkf4YJBFw2gWEY5jzl2WefRVRUFObOnYvnnnsOUVFR+PTTT80eFgBg9erVmDRpkiFi6ujRo3j//fexadMmJCUlISYmBjExMVi3bp0BI2UYfbBDxTCMV9ihYhiG8QwLKoZhGIZhmHrCIT+GYRiGYZh6woKKYRiGYRimnrCgYhiGYRiGqSdch8oAbDYbTp06hdjYWG6IyTAMwzANBEmSUFxcjKZNmyIkpH4eEwsqAzh16hQyMjLMHgbDMAzDMHXg+PHj9e5YwYLKAGJjYwHQBxIXF2fyaBiGYRiG0UNRUREyMjIc5/H6wILKAESYLy4ujgUVwzAMwzQwjEjX4aR0hmEYhmGYesKCimEYhmEYpp6woGIYhmEYhqknnEPFMAzDMOc5tbW1qK6uNnsYAScsLAxWqzUgz8WCimEYhmHOUyRJwunTp1FQUGD2UEwjISEBaWlpfq8TyYKKYRiGYc5ThJhKSUlBdHT0BVV8WpIklJWVIScnBwCQnp7u1+djQcUwDMMw5yG1tbUOMdWkSROzh2MKUVFRAICcnBykpKT4NfzHSekMwzAMcx4icqaio6NNHom5iNfv7xwyFlQMwzAMcx5zIYX51AjU62dBxTAMwzAMU08alKBau3YtrrzySjRt2hQWiwXffPON1//5+eef0bt3b0RGRqJNmzZ499133bZZsGABMjMzERERgczMTCxatMgPo2cYhmEY5nylQQmq0tJSdO/eHW+++aau7Q8fPowrrrgCQ4YMwbZt2/DYY4/h/vvvx4IFCxzbbNiwAddffz0mT56MHTt2YPLkyZg4cSI2bdrkr5fBMAzDMMx5hkWSJMnsQdQFi8WCRYsW4eqrr9bc5h//+AcWL16MPXv2ONbddddd2LFjBzZs2AAAuP7661FUVIQffvjBsc3ll1+Oxo0bY968ebrGUlRUhPj4eBQWFnJzZIZhGCYoqKiowOHDh9G6dWtERkaaPRyfmTdvHm6//XYcPHgQzZo1AwBMnToVv/32G9atW4f4+Hhd+/H0Phh5/m5QDpWvbNiwAaNGjXJaN3r0aGzevNmR7a+1zfr16zX3W1lZiaKiIqc/hmEYhmGMY9KkSejQoQNmz54NAJg1axaWL1+OH374QbeYCiTndR2q06dPIzU11WldamoqampqcPbsWaSnp2tuc/r0ac39zp49G7NmzXJbf+gQ0KOHIUNnGIZhGMORJKCsLPDPGx0N+DrZzmKx4LnnnsN1112Hpk2b4rXXXsO6descbtU111yDNWvWYMSIEfj666/9MGrfOK8FFeA+XVJEOJXr1bbxNM1yxowZmD59uuN+UVERMjIysGYNCyqGYRgmeCkrA2JiAv+8JSVAo0a+/9+4ceOQmZmJWbNmYcWKFejcubPjsfvvvx933HEHPv74YwNHWnfO65BfWlqam9OUk5OD0NBQR9VYrW1cXSslERERiIuLc/oDgNWrDX4BDMMwDHMBs3z5cuzduxe1tbVu5+Xhw4cjNjbWpJG5c147VAMHDsR3333ntG7FihXo06cPwsLCHNusXLkSDz30kNM2gwYN8vn51q2r33gZhmEYxp9ER5NbZMbz+srWrVsxYcIE/Oc//8EXX3yBJ554Al999ZXxgzOIBiWoSkpKcODAAcf9w4cPY/v27UhMTESLFi0wY8YMnDx5Ep988gkAmtH35ptvYvr06Zg2bRo2bNiADz74wGn23gMPPIBLLrkEL7zwAv7yl7/g22+/xapVq/DLL7/4PL78fLJTL/Aq/wzDMEyQYrHULfQWaI4cOYKxY8fi0UcfxeTJk5GZmYm+fftiy5Yt6N27t9nDU6VBhfw2b96Mnj17omfPngCA6dOno2fPnnjyyScBANnZ2Th27Jhj+9atW2Pp0qVYs2YNevTogWeeeQavv/46xo8f79hm0KBB+OKLL/DRRx+hW7dumDt3LubPn4/+/fvXaYxnztTjBTIMwzDMBc65c+cwZswYXHXVVXjssccAAL1798aVV16Jxx9/3OTRadNg61AFE6KOBVCIDRviMGCA2SNiGIZhLnQaeh0qPaxZswZvvvmmx1l+gapD1aBCfg0BdqgYhmEYxv+MHj0aW7duRWlpKZo3b45Fixahb9++po2HBZXBeChfxTAMwzCMQSxfvtzsITjRoHKoGgLsUDEMwzDMhQcLKoNhh4phGIZhLjxYUBkMO1QMwzAMc+HBgspg2KFiGIZhmAsPFlQGww4VwzAMw1x4sKAyGBZUDMMwDHPhwYLKYEpKgOpqs0fBMAzDMEwgYUHlB4qKzB4BwzAMwzCBhAWVgURF0bKw0NxxMAzDMAwTWFhQGUhsLC3ZoWIYhmGYCwsWVAYi+iqyQ8UwDMMwFxYsqAwkPp6W7FAxDMMwzIUFCyoDESE/dqgYhmEYpn7MmzcPkZGROHnypGPd1KlT0a1bNxQG4Yk21OwBnE9wyI9hGIYJaiQJKCsL/PNGRwMWi0//MmnSJPzrX//C7Nmz8eabb2LWrFlYvnw5Nm7ciHgREgoiWFAZCCelMwzDMEFNWRkQExP45y0pARo18ulfLBYLnnvuOVx33XVo2rQpXnvtNaxbtw7NmjXD8ePHMXnyZOTk5CA0NBRPPPEEJkyY4KfB64MFlYGwQ8UwDMMwxjFu3DhkZmZi1qxZWLFiBTp37gwACA0NxZw5c9CjRw/k5OSgV69euOKKK9DIR9FmJCyoDEQ4kCyoGIZhmKAkOprcIjOetw4sX74ce/fuRW1tLVJTUx3r09PTkZ6eDgBISUlBYmIizp07x4LqfIFDfgzDMExQY7H4HHozi61bt2LChAn4z3/+gy+++AJPPPEEvvrqK7ftNm/eDJvNhoyMDBNGKcOCykA45McwDMMw9efIkSMYO3YsHn30UUyePBmZmZno27cvtmzZgt69ezu2y8vLwy233IL333/fxNESXDbBQNihYhiGYZj6ce7cOYwZMwZXXXUVHnvsMQBA7969ceWVV+Lxxx93bFdZWYlrrrkGM2bMwKBBg8wargN2qAyEHSqGYRiGqR+JiYnYs2eP2/pvv/3WcVuSJNx222249NJLMXny5EAOTxN2qAyEk9IZhmEYxv/8+uuvmD9/Pr755hv06NEDPXr0wB9//GHqmNihMhAO+TEMwzCM/7n44oths9nMHoYT7FAZiDLkJ0nmjoVhGIZhmMDBgspAxExUmw2oqDB3LAzDMAzDBA4WVAaiLO1RWmreOBiGYRiGCSwsqAzEagUiIug2CyqGYRiGuXBgQWUwwqViQcUwDMMEA9IFntQbqNfPgspgWFAxDMMwwUBYWBgAoKyszOSRmIt4/eL98BdcNsFgWFAxDMMwwYDVakVCQgJycnIAANHR0bBYLCaPKnBIkoSysjLk5OQgISEBVqvVr8/HgspgWFAxDMMwwUJaWhoAOETVhUhCQoLjffAnLKgMhgUVwzAMEyxYLBakp6cjJSUF1dXVZg8n4ISFhfndmRI0OEH19ttv46WXXkJ2djY6d+6MOXPmYMiQIarb3nbbbfj444/d1mdmZuLPP/8EAMydOxe333672zbl5eWIjIz0eXwsqBiGYZhgw2q1BkxYXKg0qKT0+fPn48EHH8Tjjz+Obdu2YciQIRgzZgyOHTumuv1rr72G7Oxsx9/x48eRmJiICRMmOG0XFxfntF12dnadxBTAgophGIZhLkQalKB65ZVXMGXKFEydOhWdOnXCnDlzkJGRgXfeeUd1+/j4eKSlpTn+Nm/ejPz8fDdHymKxOG1Xn1hrTAwtWVAxDMMwzIVDgxFUVVVV2LJlC0aNGuW0ftSoUVi/fr2ufXzwwQcYOXIkWrZs6bS+pKQELVu2RPPmzTFu3Dhs27bN434qKytRVFTk9Cdgh4phGIZhLjwajKA6e/YsamtrkZqa6rQ+NTUVp0+f9vr/2dnZ+OGHHzB16lSn9R07dsTcuXOxePFizJs3D5GRkRg8eDD279+vua/Zs2cjPj7e8ZeRkeF4jAUVwzAMw1x4NBhBJXCtoSFJkq66GnPnzkVCQgKuvvpqp/UDBgzAzTffjO7du2PIkCH48ssv0b59e7zxxhua+5oxYwYKCwsdf8ePH3c8xoKKYRiGYS48Gswsv6SkJFitVjc3Kicnx821ckWSJHz44YeYPHkywsPDPW4bEhKCvn37enSoIiIiECGa9rnAgophGIZhLjwajEMVHh6O3r17Y+XKlU7rV65ciUGDBnn8359//hkHDhzAlClTvD6PJEnYvn070tPT6zROFlQMwzAMc+HRYBwqAJg+fTomT56MPn36YODAgfjvf/+LY8eO4a677gJAobiTJ0/ik08+cfq/Dz74AP3790eXLl3c9jlr1iwMGDAA7dq1Q1FREV5//XVs374db731Vp3GyIKKYRiGYS48GpSguv7665GXl4enn34a2dnZ6NKlC5YuXeqYtZedne1Wk6qwsBALFizAa6+9prrPgoIC3HnnnTh9+jTi4+PRs2dPrF27Fv369avTGFlQMQzDMMyFh0WSJMnsQTR0ioqKEB8fj8LCQmzYEIfLLwd69AC8VF9gGIZhGMZElOfvuLi4eu2rweRQNRSCzqE6cAAYOxZYu9bskTAMwzDMeUuDCvk1BESl9JISc8fhYMIEYPt24JdfgMJCs0fDMAzDMOcl7FAZTFA5VNnZJKYAoKgI0FEAlWEYhmEY32FBZTBKQWV6dtr8+c73v/3WnHEwDMMwzHkOCyqDiY6mZW0tUF1t7liQlUVLUUl+9WrzxsIwDMMw5zEsqAwmKkq+XV5u3jgAAEeP0nLMGFoeOWLaUBiGYRjmfIYFlcGEh8uGkOmCSgiooUOd7zMMwzAMYygsqAzGYpFdqooKEwciSbJDJQTVmTNBoPIYhmEY5vyDBZUfEILKVO1y9ixQVka3u3eX6zm4VJJnGIZhGKb+sKDyA5GRtDRVUAl3Kj2dBmRvz+NYzzAMwzCMYbCg8gNB4VCJfKlWrZyXKnlUVVXA9OnAU08Bp04FYGwMwzAMc57BldL9QFAIKuFECWfKg0P11VfAq6/S7bVruboCwzAMw/gKO1R+ICgE1ZkztExPp6UHQbVxo3z7t9+ohhbDMAzDMPphQeUHgmKWX14eLZs0oWVaGi1zctw23bRJvl1WBhw65Oex+cqnn5IwfOONICg/zzAMwzDusKDyA0HhULkKquRkWubmOm1WUSG3+0tKouWOHf4fnk+8/jr1Ibz/fuDLL80eDcMwDMO4wYLKDwTFLL9z52jpKqjOnnXabPt2apGTlARcdRWt27kzMEPURWmprPgAYMUK04bCMAzDMFqwoPIDQeVQJSbSUthPublOYTPR7q97d/oDgsyhWr8eqKmR7wfV4BiGYRiGYEHlB4JKULk6VJWV5PrYOXGCli1aAJ070+19+wI0Rj2sWUPLQYNo+eefzgKLYRiGYYIAFlR+wHRBJUnuIb/oaDkWqcijEoKqeXOgaVO6ffp0gMaphz/+oOWNNwKNGlHS1/795o6JYRiGYVxgQeUHTBdUJSWUGAXIgspiUU1MVwoqMRGwoMDkGYpKRKucNm2Arl3pNof9GIZhmCCDBZUfML1sgnCnIiLkwQByHpUiMV0pqBISgPBwui/KWJmOEFQtWgBdutDt3bvNGw/DMAzDqMCCyg+YPstPmT9lscjrvThUFovsUgVF2K+4GMjPp9sZGSSqAO6PwzAMwwQdLKj8gOkhP9eEdIFL6YSKCtmsat6clkElqI4fp2V8PBAXJyd5saBiGIZhggwWVH7AdEElQn6iZIJAWToBwMmTdDcqCmjcmG4HlaBShvsAFlQMwzBM0MKCyg+YLqh0OlSu4T4gyASVcKhYUDEMwzBBDgsqPxA0gsrVoRICyy6ohC4ROgUIMkGl5VDl5sqzGBmGYRgmCGBB5QdMn+VXWEhLEccTiPsFBQDk/KmUFHmToBRUGRm0bNIECAuj20ExQIZhGIYhWFD5AdNn+RUX0zI21nm9hqASqVVAkAkqUbshPZ2WISHyADnsxzAMwwQRLKj8gOkhv6IiWsbFOa9PSKClXVCppVoJtyonx2+j04+a4uM8KoZhGCYIYUHlB4JGULk6VC6CSk2vuJhY5iIGKJLpARZUDMMwTFDCgsoPmC6oRMhPy6EqLARqa1UFlVJz2Wx+HKMe1AYown/Z2YEfD8MwDMNowILKD5guqLQcqvh4p208OVQ2G7UENI3ycqC0lG4rByhui3glwzAMwwQBLKj8gFJQSZIJA9ByqJS9/QoKHIJKmUMVGSn38xNdX0xBCKbQUOfXIQbLgophGIYJIlhQ+QExy0+STCqXpOVQAQ4LSsovcGgSpQFkscgulamCSvQbTEpy7kcoamuJavAMwzAMEwSwoPIDwgQCTAr7aTlUgCNJquJ0gaNOllJQAUGSmK6WkA6wQ8UwDMMEJQ1OUL399tto3bo1IiMj0bt3b6xbt05z2zVr1sBisbj97d2712m7BQsWIDMzExEREcjMzMSiRYvqNcbwcNlUCbigqqykP8CjoCo+XgCAooCNGqluYq5DpZbgBbBDxTAMwwQlDUpQzZ8/Hw8++CAef/xxbNu2DUOGDMGYMWNwTFTU1iArKwvZ2dmOv3bt2jke27BhA66//npMnjwZO3bswOTJkzFx4kRs2rSpzuO0WExMTBfuFADExLg/bldLZacKALhH1IAgc6hcBRU7VAzDMEwQ0qAE1SuvvIIpU6Zg6tSp6NSpE+bMmYOMjAy88847Hv8vJSUFaWlpjj+r1ep4bM6cObjsssswY8YMdOzYETNmzMCIESMwZ86ceo3VdEEVHU0J3a6IkF822U+u/ZMVmwSnQyUGXFoqO3EMwzAMYzINRlBVVVVhy5YtGDVqlNP6UaNGYf369R7/t2fPnkhPT8eIESOwevVqp8c2bNjgts/Ro0d73GdlZSWKioqc/lwxTVB5SkgHHGqp+mwBAHVBFRRJ6VqCKj6eWtAAHPZjGIZhgoYGI6jOnj2L2tpapKamOq1PTU3FaY3Gc+np6fjvf/+LBQsWYOHChejQoQNGjBiBtWvXOrY5ffq0T/sEgNmzZyM+Pt7xlyGa9yowrZ+fp4R0QJ7ld64AgJySpLJJcIb8QkLkAXLYj2EYhgkSVGJCwY3FJeFHkiS3dYIOHTqgQ4cOjvsDBw7E8ePH8e9//xuXXHJJnfYJADNmzMD06dMd94uKitxElXCoxEy6gKHToUJhgdNdtU1MdajEk6spvsREElPsUDEMwzBBQoNxqJKSkmC1Wt2co5ycHDeHyRMDBgzA/v37HffT0tJ83mdERATi4uKc/lwxPYdKy6GyqyVrcYHyrhNB4VCJJ1dWdxdwYjrDMAwTZDQYQRUeHo7evXtj5cqVTutXrlyJQYMG6d7Ptm3bkC76wYFcK9d9rlixwqd9qhG0OVR2oRVaStsFrUMlBJXaAIVrxYKKYRiGCRIaVMhv+vTpmDx5Mvr06YOBAwfiv//9L44dO4a77roLAIXiTp48iU8++QQAzeBr1aoVOnfujKqqKnz22WdYsGABFixY4NjnAw88gEsuuQQvvPAC/vKXv+Dbb7/FqlWr8Msvv9RrrKYLKi2Hyi60wirIyRJulJKgSEovLKSlmqASDlWQhPw++QTIygIee8y9phfDMAxzYdCgBNX111+PvLw8PP3008jOzkaXLl2wdOlStGzZEgCQnZ3tVJOqqqoKDz/8ME6ePImoqCh07twZS5YswRVXXOHYZtCgQfjiiy/wz3/+E0888QTatm2L+fPno3///vUaq+khPy8OVXiltkMltJjK5MXAIEmeHaogCvmdOwdMnUothpYuBTZupGKpDMMwzIVFgxJUAHDPPffgnnvuUX1s7ty5TvcfeeQRPPLII173ed111+G6664zYngOTJ/l50VQRVVrCyrxr8oaoQGlogKoqqLbagMUeVXCxTKRhQvlfo3btwPr1gEjR5o6JIZhGMYEGkwOVUNDdZbfmjV0BvYnpaW01Io92QVVdC2pJU+CqqSEzKKAI9ypkBD1au9BJKjmzXO+X89IMcMwDNNAYUHlJ9xCfnl5wPDhwPjxZGP4C2+Cyq6WoqRyhKLaY8jPZgPKyowfoleEUIqPd++LI9YrtzOJ6mpAlDT7299oyYKKYRjmwoQFlZ9wE1Sffio/OGuW/55Yp6ACgFgUqwqqRo1kHWNK2M9T/hQQNILq8GGgpoa6/Nx6K63buFEOATIMwzAXDiyo/ISboHr/ffnBH38EjhzxzxN7E1RhYZDsg4tDkeosP4tFjrQFpaByFCc1V1BlZdGyfXugc2caVmkpsHu3qcNiGIZhTIAFlZ9wElT5+cCff9KKZs1ouWePf57Ym6ACYGtELlViaLFjnK6Ympjuqaincn2QCKoOHSjdSxTlP3DAvDExDMMw5sCCyk84zfITZ95mzYB+/ei2olq7oegQVDXRlCTVNKZINUUJCBJBFeQhP6WgAoC2bWl58KA542EYhmHMgwWVn3ByqPbupTsdOwLt2tFtEwVVVSQJqrRo7UJTpgoqT0U9AVlQFRcDtbUBGZIa+/bRsn17WrKgYhiGuXBhQeUnnMomKAWVOPv6S1CJaXkeBFVlOKmllChttdQgHCrAxGJZ7FAxDMMwMiyo/IRXh0rYG0ajw6EqDyWHKik8SB0qb4IqIkIuR25SB+eKCuDMGbrdujUthaDiHCqGYZgLDxZUfkJTUAmH6uhRuRq4kegQVGV2QdUkLMgFlVZSOmD6TL/Tp2kZESH3ahaC6vhx/3y0/iQnh6p5fPyx2SNhGIZpmLCg8hNCUFWV1cgxoA4dgNRUqklgsxlfOqG6Wi6C5EFQlYSQoEoI8S6oTOnnpyzsqYXJiemnTtEyLU2u2ZWWRjWpND/asjL/ze6sByUlQN++wMyZwG23AYcOmT0ihmGYhgcLKj8hZvk1KjlD1R+tVqBpUzr7pqXRgyJmZBTCnQI8CqpikFqKDwnSHCrxpKJkuxomC6rsbFo2bSqvs1iAFi3o9okTKv/Qpw+QmQmsXBmQMepl5UpA0VMc771n3lgYhmEaKiyo/IRwqBJKT9KN9HQSVQCQkkLLnBxjn1QIqtBQIDxcc7NCiYRKrBSkIT9hizUAQZWe7rxeCCzhYDmYNk12p55/3q9j85UffqClKJH20UfksjEMwzD6YUHlJ4SgSiy3CypxtgJkQZWba+yT6sifAoACGwmVGFuQCypFmxw3glRQiY/ZSVCVlzu7UmvWANu3+3F0+pEkWVC9/TblhJ05Q211GIZhGP2woPITQlAlVXoQVP5yqLwIqvwaEirRtdpqSZhDHPJTxyeHasMGylJv2hS48kpat2aNv4eoi0OHKDwZHg6MHAl06ULrd+wwd1wMwzANDRZUfkIIqpRqFUGVnExLkwTV2WoSKlHVDdihMnmWn1oOlfK+k6BavZqWw4cDvXvT7SBxqEQUsmNHSqjv3p3uB8nwGIZhGgyhZg/gfEUIqqYIPocqt4IEVURlEAqqykp5pqInh8pUxeejQ/Xzz7QcPhxo0oRuB4kFJARVp0607NGDlkEyPIZhmAYDCyo/IWb5NfMkqEzKoTpjF1RhlUE4y09ZpyEmRns7kwWVEExeBZUkAbt20e0+fWSRuHs3CcewML+P1RNKhwpgh4phGKaucMjPT4SH0zR6VUFlcsjvTCmJkdAybYdK7EJZiSEgCEHVqJE8K1INEwVVTQ1w9izdFhUwBEpBJUmgDfPz6cvQrh3QqhWJqqoqueCriYghCIeqWzdaHjtmalcfhmGYBgcLKj9hsZBL5dGhMkFQSRKQXUouibW0yH7Wd8c0QaUnIR0wVVDl58tvm4jgCYRjVVlJ2zka/rVoQUlKFousWoRzZRKS5B7yS0iQK78fPWrKsBiGYRokLKj8SJOIEsSihO4oY0NCUOXlAbW1xj2hDkFVUQHk1ZBYsdTU2Ls3uyN2UVamqbnqzeuvU87OfffZW/QA+hLSlY+bIKjy8miZkEAlv5RERMgi6+RJyBaQ6KAMyD1qTFYsOTnU5UeYZ4JWrWhpdCF/hmGY8xkWVH6kaRjlSNkiIp3zgZo0obOYJMlnZyPQIaiKioBSKB7XECTR0bSsrfVPX7rqauCppyj5+a23gC++cBlPEDtU4iNzdacEqam0zMmB7FApBZUop64sT24CQjA1ayZPogCAli2dH2cYhmG8w4LKjwhBVZ2QIjd8A8jWEHEVI8N+OgWVhBAUwXOzPuUu/BH2++UXuQcyACxZohgg4N2hEgI1CAWVSJHLzYUsqETWNxA0gko8vRiOgB0qhmEY32FB5UfSrSSWKuOT3R/0Rx2lsjJaCntJBaFXSu0NkrUEVViYPAFN7NZIvvuOlp0703LFCrsTpqftDGCqQyUS0nUJqgMH6I4yphYkgur4cVpmZDivF4KKc6gYhmH0w4LKj6SEkENVGetBUCltmvoiEpF0CKqyUO+l0MVu/OFQ/fgjLZ98kkJkxcXAr7/C95BfSYn/krw08MmhEvUTmjeXN2gggoodKoZhGP2woPIjKRI5VOWxKe4P+kNQCStJmRDjgjDEKsI8h/wA/830s9mA/fvpdq9ewJAhdHvbNvielG6zKTLaA4MQVElJ6o8LQVVwqkx+w5WTEoSCKSw0rdI7IAsqDvkxDMPUHxZUfiQJ5FCVRqs4VP7oReeDQ1UZ4TnkBzjP9DOS7GwaqtVKCdAi7Pfnn9DvUDVqJOelBTjsp9ehqj1hL6ceFSV/3gCNXfyzUDUmoOVQiaT0s2dNKJuhxeLFwAMP2FU3wzBM8MGCyo80qSVBVRIVoJCfDodK6KeqKPNCfsKdat2a8rScBJVeh8piMS0xXa+gspxW9KdRTkoAZFvIxEQlEXF0FVTx8bKYFi12TOXTT4G//IXqbNx4o7GlRhiGYQyCBZUfSayhkF9xVIBCfj44VLVR5oX8RJ72RRfRUgiq3bsBSW9SOmBaYrrepPSwsxoN/wA5p+rkSWMHp5OqKuDMGbrtGvID5CEHhaB65x359t69wFdfmTcWhmEYDVhQ+ZH4anKoCiMCFPLTMctPPJ0tRn/Iz9+Cql07cqqKi4GKXLs48uZQKbcJUocqusCekC760SgRxaqEqgkwojVORIR6LljQCKr9+4ENG4CQEODuu2nd+++bOyaGYRgVWFD5kfgqElQFocEX8pNizcuhEiE/UUkgLAxo355ul+faK8s3AEHlLSk9rtSDQ+VU/TPwCKHUtKl7NBIIIkH1zTe0HDkSuPdeur1+vX+qzTIMw9QDFlT+QpIQW04ny3OhwRfyc4TUTMihOniQlqIDCyALqtpCu6BSVpbXwoQcKmVxey2HSqxPgwdBJdoPmeRQnT5NS9fmzoKgEVRbttBy+HBqONikCX3Pt241d1wMwzAusKDyF6WlCK+lPnnnrAEO+elwqKwJ5uVQidJMymTo1q1paSmxiyM9gsoEh6q0FKipoduNG6tvExZGjzVF8Ib8vAkqsd50QSWEU69eFPa7+GK6v3ateWNiGIZRgQWVv8ilcF85IlFUq9IKxmSHKjTRnJBfTY2c1K08mQtBFVrhg0NlgqASH1dYmMe3GcnJQLonh8rkkF+DcKiKiuT4cM+etLzkElr++qs5Y2IYhtGgwQmqt99+G61bt0ZkZCR69+6NdevWaW67cOFCXHbZZUhOTkZcXBwGDhyI5cuXO20zd+5cWCwWt7+Kior6DdR+osxBCsorVJJUTC7sGdbEnJBfbi6FzUJCnENmophkRHUdcqhKSowboBfEx5WQoJ57JEhOVjhUngRVkDpUQSGotm+nZUaGnJjWqxct//jDlCExDMNo0aAE1fz58/Hggw/i8ccfx7Zt2zBkyBCMGTMGxzRaeKxduxaXXXYZli5dii1btmD48OG48sorsc2lOGBcXByys7Od/iIjI+s3WLtDlYtkqGozo0N+1dVyfR4dDlVEkjkhP3EiT0mhwp6C1q2BENQiymYXhUHuUAk9rEXTxAokIt9+RyXkJ3Ko8vNNSbAWn4PQda4EhaASv1PhTgFyjY3Dh4Oo6ijDMEwDE1SvvPIKpkyZgqlTp6JTp06YM2cOMjIy8I6yTo2COXPm4JFHHkHfvn3Rrl07PP/882jXrh2+E5157VgsFqSlpTn91Ru7Q6UpqMQZuaIC6hv4iDIupyOHKjLFnJCfljPSqhXQCIoTZJAKqny7RvImqNo2ohdaExqhnmzVuDEQGkq37eI7kOh1qPLyTJxQJ8J9nTrJ65KTZbdqz57Aj6k+7N4N/P3v8utiGOa8osEIqqqqKmzZsgWjRo1yWj9q1CisX79e1z5sNhuKi4uRmJjotL6kpAQtW7ZE8+bNMW7cODcHy5XKykoUFRU5/blhP0nmIEVdLylDWka4VEL1hIQA4eGqm0iSrJ+i08wJ+WmdyBs1AlomUuhOCgkB9DiELoKqshJ4803glluA334zasTO6HWoWoVTuK8wWqVKOkCfU6Bm+hUXU89DBeIptQRVkyam6j1CbToo4FJav4Gwaxc1rfz3v4HBg6lAKcMw5xUNRlCdPXsWtbW1SHWJUaSmpuK0OEt74eWXX0ZpaSkmTpzoWNexY0fMnTsXixcvxrx58xAZGYnBgwdjv4eryNmzZyM+Pt7xl+HauwNwCvmp9u61WuXSBUYIKvEkUVGayT0VFRQZBICYdIUYcTnZCvwR8vN0Iu/QjARVdWSs5wQlgYugev114K9/pU4lomSR0egO+VkoVpYXppI/JQiEoPr0U3J0Ro50fPiS5N2hsljkHDcxiSDgnE+C6vHHgXPn6HZuLvD00+aOh2EYw2kwgkpgcTnRSpLktk6NefPmYebMmZg/fz5SUuS6UAMGDMDNN9+M7t27Y8iQIfjyyy/Rvn17vPHGG5r7mjFjBgoLCx1/x9Ua3HoL+QHG5lHpqJKuNNIapdvFnCRpKqZAhvwAoG0qCarKMB3hPsBNUH3yifzQ5s3Azp11HaU2egVVqkSC6kyIB0Hl78T0bdvIrqusBFavBp56CgB93SornYeghoismeJQ1dYCR47QbS1BtXu302qbDfjsM+CXX/w/PJ84dw744Qe6/eGHtPz224BOpmAYxv80GEGVlJQEq9Xq5kbl5OS4uVauzJ8/H1OmTMGXX36JkSNHetw2JCQEffv29ehQRUREIC4uzunPDW8hP0DOEzLiwOpDyYTYWCAkOlKO6WjkUfkz5Kf2kbVoTMKoPMR3QfXHHxRVCQ8HRoyg1R99VM/BqqBXUCVVUsjvhE0lId2xkb3UuqgUajRfful8/623gKoqx2cQH+85siqGZ4pDdfw4OWphYXLfQ4GoAit6GNl5/nlg8mSKrD32WIDGqYevv6bX0r07cNttJBDLykhUMQxz3tBgBFV4eDh69+6NlStXOq1fuXIlBg0apPl/8+bNw2233Yb//e9/GDt2rNfnkSQJ27dvR7raVHdf8DbLDzA2qdqHop5xcaCYjpfn9+csPzWHqlk8Ccti6BRUikrpixfTzTFjgKlT6bbO1Dqf0Cuo4svIoTpS5eF7JGJq/hJU339Py88+IwVbVASsXetwnBRGrSqmOlQi3Ne6tfN0UEB2rA4fdsxs3bXLYcABAF56ybSKFO4Id2riRPrdXX893V+2zLwxMQxjOA1GUAHA9OnT8f777+PDDz/Enj178NBDD+HYsWO46667AFAo7pZbbnFsP2/ePNxyyy14+eWXMWDAAJw+fRqnT59GoSLENmvWLCxfvhyHDh3C9u3bMWXKFGzfvt2xzzqjrEOllkMFGFtHyYeQn4g0OnK4NBwqf+ZQqTlUaTH0PhTU6qhBBTgJQpGEPnw40KMH3d61SzM9rM7oFVTRRSSoDpalQ5I0NhKTI/whqI4coTfAaiWVOW4crV+82OE4afUiFJjqUGnlTwFUlyo0lKYf2svuf/45fdbjxgH9+lEB2U8/DeB4tZAkau4MAEOH0nLIEFpu2mTOmBiG8QsNSlBdf/31mDNnDp5++mn06NEDa9euxdKlS9GyZUsAQHZ2tlNNqv/85z+oqanBvffei/T0dMffAw884NimoKAAd955Jzp16oRRo0bh5MmTWLt2Lfr161f3gUqSPofKyF50yqR0DYSOdEQodQoqI3OohHZIVunGkxJNgiq/yseQX0kJNm+mm336ABddRKGssjLg0KF6DtgFvYIqIo9O9Mdrm2qnyAmHSiQrG4moJN6vHwm3K6+k+z/8oFtQmepQHT1KS1FCX4nVKleCPXgQkkRRNQC4+WbZoQwKQXXkCF1FhIXJRUnFsWX/fv+5kwzDBJxQswfgK/fccw/uuece1cfmzp3rdH/NmjVe9/fqq6/i1VdfNWBkCkpKHLWlcpGM8ECG/HQ4VA5B5eX5lTlUkqRv4p0nJEnWDi6VK2hdOI3jbGUMamvdIz1u2McvlZTgVLGEkBALevQg86JzZ+qru3MnCSyj0CuoQk6TQ5WNdOTmamzvz5Dfrl20FHadcEUOHEDJsXMAEoPboTpxgpau+VOCtm0ph+rQIfyROAwHDpCIHjuWri3uvJM++4IC75+VXxHuVI8e8sVOYiLQoQOQlUUu1RVXmDY8hmGMo0E5VA0G+yW9LTIKpWgU2KR0PzhUNps8K6w+FBfLxdzVal3GWew5VFKMvgrddkFlkSQ0QikyM+Uxd+tGS6Nn+ukSVFVVDhVyCk21HZ5ACCoxIy4x0aEsG+3+HYD+kJ8pDtXJk7TUElRt2tDy4EGI66bhw+knlZwsRwr9VY9MNxs30nLgQOf1AwY4Px4E7N8P6LgGZRhGAxZU/sB+BpKaJAOwoLwc6nk0JjlUenOolLsyIuwn3KmoKHXdF1ImktJjoVaJwo2oKCqQCSAWxejdW36oa1daGt3yTZegsmfeV1vCkIcm2nrJn4JK1Gjq0kVe17cvPe0hfYJKhPyC1qECgIMHHZMPBg+WHxZ6RRhEpiEUvfLLCQRdT8JPP6WvyvDhwF13GZ97yDAXAiyo/IE9IV1SJAqptu8wMindB4fKIai8CLqwMPoDjElM9xTuA+B4H0oQ4zifekQxUzEWxcjMlB8SYT6RimMEkqRTUNnttfyINAAWbUHiL0FVUkIz4ADZoQIcgqrZKd8cqoALKknyLqiEQ3X4sEM0KU0gcdt0A0gIW+XnAMDxZQ2C9jl5eRQiFceo//wHWLjQ3DExTEOEBZU/sDtUllR5Xrpq2M/IpHQdDpWvIT/A2Jl+XgWV/X0oQYw+hwpwElSiPBEAtGhBS42+2XWipES+cneIUjXsgqoohmpQaQoS8UZUVBib+S9O0qmpzqrJLqja5G8BoD4xQInSodKcqegPiorkL1yzZurb2D/g2qPHcewYGZXKeSTitpisYAo5OfTmWSzO/QgB+f6BA8bE0+vBe+/RV7BnT+DRR2md0WmlDHMhwILKH9gFVUhqsiOR22M/PyPLJvjiUPkgqIwM+elxqPQKKsmLoMrNhXbZCh8RujckxKNudUzlL4+nGlSaBlRsrFxc1UiXat8+Wnbs6LzeHv5LqT6JOBTqdqhqaowp5q8b4U41bqz9Rts/YOuZbISjEl27OvfTFgbQ2bMmts4ReWxt2ri/jqZN6fdXW2tqs2RJIkcKAB54ALj/fnKl168HduwwbVgM0yAxRFAVFRXhm2++wZ4gsK+DAnvIz5Kc7KhErXpSNzKHSkfIzy2HSsfzG1ktXa+g0p1DBaAmgs6icSh2KlmUkCCfYHW7XV5QzpL0OOPR7lBVNSFBpXlCVzbMM7J0gmjZIkoLCBIS6EQOoCP2ehVUERHyVySgienewn0AqT37j6sZTjpSkgSNGsmiOivLD2PUg1a4D6DPXqg+lxY6gWTfPvq6REQAEyYA6elUtgyQ68IyDKOPOgmqiRMn4s033wQAlJeXo0+fPpg4cSK6deuGBQsWGDrABomiFLUQVB5DfmblUAVbyM/XHCoApSF0xm+TXIyICHm9xWJ82M+t7IQWdkFVm+Yl5Af4J49KJI7Z67MpsXWgUFMmdnsVVIBJeVR6BJXiA87AccesTiXCoNu71+DxuTB/PpVrePllufk4AM+CCpAFlYlNnn/8kZaDBskXT0JQcSF3hvGNOgmqtWvXYoi9rs2iRYsgSRIKCgrw+uuv49lnnzV0gA0SIagUDpXHkJ8RDpV4goYc8qtDDlWhjd7D1snuotRoQSU+Jq+Cyh7yszbz4lAB/hVUrg4VgLLWdBLvYtntOQ/MjinFPUXJBK38KUFGBgCgBY6ZJqh+/536By5dCjz8MPDMM4oHtUKvgg4daGliyE8IKtH/EgAuv5yWGzbIkzAYhvFOnQRVYWEhEu1nxWXLlmH8+PGIjo7G2LFjPTYVvmCwh/yQnOzQN35PSq9LHSodgs4shyo72+VqX4O8KnoNorGyEn85VOJt08TuUIW3IofKo1byR/sZDw5VQToJqm5hu0XFCY+Y4lCJho9e+mlWp9MHbKageuAB5+/piy8qqvOL5s3t2qn/s6L0gxlIEvDzz3RbKahatSKtV1sLrF1rytDqzKlTVIlCz7GDYYymToIqIyMDGzZsQGlpKZYtW4ZRo0YBAPLz8xHpqX39hYJKyM9jDpWRIT8P739dHCozcqgqQmMhSQ6jxyNnyuk9bBYXOEGlN+QX1UaHQyUqnBplBUiS/IJVBFVOEgmqTpK+vB1TalF56qCt3CycPuBO0cdUw5diIp2/UjuPHiUXx2Kh7+qll9KEvffeA/0ehc0apILq6FHS8cquOAJR06shtRv85RegfXsq6tuzp386OjGMJ+okqB588EHcdNNNaN68OdLT0zFs2DAAFArsKioqXqhIkpNDpSvkV1JS/3npXkJ+NptsRAV7DlVMGjl3evKoThXRe5gS5S6o7BEh3flY3tAV8qupcXz+cR1IUJ0756FQoihoZZSgEtMaLRb5DVBwLIYEVfPqI7o+VFOqpQtBpdZBW8HhWhJUHaLUFbOyFpmo0G8kon/g0KFkpol+6vPmAdJBu00VHy+HdV0RgiovL8DTKImtW2nZpQsQHu78WBAWcvdIXh41xhZf6T//pNpaDBNI6iSo7rnnHmzYsAEffvghfv31V4TYYwdt2rThHKqSErmujDdBJUJ+Nlv95/Z7Cfkpo3pugkpHyM/vOVQ1NY7X0DiD3hdveVS1tcDxAhJUTcLdX4M4H585U6fhuqEr5HfmDIljqxWN25O9Y7N50EtGO1Qi3Jee7n6WBHCqKgk5sNtOOqa/mRLyEx+YF4dqdwkJquZQ/6Kkp5P7UlMjp2UZyTff0HLCBFqOG0c/6aNHgazv7akP7dppTwmNjZUtQKO7eOtg2zZaurpTgCyofvvNP2LUaN56izRp167AunVUjWTBAlk0MkwgqHPZhD59+mDs2LE4efIkampqAABjx47FYGX/hwsRcTKIjgZiYjznUEVHywfb+uZReQn5iQvg8HDFJkIZlJXRWUdjiIAxDlV+Pi1Vq4wrniCxhT5Bdfw4UFBL2zaCe9jUX4LKo0Ml4pRpaQiLCHGIV01BIt4M8ebUFxHuE/FOF3Jzgd3QP10/4EnpkqQ75Lcll15jk5Kjqg6v1Sq/DaKShFFUVVFCOgBcdhkto6KAq66i24dW2vOnvHXmNjHsJ8SGmqDKzCRxWFLi8jWZPx/o3p0S1ExvlEhUVACvv063H38cuPhiYPx4uv/ee+aNi7nwqJOgKisrw5QpUxAdHY3OnTvjmP0gfv/99+Nf//qXoQNscLicDDzmUIWEyBZQffOovIT83BLSAWerRUPQGRnyc8vhUiJef2go0lpS/QNvgmrfPqpZBQAhJdoOVW6uMVfZugSV6OpsT6gW0R6vgsooh0o8v8YMubNnfRNUbg5VeTlZMa1bA598Us/BqlBSItuhXkJ+vx6lsgrhlSWaIbPWrWlptKDasYOMaEXPaQDA6NG0rPhD4VB5wkRBJRyqnj3dH7Na5faDYjusWQPcdBP1J8zKovoKosWRiaxcSSG/Zs1kITVtGi0//9y4wr71pqqKevp8951GLzKmoVMnQTVjxgzs2LEDa9ascUpCHzlyJObPn2/Y4BokGoJK1aECjCud4CXk51bUE3C2q7wIqvqG/GpqZFHmUVDFxCCjBbl23nKf9u2jGYFO/68gOZkMQJvNmEl0unKohKCxF9D0GjLzl6DSmCHnq6Byc6juuANYsoQUyq23UiawkYjfT0yMc+lzF8rLgb3HopEL+xusMfNAVI4wWlCJZO3+/Z0jeiNH0jI21x7CU1abVUM8HuCQ37lz8ldFK+1VzJzcuRP0I7rrLroyGTqUHKpz54AXXgjIeD0h+g5ee63ceGD4cBJYxcVBMlOxqIiszPHjycYcOjSIlB5jFHUSVN988w3efPNNXHzxxbAojiaZmZk4aNKMlaDBJf/Dq6AyygLSGfJzEzNC0GkkphsV8lPuXlVQCbUSE+PIpfbFoVIThKGhskNkRNhPVw6VCPnZBY0QVJqCzugcKh2Cag/s0990FJR0EoR79wJffEErRDhOxFqMQmdC+r59FOU7afU8lVMIKqONFJGsLXKNBE2bUrisFY7QCmGRaSFmYhrZdFIHopRERoa2bnUSVEuWkCsVHw8sXiz3q/nkk8BNp8vJcbOaa2poOIDsTgFk/ot6WsuXB2Z4HnnySWdlt3Ej9flhzivqJKhyc3ORkpLitr60tNRJYF2QuDhUHnOoAOMsIJ0hPzcx42Wmn1F6Tzx/VBQlCrshHKbYWJ8ElSeHCjA2j8qnkJ+vDpVROVRe8o+cHKpDhzx8MQnhUBUVAbXv/JfuXHUVsGIF3V64UF99C73ozJ8SpRAK4/UJKqMdKpF/ZO837cSIYbVoCe3iqk6IJC8xmSBAiPdPq+YoIDtXf/wB4LXX6M7//R/9AIYMoVyq8nJZZPuLkycpLpmaSo6eSF4D3Tx3jkKvrum7QlCZXvH90CHg7bfp9vLlwE8/0e0PP5RrlTHnBXUSVH379sWSJUsc94WIeu+99zBw4EBjRtZQ8SWHCjDGApIkryG/+gqq+uo9j/lTgFPIT3QcOXNGnjCpxv79nh0qwFhB5VPIry45VPUtnaHy/K6cPQucRhpqYhMojOOlEG98POXTWGADPrXnTP3f/9HZtk8fcgxEuW0j0CmohMNSnWYXJBrq2x8OVVWV/LaphctGds5GOKpRg1Dv1d6VDpURn79OhKAStbrU6NyZwpnS6dOQVq+mlaI2hMUC3HAD3V661H8Dra0FbrwR2L6d7h89Srlb9h+UGNawYXK4TzByJDlVe/b4Z5anbt55hyqNjhwJjBpF8cixY+n3d6HnHJ9n1ElQzZ49G48//jjuvvtu1NTU4LXXXsNll12GuXPn4rnnnjN6jA0Ll5CF7pBffRRLdbVc6MhLyM9NDHjJ4TIq5OdVUClCfoq+t5rmR1UVuQ56HSpRGqw+1Cfk51VQVVcbk1PhQVBJkhiHBTXt9eVRhYSQKOyOHbDm59GLtxfyhb3+HNatq/+4BUL5egn5CUEQ2sazQyUMoJMnPdQC85EDByjUFBurrpcGpJJ6O4oWKC6zet6ZuHooLTXOpdSBEKSeBFVMDBlC12IhLDYb0K+fcwhTNP376SevTmedWbCAQmWxsVRFtWtXip//4x8AZEE1fLj7vyYkkIkGAOvX+2d4XqmtBf73P7p9zz3y+kcfpeUXXxgz44cJCuokqAYNGoRff/0VZWVlaNu2LVasWIHU1FRs2LABvcXUkAsVX5PSjVAsyp37kpQOBDzkp8ehsljk84xW2O/QITpB2qI9F0cNlpCfZg5VTAxZQED986hqa+XscRWHp6xM/qpYu+hPTG/SBBiGNXRnyBDZCrD38zQ061coX5WUAiVCEMR28RwyS0sjM6WmxrjSD+Ity8xULzGVUnYEAHAYrb0XxoyKkl9rAPOo9IT8AMqjug72CqYTJzo/2LUrKcrycrmHjdG88w4tH3yQEtbefZfuf/wxKvcfc8yJUBNUADV9BkiLmcLq1XSR1bgxcMUV8vrBg4E2bejA+u23Jg2uDkgSsGsXhfyNKE54nlHnOlRdu3bFxx9/jF27dmH37t347LPPuEo64JaUHpAcKqWzERGhukmDCfnZ7R9veVSi72zqRXZBpVEcVZyrAhLyq62Vn0hvyM9iMW6mX04OvQ8hIXLykwIhKCIigNBuvpVOGA4VK+Dii2mZlWWMBagcpMr4BbW1ck3StD6evyhhYfJ3wKhUL/GWabo79vjiEbTSNwlShP0ClEcl3F1A7s+sRe/2xRgCuwN59dXOD1osslvpD0GVlUWlGkJC5DoIgwZRj5/aWuQ98zYqKuj7mZmpvguRgWKaQyXE0vjxzsdmiwW4+Wa6LRysYKeqimb2du1K9UE6dXLKZ2PqKKisVityVA6geXl5sFq9WNznMypFCQOSQ6Wc4acxKcDrLD8/16HyxaEC5HOMVjKxyGHJ6OC5OKpRDlVNjSwqNQWVUtDYz+K6Ko0blZgu3LHUVNn1UiDGkJQEWDr7UDohsRaXwO5CKQVVYqKsKjZvruuonVH0wdTiyBHKrYuIANL6KWJ6GsXGRFjOqDwa4e5oncTFl/YwWusTVEY3nfTC0aP0NY2O9pqqhuFYjTDU4HhEW/USEMIC8kePGjF9b9Qo5zZK9tlxjRe+j1BUu5WuUBve1q0mVSkQUwzHjnV/TDh+q1Y1jLDf9OnAp5/S7YgI+r5ec02A2ygEN3USVJJG8mRlZSXCVdpdXDDk58ttzu0nhIDkUHlJSAfq7lAJved3h0qRQwWQGw5ol+cRgqp9B4s871slj8qo1ilKraaZQ6UiaLyG/ADjHCodM/wAu/kj1MC+ffJ3VoMelu1IQCEqIuOBHj2cHxSutI4SDLpQ9MHUQoT7OnQArM3SyIaqrZXffxf8Jaj0OFQbN3p9ewMuqMRvqk0bbSEi6HScBMGS6tHqzRT82aNGJLu7ipFx44CUFESV5mEEfkS/ftq7aNWKvkrV1RSpCigHD9KBKjSUXDVXMjMpJ62y0mliR0kJsGgRmX6BbPtz5gzNiBSHESd++YX6+wDUcyk3l36AJ08CjzwSuEF6oLISePhh+sw7dQLmzg3oPA8APgqq119/Ha+//josFgvef/99x/3XX38dr776Ku6991509BaUP58RR2xFVnVAc6g8CCrN/B8fBFV9vpy+OlTeBJUI+bVrJ/+PmkOlS9DoQLw9ERGqLfIIlYRw8fznznk4OBpVi0qnoEpKAiWpxcSQ9eZl6navAgr3HWh6ibvz1aULLY0SVDpCfuKpOnUCuYEi4U5DkBgpqCRJLmquWQTd7lDlxbZGWZk8QU0TEwWVN+I3kqBaahut/jXp1ImuMEpLjVUsRUVy0ViR/C6wWoHrrgMAXI/5HgWVxSJXgndUfA8UK1fScvBgdVvbYiFxCADffw+AdGmrVlSkdNgw4JJL6t9EQw+vv05fwzFj6Of04osux/vHHqPlHXcAf/kLfeYffUTrPvnE9Ir5NTWUovbyy+TA7t0L3H574CdR+iSoXn31Vbz66quQJAnvvvuu4/6rr76Kd999F2VlZXhXJA1eiIg8DhGvQoBzqOriUOmc5Vdbq+NK2wO+5lCJg71WnVjhULVrJ/+P2pFH5DDVV1DpKpkgknTsCemA3AjaY4NkoxwqL2LESVBZLLJL5SXs1+k0CaodjVUyfzt3pqURJ9OqKvk98BDyE4JKPLU3QSI+DiNyqHJz6WtmsWiUmKqpcRwHUvvTBl7Dfio5VCLPW+M6p17oFlQHD8Jy8CBqLKFYg2FU4NMVqxUORWNk2G/NGnov27VTDTUWX3E9AOAaLELfbh5qq0A2Vb0KW6MRkzXU3CmBcN9++AEHD0gYNYqOVcnJdOxdv56qRvjTaVm4EHjgAfr5JSTQsf4f/1DU7P31V5rJGxYGPP20/I8DB1I4trYW+Pe//TdAHTz3HE02jYkhZ+rxx2n9Y4/JujYQ+CSoDh8+jMOHD2Po0KHYsWOH4/7hw4eRlZWF5cuXo3///v4aa/AjBJWiMW3Ac6g0qG/ID6if5vPVoRLH0BMn3GtRlZXJbWnat4dHh0oIqsJCzf7P7lRXu/Xa0lUyQcWhCgtD4Bok+yKoAH2CqqYGzY9QUvKGiGHujwuHavfu+tclEAMMCZGVqApugkrk1wTAoRJipHlzjfkfx4/TCSYiApmXklP4669eduoiCFevJhE4bBhFVEURUaPQLajsxVsPpg5CMeK0Tcg+fWhppGIRWeRDh6o+vDH0YpxEUySgEE22rPC4K+FQBVRQSZJcTkTMhlXjkkvoi3TiBGbdtA+FhRRFPXSIBEJ4OLX+81e199JS4N576fYDD9Ah6Pnn6f4jj9iLus6ZQytuvdW9TsjDD9Pyf//zX+kMLxw/Lo/53XdpmM8+C9x9N6277z7P9QyNpE45VKtXr0ZjEaZgZMRZXkVQGeFQrVhBlZk7dnSJsOgI+dVVUIWFyVEevwoqIYbs70dyMt2UJPfJTyL00LixXTB5cKgaN5bzRHR1yDhzhj6/2Fjg7393rK5LY2SB17CjGQ4VICcBeRJUW7civKIY59AYm6u7uz/eti2dEMrLfbb93fSvGH+TJiSqVLDZ5BwmvQ6VkYJKOKaaLfrELIqWLXHxJfQafvnFi8Mgxp+djSNZlRg/Xv4qHDsGXH99/dxhV3QLKvtZPLcXdXzWNCFFsacdO+o/OIEQVCKr3IXfNofgK0ygO176xwqHaseOAOYkHT1K54PQUGr4qEVUlKPEe+xvqxAdTQ2dY2Lo3+67jzabMcM/LtUbb1CmQOvWFOYDqETWlVfSNeVTd+dAEjMV//pX9x1ceild0BQUmFb+4dlnaazDhpGbJ5g9m9JZ9+0DPvggMGOpc9mEEydO4O2338ajjz6K6dOnO/1dsAhBpQj5GZlD9c9/0mSqrCy5EwQAryE/SfIgaMQKsYELFosxiem+hvwsFu08Kqf8KcCjQ2W1ynpFV9jvxRfpCFNVRTa2vQtuXUN+gCxgNCsLGJVD5Q+Hyl458WcMRW6eyuHCapXn3otscS/YbHIHk2HDFDM5dc7wKyujK3eHqAmgoPIqRoSobN0affqQ1jxzRjt0DYA+EPtv99WHTyI/n6Jo2dn0Vhw4APz3v/UfO0DHAl2CqqrK0SIl9Aovgkoolp07jameWlUlT8fXElS/AfNBYT98+61Hd6RdOzqGlZUFsNOLiPP27u1s86sgjbwMAHAZVuJvf3P+XB57jL4a27cbP5GypkYO682cKeeGWiwktCIigNa/fgpLdTVdyYvmjkqsVrKEAFPKP+TmUogPoGikcpJFfDydMwHgpZeMvSjRok6C6scff0SHDh3w9ttv4+WXX8bq1avx0Ucf4cMPP8T2gAeqgwhxQFc4VELjaIb8dDpUZ886z0xfsEDxBfES8isvl6/M3ASBDnckIIJKKBZFTE2cMF27ozhm+LWH8/9oZG96rQUlOHdOLiQoPhf7ZVt9HCqhDzQLSxpZh0r5hC6I53cIKmHx7N3rFuJ0sGYNLTBMW5CKD0prBoELzz0nC4SffwZuu81+9a1jhp9wZjt2VLQa0ZlDde5c/afOC2GkKUaEOmzVChERcq8/j3lUFovjNez8nuzY//yH5hY8+SRt8vrrdXAoysqAr74CfvjBIXTOnZO/yx7bDG7YQL/J5GS0+AvFzA4c0NAt7drRsae01Ity1Mn27fREiYmKH7mMJJGg2ogBqEzJoN+96C2pgtUqa4GAnZ6E+tEQhEo2NBoJgEpUPHCvc15CkyZydYX33jN0hPjhBzpkJSUBkyY5P9ayJYUAb8LnAADp9ju0d2SfIICVKwNe7POjj+jQ1bevemR1yhQ6HB45QudMJ6qqDLcs6ySoZsyYgb/97W/YtWsXIiMjsWDBAhw/fhxDhw7FhAkTDB1gg6IuIT+damXVKjqQZGbSF+TcOcVMW52NkUNCVDrLB1hQaQoSFUElIlKuuRviStlRlNCDQwX4kJi+Zg2dcTt1cjhT+PZboLCwzjlUgKwPvAqqQOdQtWpF7lhVlbr9UF3tyANZjeEoLNS4yvNBUFVV0dUvQOkX0dEkqubP9z5+QCV/CpB/bxrFPRs3ln+HGpUVdCNeombIT+FQAXLtU6+J6fbX0ALHcN11sulzyy009n37fIyonTlDB4uJE2n607BhQFmZY/xNm3rMEJCTdi67DOnNQtC4MWkyVRMyNFQun2FE2E9cOWoUmDp5kkxkq9WCkAnjaeVXX3ncZcAT04XD5mkKop0ZX/ZEHhIRjyI0Oexez23qVFp++aWxtbQ+/JCWt96qPnP50Wuy0AvbUI1QrIi7TntH3bqRAisvN7avpxckiS48ADlfypWoKLn9pMPlXb2awqwREXTusNc1M4I6Cao9e/bgVrvNFxoaivLycsTExODpp5/GCy+8YNjgGhxi2npdcqi8hPzETIUrrpBn2jpaqOlsjBwXp3J8Eifz4mLNrG1NQVVRoTvbzyWip72BQvE5dbtXIA6KItnUm0Olu3SCyB4eOpTO2O3b0xXM6tXeQ341NfLZWkzjtyMMI82Qn1k5VBYLhSQA9cKcmzcDpaWQmjTBn6Dkc9U8NG9TMhV8+y0NMz2dchzsLdlIZOkI+akKKpGUfu6c6nfAYjEu7KcwoNQRgsq+gV5BVZlGaQItcAwPPiivj42VO5Z4SRWSkSSaM370KP14w8LoYPF//+dz/hRGj4bFoqM6hrCAVKcC+ojIwu/VS/Xh336jZdeuQNgN9hP94sUej0VCUBldOmHPHuChh4A773RESOmqQRykhEWpwdq1wNpfrVhjsc8EVJmSNngwnVJKSz0acT5RXEwOFUCiXY3GK+gLtxKX4bFXkrQdUosFuOoqui2KsQaA9evpAic2lvIMtZgyhcyE1auBnMdeBUaMkHP0KiqAjz82bEx1ElSNGjVCpf3L27RpUxxUHEjPXuhVU5W9uWCcQyWOU4MHy0LCcTHoJeTnMdymXOlLcc+iIoq7NGnitdiHJKkaUM6obCCO0bt2yeGOsjL5KtkhqIxyqISgsieJ4jLKbcDKld5DfmfOkPgKDXUTBF4FlRE5VKWl8vdARVDZbPLrdwgqQJ6htWWL+z7t4T7L0KFo3IQOFao/bx8cqnnzaHn77fRW3XknhWTWrwfOZekP+TkJqrg4+Xus4VIZIahqa+U0OcU1kzNCUNkVi4j4ZGV57iW4NY922LPxUbcokQj56D5XrV1LZ8uICHJaV66kN/mzz2BbvlI5PHVycmRRY28t47U6hsjHEzMG6oNQPY4fuDNCUPXrB5q637QpHY9WrdLcpZtDdfYsJVl360ZtVOowlXLxYtJ8c+ZQOG7ECNqlbccfJKoSE70qVzE7reJiCvupvQaLhQqSA1Tw0wh++IH050UXyReuTkiS48e6KHwStm4FlizxsEMhqL77zrgu5K7jcVF0n31Gy/HjPaepifpa9+AtpMyeTvuZMoV+qz/95L1dgA/USVANGDAAv9pPPmPHjsXf/vY3PPfcc7jjjjswQFTOvVDp2tXJBlLmUKkqfB1J6ZLkXHdJTKpxXAx6CflpNkYG6OpVjEHjhK4qqD74gK6AS0tpCooHd6K8XP6NqQqqyko5lqTYoH17Gl5RkZwe88cftK+UFEVkzUstLV2CqqxMFhXCVhCCasUK74JKhHubNnUrfin0gV8dKmWjPre4LolqkS6gKqjUHKrVcv8+j++hcvaAh0Qfm01u+XbllbRMS5Nvn9rh2WGrrVWZ4SfQmUdVH0GVnS1rZtHSyImKCllx2UN+jRvL7o5W+QRJAhZvo/H3STvu5iKPGEHL3bt1tkx8+21a3nYbPfnQoY7pYkO++RsssHk+zwuXpEcPx8lGvAZNQSXi8/UVVMrwsxeHql8/kPUw3h72+/przd127UqbnjkDnNl6kv75zTfpgLJiBdUq8KHJ99Gj5OxUVNDbe/vtdNh/803g2yfs4b4+fTyWot+8mYxAqxW45Bn7sWbDBlWX9dprabl4sTFpPwsX0nL8eI0h/vEHXblGRKDp3X8BQInrmj/vSy6hg+OZM8b29ysrA/72N/rBRUTQ5/Ttt6iuphAoANx0k/fdPN5/FV4HhfZqHnsSeP99cpGHDze0JkWdBNUrr7ziqDc1c+ZMXHbZZZg/fz5atmyJDwI1PzFYEWrHjtI0Us371ZGUfu6c7DK1aSNfURw/bk+78SHkp4qXE7rbEGtrFVXf7HiYMqs8Poh9OaEUQgoxEBYmH6dF2E958eo4EHhoPQPoFFQ7d1LYLi1NnqU5bBg9yYEDjjOZpsMmnBGXcB/gY8ivrld3ynCfyhFSOEuxsS71k0RIYudO58+hokJWAMOHe27h07Ilna3KyzX6VhB//knf5UaN5EgjANxwg/0pj3sO+R0+TMOKjFS58Nc5068+xT3FR6yimQkRD4yJkb90kJNltQoMrl0LbMym8TerdR9/UpLs1tpNQ21yc+WzpTKx5Mkngfh4NM//A9dioWdBpQj3CbyG/MQPdd8+Hwq+qbB7t1xhUiWuWlsra39HepJIiv7mG81QQHQ0XaCFoxJRE8bSl6lNGwr3jB5NF3Q33KCztgqd40XNqJUrKR9J5CSdW24XFF7CfcKduvFGIGNoGxLh1dWqwm7wYLogzs9XN5N9oaZG/oj/8heNjb74gpZXXIH7Ho9HdDQ9r+gG5EZ4uFzR3qjyCYWF9MJfeYW+19XV5LhefTVyrpyC4nNVSE52bi+qyuHDGDDnelhhw1zciq+7zHR+3OPsDN+ok6Bq06YNutl/4dHR0Xj77bexc+dOLFy4EC0VJQP8wdtvv43WrVsjMjISvXv3xjpHIpE6P//8M3r37o3IyEi0adNGtZL7ggULkJmZiYiICGRmZmJRfXxVD4JK9bcu7J+KCs1LDzHVt3lz0kwJCfI5f+dO1C/kB3gVVG4O1a5ddPKIiQFEztw332js3LnElGp5ISGEIiMVU7cI8XaKHHExecbp4lWnQ+UxGp2VRcvMTFmQxMc7Mt/TTtJRzKtDVR9BZbPVvc+ElxlyyhJPTrRoQSeWmhrZPgLICi8rIyWSmelZlIaFyYLGg1MpxMCgQfQvgjFjSOTFVXh+DcoZfm6CJgClE4SgUvbpdUKZkK4QtaIY9uLF6lf4774LHAON33rimOpG4qQhTENNli6lz7JHD+djUWIiTdsC8E88izatNayGmho5uUYhqIQjePiwxle0RQs6UFRX657tqYrIY+jeXfXCICuLfubR0YpeioMH0++uoMBjXLRbN+BJPI24QzvoO/bTT2Qzff01qa1Tp6h3iRf+/FOeMfbee/J3+bbbSMP2BQmqc221BdWuXXL47tFH7StHaof9rFa54LqHyKYufvuN3qrGjTVy5hXhPkyahORkuR6WR5dKWM3i+wN6r954g77jPpWps9lI4G7fTgfQb74hsf6PfwAhIWi2/EN8hysx6cpS9YsbQVERcNVVsJw7hxNN++IuvIsPPvTSwLIe1FlQ5akcWQsKCtBGT4OoOjJ//nw8+OCDePzxx7Ft2zYMGTIEY8aMwTGNg+jhw4dxxRVXYMiQIdi2bRsee+wx3H///VigmD+5YcMGXH/99Zg8eTJ27NiByZMnY+LEidgkzuC+4tI8NjxcPi6oCiqlZaMxhUMIqosuktc5hf10zvLzKqg0alG5RSU3bKDlgAHyfNtff9UUNCr55s54SLAS4Y5ly+g3Jq6QRDTOacdeHCqPF59CUDmmDtqxh8Ra5NBlsVdBpXK2Ffrg7FkNAyoqSraNXEStzUYOutcZlk6dj93xmO9tz5NxslDEVeZVVwEWi/cm00Lha+QwAXJitmvx69hY+jyT4TnkJ9xJtXI4QSWoXI6BI0bQz/zECfdUnZwcOjmfgF2Il5WpflGHDaOll+tHOdFFnNwUVN11P4oRgx7YgU6HNBJi1qyhDzkpyWkeelKSHOZULVsWEkJKV3MDnQjVrJrYIx96+vZVXHtZraRmANkmUuHyxN/wKOz5nu++K39nY2Lkqpavv+412VJorvHjZedO8MozpegMeg3/935fzfCcaI03frycfqbM2VRD6K36tlJZtoyWo0ZpOK0bN8oXzPbvkZiRu3mzB5dq1Cg62W3fjoI92bjhBnp/7r+fhGb79sATT+gs//HxxyTMoqLoCf/yF8p3+de/ULt4CUoRjdFYgafXj9D+vGpq6Py0axeQng7p64WoRCRWrVLUvjOYOgmqI0eOoFblm1JZWYmTRrV0V+GVV17BlClTMHXqVHTq1Alz5sxBRkYG3hG1g1x499130aJFC8yZMwedOnXC1KlTcccdd+Dfir5Dc+bMwWWXXYYZM2agY8eOmDFjBkaMGIE5oty+r7gc7S0WL+1nIiNlxaWRRyXyp5SCSpz3DxyA15CfOD5rdvMQSkuvQyVsooED6USWluZcwtqFuiSkC8RF8ubNdK7IzSVRI9KcnP5PQ9CJnG+PVQm0BJU9NtW2YLPn1+DBoRL6oLbWwxg0XMJ77qGryPR0L1emqhnnMh4nAIoD+fLldLSrraXkUsARE/AaNhUqw4Og8jTxafyVVWiMArqjEfJzyp1xxUvpBCNyqDxoZkI4M/b8KUFkpPw9dp2p95//kKnTs3+ErFhURKEotr1njwcTs7pajuWIqcAKjpU2wdu4BwDQ+O1n1c9sIjHl2mvd3GIhHjQn8hmRRyXyp9yS5AjloceJ22+n5YoV6rUdystx3fe3wgoblibcKCclCa66ii6GS0rkSpEqlJTIb5FyNqYgcs82WGHDKUtTfL2+KZ55xn2bVavo52W1Uk02B5deSueCXbtUQ+fiZ7p+ff06lalEdJ0RBTqvucZxTklOllvUzJqlIYqSkx0XoC+NXI4vviCdPWoUmYg1NVTV3G6UalNYSH1vAKrWqcwPALCu0eUYgR9xzpKIhL2bSPiLH6fAZqMBC1G2eDEyBjZ3XKCLvs5G45OgWrx4MRbbLdXly5c77i9evBiLFi3CM888g1YGxiOVVFVVYcuWLRglrqbtjBo1CuvFFEgXNmzY4Lb96NGjsXnzZlTbk6C1ttHap0cuvlj1jOtxpp+OUuRqDpWYWOUkqDRCfl4Fla8hP6VDBXjNWPUqqDxYWGlp8mQfMZFk9GjnkJE3h0pXzrcXh6pTqU6HSkVQhYfLY/Aa9lMorm++keusFBXZZxBppVgJpaPxIXuMCF56KTlkWVnkNC5cSBnYTZo4rBGvDpV43a4HNjulpfKFgUtUHABw5UDacS1CcKTI/TWIYo6AhqASboNGXEGZQ+V2MpAkSlKdOdNjk2efQn4uTJ5Myw8/lI8DxcVym7QHHoBHly09nd5im83DhLTff6cvSlKSPNlAwaFDwMv4G8otUbBs2uSu0EtL5XpOYmqhAmULF1W8CKraWsrD0fiKEOL9d7V+7IhDj5ugatMGuPpq+izVSvc88QRiT+zFKaTj9pI33OupWSxyztn772vaKAsW0NvUrp08GdgJe0J2bS+6anj6aeec5/x84A57jcy773Y53DRpIucyqNRzuugi+opUVXlwKmtr6cEvvlAVloWFcg6ak8svqKmRVb+yjwtkl+r334Hvv1d/+jM9LwcAdD21DM2aUarG8uXkTn/wgVyFXczQU+X11+lA07Gjqvr6+mtgEwbglavX0Q97zx46Fy1cSBcV+/fTyeK//6Un/OQTx+9hyhTax0cf+acNkU+C6uqrr8bVV18Ni8WCW2+91XH/6quvxqRJk7By5Uq8rCMGXRfOnj2L2tpapLpMr0lNTcVpjUTY06dPq25fU1PjKO+gtY3WPgFy4oqKipz+AABPPaW6fX3bz4hedkqtKgTVwYPwGvIT52hDBFV+vtz7RVw2i6tJjYzV+oT8APlkJBAHJAf1dahqa2XV6iqoevQAQkKQVnsK6TilLag8JKUDdZvpJ9oL3XknCbm9ez2kqglB5ZYkRXgM+SUkyG/yk0/SZSRAV3j2UGR9Hao//qBzVGqq+gy5JjYaYB6a4JvF7oelw4fpucPDNUJ+Isx2/Lhq9VExI7Sy0uV7IEnUB2faNLr07tVLTthzoa4hP4AMoxYt6DUIA+Rf/6KLnfbt7frFS9hSOHuak6hETPWSS1STFQ8dAnKRghWt7qQVzzzjLBw+/ZS+fxddpJrpq1tQqYT8du8mId2nD71/d9yhMkmnqEh+k1UcqsJCedeqk8lnzJBfh3LW6tKljjjdg1H/RU5NouMQ5sSkSXSw27tXs8+LMG9uvVVjdpz9w8m4pi+mTKG39+qrKddqwwYSMceP0/F79myV//cQ17NYZBGk6lbv3Usf0iWXUP5Rp07AzTc7HRfXriVR3q6dxqHqxx/pYJGUJOdb2ElJkXOp7ryTJvQpWbsWuPlzSkwfY12BDb/UOun6O+6gkB9A+3H9fwA01ldeodszZ7pcOdOhWsy5GDQ1ky4AO3Qg63n8eDpAtG9P4YywMPrAxKQFkOnWuDF9BvXNRVPDJ0Fls9lgs9nQokUL5OTkOO7bbDZUVlYiKysL41SsZiOxuHyLJUlyW+dte9f1vu5z9uzZiI+Pd/xliCOsRlXc+jZIFvUilS3ihFt1+DAgldUz5OeLoBKiKSNDPst6EVT1CfkB9hYI9qmxTz0FXH65ywZeHCohqEpLNSp9Hz1KZ9qICPcCQzExkOwnit7Yoi6oqqvlWJJGgSIhIlQPIspB2j+DkyflHPHHHqPQH0CNU1XRKag0SzxNn05H7NWrKabTqJF89ET9HSplrrGnAeYgxXHAVCI0To8eLrMUBWlp9EOrrVUVJJGR8vffqVr6ihVyTw+RVD1pkmp8vj4OVWgoFYAEqOf2gw/K5duee86ey+JFUInDi3Dq3BC2hVM8XEZEJLcM/zudeNatkx2p8nI5Oeivf1UVZMpaTqpOqUgG2rvXaYOcHJp4oDw8fPQRaVgnxAZNm8q/BwW//UYCpU0bjQuDfv2owmNtLQmJ48dJIIg8z3vvxaledH5SDVvGxckFn9z6lNBPUxTv1GwIItRu3754801KQaqoIAEyaBA5dElJlJCueoGpTExXcck09db+/fS579pFKRyiZMPnn5MDbb/oF+MXCe5uCOto4kQ3MQPQ9VZmJkUkR4ygj7q8nEylUaOA1aV9URTaGPG1+cg47a78n3ySInjKqJ7b8xcUkChSCCHBL7/Q7zchwa73WrYk8Txjhnxws1rpJLF1q1tPnchI+drxzTc13oN64JOg2rRpE3744QccPnwYSfYj7CeffILWrVsjJSUFd955p6Pgp9EkJSXBarW6OUc5OTluDpMgLS1NdfvQ0FA0sZ94tLbR2idArXcKCwsdf8c95I0AOvr5eXGoxPCU9ccyMuj7XlUFVBUGUFAJG9kxxQZeq/7pdqg0NggJoYvOkyfposUNIcSU9awUKJPxVV+i0llQydK09aTLrD7YrK75jh6lg3hUlFvbGYFYrdn6xCXk99VXdDwdNIiOGWJ68+rVGla1F0HltU1ep05kjcfE0BF/yRKnjevrUAlB5TJnw22AuUjGL7+4O3kiAqIaZgE8d9O2Iz4DR+kESZKnWE2fTg80a0YZq2LauJ2qKvl3qCqo8vPlL5dG2sNf/0rpHiUl5D7abOR0OM4bXgSVuNpXDfnZbHKZCy+Cqkm3ZvLrvuceUip//zu5tOnpcj6SCx06kJgtLtZI6m3blpRjaamTsH7oIXpJ7drR57pkCf2mP/kEzuJZZ7jPY6nDN9+k15CVRe/nyJE04OHDgZdfduS6a+aBCUH1zTdugmbJEoqIZWaqthik74Bwuvv0QWQk6bIXX6ShxMTQ7n/9VTPnnj67yEg62KmE7IRptHOn4jdSUUEhrrw8Uit795Kw+/VX+uFu3kxfNJvNs6DKy5MFtkb59EaN6DNr2pT0b6dOdH544AE6/I77Syii/2K30RSz/QRWq1wm7dNPXa7BJUl+8N57VY/FIhp5zTWKC6uYGKpBkZ1NfwUF9Nwa3yORC7ZkiTGtJ5X4JKieeuop7FR8E//44w9MmTIFI0eOxKOPPorvvvsOs1V9zPoTHh6O3r17Y6WLNF+5ciUGaTSgHDhwoNv2K1asQJ8+fRBmV99a22jtEwAiIiIQFxfn9OeJ+jhUxcWyzlKeq61W+bjtEFR1zaHyJSld5EeoCaqTJ1WrrevOofLQKM9icXbonFAKMRWXymqVc59Uw37iBKZR8qOssyyoVDWfsp+HhrPpdjJ3xWWmpWgxIWoW9ukj16FRbZ9Rn5Cf4OabaYBHjrhNxfNaekI4VGfOqLYAEaEazROJfYA1jZOp0KVi9rskyTOT3NxJJV5a4Ijvj+MzWL+e7JZGjcgGjI8n1QNQoofihCpyr8LDNUSpEOWpqRrF1uh7uGgRGX/9+tE5wNFfDPCaWC/cvYMHVa699u6lL0d0tKZqdWo78/jjdPLNy6PQ/Vtv0YPvvqv5OwwLk89RqqIuLIxUE+A4TmzaRFEXi4Vm4icnUysd0XLob39ThP7E2dXX/CklSUkkJEQic2goJc4sWQJERHjvkDN6NJ2pDx50u0AU30mhudwQYca2bR0H27Aw0qpHj9JxcOFCDTEmiIyUBbFKTCo5Wf4NOaqcvPgiff7p6ZTcJK68Bw6k1x0eDnzzDUoff97xusWsUSc++oh+u716eexB2KED/XSUNaxatCAttHAhEDrW/iMVP1oX+vWj45okuWTJ/PILvefR0aqCrqZGrt2q2mrGaqXXrnnlTrRvT8cRSdJVJcMnfBJUO3bswAhFXPWLL75A//798d5772H69Ol4/fXX8aWYAuEHpk+fjvfffx8ffvgh9uzZg4ceegjHjh3DXfbuhzNmzMAtig/irrvuwtGjRzF9+nTs2bMHH374IT744AM8/PDDjm0eeOABrFixAi+88AL27t2LF154AatWrcKDalM46kh9cqjEVXFMjPv3RORR1ZR6zqEy1KESgkpMkQboRCR2LhK+FNQ35OeVsDD5ckUjj8pj/2EhqDTCdYUXkaDqZ/kd1hCVZFVxAvdQMkS3Q1VQgJoaOR1GpLKEhsq3VadNiw+5riE/QWysqiAQIb+CAo26jUlJ8megohq1cv5dB5jYgRSfsr3W7t2k1SMj1TvKO/DSAkcIKsdnIJKZJkyQ37epU+mJtm1zShZSpsipamYP4T4lTZqQVtu0iaIUTk1pvThUycl0vpAkFTNYKJyePVVDNZLk8jUND6cvklCosbGUjC1mfmggdIpm2NElj0pcX0+e7DxZ65//pNdy5AglKwPwOMPPZpPDvh4FFUCfwe+/0/fwzBl6XfZjoxBUrv1BHcTEyGVEFAmLtbXy707UFXNDvCleCnp6xUM9KsClJtnBg3KF0FdfdW+j0r+/w/WJfuFJjMFSdO2qcmFVWSnPkLj7bo8V3gG69vzmGzqeHj9On+Pdd9sjxeI79fvvmldgs2bRUyxYoLhAFO7UTTfJx0MFq1fL6V2aIUudCIP2gw/q399TiU+CKj8/3ykU9vPPP+NyxSVj3759vYa/6sP111+POXPm4Omnn0aPHj2wdu1aLF261FFMNDs726kmVevWrbF06VKsWbMGPXr0wDPPPIPXX38d48VlP4BBgwbhiy++wEcffYRu3bph7ty5mD9/vqMSvBHUx6ESB3+1dkPi/OEph6q2VtZJKmkJzg9oFGryGvIDZHdHRVDVNyldFzrzqFQ1o/jOaCTHnG3WHTWwIlnKVc8REidw8YGo4Iug2rGD3pL4eOcEbHFVqZov62GWnyTpCPl5QexWkjREqcUiu1Qux4CiIvnCQFNQ2QfYbnAyrFYSlMKwEFelQ4dqXjMQvoT8Kirk+e/2Ru8ASPGIY5qiwK/X/CmNkgk+IQTVqVMayX4eehArBZUK587J5rFjiI0bU2ikuJhOfGIKlAdEuE2zTJ9ipt/hw7Kr4yheaSc6mkwygAyW2lp4DPllZdH3LipKY1KCKxYLfeAuvwexa0eXCTWuvpqWCkH1+++0fUKCB72kKyapAyHoVq1SPZ6J48DqnyQq8lRZSSJMZWYmAPpc774bFknCZ7gZ43upzIR9/31SFs2bu88C8kBCgspFRno62amSpNnNuXNnOb3pySdBBwiRtyYSRl0Q4b7x41WvGXxi6FDK3a+q0kgjqSM+CarU1FQctl+JVVVVYevWrRiouFwoLi52hNL8xT333IMjR46gsrISW7ZswSWXXOJ4bO7cuVizZo3T9kOHDsXWrVtRWVmJw4cPO9wsJddddx327t2Lqqoq7NmzB9e61iipJ7pzqDwIKrXUHKFhQiq1Q35KAaEpqLwkyIjh1ZaUy8kTPgiq+pRN0E19Zvp5caiKqqOwC/YjsVrfByMcKkXYVVj5F1/snEYgZlS7hVvKy+Uvl4pDVVQkn5/rKqhCQ2XN5zWPykV0CncqLc1D2Qm7QxXXNsVRk/LFF0n3KFvTeUS8/yKPxQUnh2rtWnpj0tPpyKpEpRNtfRLSdZOcTC6fJGleNmsKKnGZr9H/TnxF09NVGsnGxLhYZdqI68zNmzWcSnFc2LsXb71FL2XUKPfDBUCzvpo0oUPK0k/OyjM2HJUuZUQO3cCB9TuZxsfLqRKasxWvvJKslq1bHcczEb267DK38lyEJMmCykO6iC569KBZR2VlqtN6hw4lAdMx6xuawRgWRrljnlylV1/Fjsh+SEQ+Hlh3nXM05NQpsgwBsk1VZ334iLgoUcmjEsycSW/z998Dx2d9QAepgQNVQ9YVFXK+nWq4rw78+9/0lhkZVPNJUF1++eV49NFHsW7dOsyYMQPR0dEYovDgd+7cibYertIvVHQ7VB5CfmoOlTgwWKu1Q37CdIqN9XAgUgoqlZkl4gCcXHiAHk9IcD8z10dQBcCh8hjV9CaoioDNsGcEqzURFmcrIxyqwkLHcdk1t1gcZ06ckEN4AGSFExqqqljEto0aee7K7g3deVQuDpWYou4xd0RYaCkpjvyaTz6RE5mbN5fzyTQRT7Bvn+o0NCeHSpR7vuIK9xlt48aRkv3jD4dQCohDZbHIT6AR9lMVVJLk3ORSBR1fUV107EhfsbIyjUm9duUk7d7jCOXdf7/6vqKj5dJPy16276xVK9ULK2F0uJQMrBPiLVLNRQTo2CZ+fI66i3RXsxjmvn10sI2M9DCVVScWizytWaVgU2Ii0L9LKV6DvUbTI494sH6JY2ciMK7ia+QiCQmHttL3Pjubxjx+PB0Y+/Sh6YhGIOKiS5Zouq3t25MZZkUNIubaC+6JjHEXFi6ki+Hmzd2vf+pK377O7S6NwCdB9eyzz8JqtWLo0KF477338N577yFccWXz4YcfuhXJZHzIoaqjQxVeqx3y85o/BchnyqoqVVEnhpdaojgqu14NCTFiVsivrg6VJNVPUNlsuhwq4Y6cO6eas+2k+IQJ5hpaiI2VNYPTyUAZ7lO5Sq1vuE8g8qh8nennNX8KcBJUAwbIrr8wu555Rocz0aYNOS3l5aqCxCkpXSmoXElMlBN17NaIV0GlSzXqwEselVJQOa59Dh+myQzh4aruDiB/RZXFgetCSIicryzy/Jywf8iWvLOwFpxF27Zyz1w17r2Xhi0JdaaSP1VdLfcwVC1G6SOaTq8SYZMuWYL8fDk9SlNQiULQffvqdvs8cvPNtNSo/P5sxDNogeM4G9NS7mPjgZUrgRPIwGNdviNFvHYtfZlTUymHICGBEhdV7bc6MGgQJWrl53tsQPnEE8A1Id8ipeI4qhOSVEslAHKB46lTNdrl1JGXX65/ypsSnwRVcnIy1q1bh/z8fOTn5+Mal+kOX331FZ7SKG55IVOfpHRvgioEtYhAlfMTKdAlqGJi5LOVytlSDC+9zMNlrtkhP505VG6C6uxZ+mAsFrmctgvFxS6CSuniHTpEn1tEhMezVWKifJxVrRlrF1S15woc0SO16I3qycCIGX460O1QuYT8hNbwKKhcsuZffZVCfhdfTBfpXsN9AJ0MXGaZKRGCKvrkfqrbExYmJwC7IrJe7YLKY9uZigo5FO7FKfCKF0HVsSO9zIICxdss1HWXLponc6McKkBOilYp5g00agTJfizohD247z6Nhuh20tKoIHcX2POnVKaB/vIL/ayTkjyU3fAB4VB5FFTCYVm9Gqu/L4HNRlpVo26vLKjqG+4TXHQRTRCQJIpNKdm6FcO30fS0x2Pf0GU7i4T6ptcOoDe0Xz9KXBN1IH7+WVOM1wmrVQ6diyRIFdq2BZ5PngMA+CLhLkjh7uHGzZtJ/1mtutL8fCIyUi7WagQ+CSpBfHw8rCoyMTEx0cmxYgivOVQektI9hfxSUoD4CIXdUVeHymLxmEclfq/Nq+omqILBodIM+YkTV2qqZu5AURHwB7qiKiSC3h9ljo5IxOjSxePVncUif4aqYT/7AG3naIBt26rnvKlWq65vDSqd1NWh8noyr6yUG3PbVV94OE03X7dOjn7oQsw+VRFU4v0fUW3P6xgyRDupS8xm/uknQJI8O1QH7KHw+Pj6q1YvgioiQn6JjrCfl3AfYKygEi7RTz+p51Hlp9AAu4Xv1SWEH3pIFlS5qe4J6SIZ+S9/8SzO9CIuSvbu9dATr2NHCt9WVeHkx6QcPZbsMCp/SomofPnRR/JMlHPngJtuQkhtDb7Gdfhv9pVaXxUHNpssfi+7DCRaN26ki8Fdu+hPV6a/j4gk+a++0j75bd6Mdmd+QRXC8MiRe5Rpiw5EP8Qbb/QgaOtBfX+ySgz4ejLeqI9DJdwAtZOhxQK0z1B8UevqUAEez5ZieK1qdQiq06fdXmgw5FBpOlRC3Wi4UwAJqipE4FiaPdahbKTltQS4jMcGvXZBZS0phAU2136gDkRyrwijATCuZIIXvDpUGknpXidBigEqM9/riod+cqJa+lgsoRVq4T5B//50gZKTg8qtfzqGqCqoxIfRvr3X6eZeEYJKtXIm4ZZH5SUhHTBWUPXqRR+Tsi+ckg0F9Blc02GPro+zW1cJPUJJUM3d7Cyoqqtlg8Ol6HWdSU+X+7mLht1uWCyOBtOJG6hxnWa4r6BATiir7ww/JYMH09WEzUahsFdflcuTN22K9/u8C0BzIp2D7dvpNxsbK08qgMVCgrFz5/p/Z7UYNoy+zwUF2j2z7P21dnedhNNIx1//6lzUd9kySmOzWHRFNk2HBVUAqE/ZBHHyEnrHlYuakaCyWUNVHRLx/xrnWhkdDlUbeDgzKusQuVgwARFUdc2hEhagh8r4Yrr58Vb2bMi1a+UHxRFZh6DymG9sn+UXItkQgxJNQSXciawsRd61l8bIRoX8vDpU4vIxJ8eRKFZYKOs9zXxtpeKrrwXhpUFv27RSDMMauuNJUEVEOIpeFS2iy/voaI2ZsrpimjoReXgaTZ4BFUHlpWRCWZlcGswIQWW1ypFSV0fh5Eng+4P0GfSLU/8M3MjORlxNPmpgxbNfdXAyOL/5hr5vyckaxSjriMgD02jZR9jDfsPLliA6StJOhhY7uegiY+0OgIqWiV5106fT8SYxEVi+HAPH0TFb2XxZDVHOatiw+pcb8ImQELnq/jvvuD9+/LjDfuzwzgPo2JG+p9deS8eMrCw5xHf//c6lD4MVFlQBQETi6uJQeYnmoFUa7bTKql6gR8xE9qAXnJ9A5WwZFUUzMVrhCK1QS74WdV8AN0HlNeRnZNkEX2f5iTdILaZqR2i0nA72Ga1KQeWDQyVmZaqaD5GRjvyXBBRoCqrWrUk3l5UpnK4Ahfy8OlRNmshXD/bBCV2QnOzh4zVqgIBcaOiPP1Rn+l0e/hMiUIXipFbej9Ai7Lea+nVoFvXUlXWvE6E6jxzRaJgnC6odO0AXBKdP08A0wjbCIUxI0OFU6+TGG2n52WfOrZDefhvYZSNBFXdCp6Cy1586GdUORVWRjlmeNpvcp/vuu43LlwbkOQceBdXQoagKb4SmyMbU3lu1GlHILX+MDPcJGjemjPj77yeB/3//R6KqSxeHY7ZqlUYJCzsif8qIhH6fmTZN7hupPG4CVKqhuhoYNgxRg3tjwQI6jP/6K51KMjNJYHXqJNcuDXZYUAUA8UP0NYeqokLWWFoOVcsU2mlliLqgUkye8owHQRUSArSLOI4w1EAKD9cOj6kIqqoqubWEqgFVXS1PezMi5OdHh6qoyyA6qh8+TLZ7VhbZTWFhHvNXBB7SzACLBbb4BABAPAo1ozdhYXLuuyPsV9/GyDrx6lCpFPfUVZ5J95dUB5mZdAVQVCQ7RwqGldHsvn0XXeE91GFPTI/ftgZW1GjP8BN9dYy4hG7enL5jVVWafYqEbtq3D6jatE1+bo2WN8pwn1HRnSuuoN/UqVOyQ5KdTcW298DuEh496iFJSYFdUMUO7IKQEGpR8+yzlEK0cycdFh54wJhxC3QJqshIbIolFXJzzLfa24mYm0u7JsOIi6PQ2Nq11BrI/kXs25d+8gUFGjMuQY+JunaaIUt/0qwZFRwDKClSlFD46Sdq5gcAL70EgH66v/xCx7eqKhLUgwcDa9bUr9xLIGFBFQDqmkMlTlxWq3ODXyUtkklQlUvql09GOFQA0CmcjspVzVprz1tVEVRKw0jVoVAKoPo4VCK52FdBpcOhEoIqKiVWPir973/At/aD7PDhHipWygiHSlVQASiPSAAAdG5aoF2EFbIR4phNHSyz/AC3mX5O/eO0MFJQhYbKuUS/u3S7lyT0PE2C6vdkrf4hCnr2BBISEF5ehN7Yoi6oamvlCt9GJPaGhsp5VB5a6CQm0lOfXeE53AcYmz8liIiQC8w/8gidAO+9l64J2w1IgiS+LCqi1g37+5d4SRc8/TSteuIJuc/aSy8Z56wJ+vShw9iJE+rNDwAKV793joqfdT+gMVPt7Fn5e+Yxa914rFa5uoNaMjcgl4HSbOgcCB5/nE5gv/1GDttXX1FCnCRRHQTR9Rv0E8rKorTAPXvI2DI6iupPWFAFgLrmUCnzn7SuLJsm0k5La/3nUAFAh1A6Kpc381DIRkVQCX0TEaERvxeKKzy8fvVbhLul0pwZcO497BRJ0eFQOaV4KWMdX3xBt5VdQj3g0aECUAgaZM82BR73o8yjAhA8s/wA2b10Cfl5dKiMstAEorCMq6DauRONi46hHJFYGzLM+36sVkfY7zKsVBdU+/eT9RwdbZxi8ZJHpYzuVf0W2Bl+Sp54gr5yf/5Jv+9Fi+g3/tprgMVLLpsTiqbIM2aQkEpMpGucl1+mc7DRNGokz5h1aa7hYNUq4FvpSlRZwhF+YI/sRCpZuZKEQbduHrq3+w9RmWDhQtWazI5uLgY3//CN5s2ptQ1AMxYnTqTffI8ejqR0JSEh9FDHjv7Ll/cXLKgCQF1zqMSJSyvcBwDpCeRQFddEqcbRfXaoNOyHi0ClAkpTPRyVPQgqvyakA7JDpCGohONjs7mYWD44VHFxIPGUkEAnu23byFHwUVDl56sPM6c6AQDQuVmBx/24OVQeZvlJkvGz/M6d00zvcRNUAXeoAFlQuTacs59dluFyHM3VGUOwJ56Mwgp1QSUmJXTtalzFQaE+NRwqQBZUMfsDO8NPSWIi8OGHsrEcGkrNZvv1g1uTZE1sNllQde6MkBDKvT57lsKJ06cbO2YlIrFetdk4qGtKEeKxr5XdlRYhKiXCGgqwOyW47DI6dJ44IYf2BGfPkkMF6Ogy4G+uuw747jv6XqSmUm5VQ4rl6YQFVQCoaw6Vnhl6iVG00zJEuaVclJfL4sGroBKqTUNQtbbRUbko2TdBFZAaVIBXQRUZKX8OTmE/H3Ko4uJAn9X8+eSmWSzAf//rseSCkthYOXSh5lKdLKG4brukAo/78cWhMqKPn0Ds3mbTaOED1M2hMlpQDR5My82bne00u6BagPFa6Unu2Ds/DMQGtGqiEk4WkxKMqDgp8NLkGaA5EPEoQFLhIa/Pb1SVdDWuuoq+h19/TXn0jr66okDnH3943oHIswoPdxqgxeJ/d0Ikaa9a5e7uVFfLEf3aybfRjY8+cm6jUlAgd382qqaDj0RFyab5f//r/NjHH1MotlcvY7+edWbcOBLYp0/TYLXyWBowLKgCQH1zqDw5VCFVtNMKRLqdpMV5KjxcR4qPEBTCsXGhRTUdlfMT/eRQ1Sd/CvAqqACVmX7l5fL2Omb5Od7DUaPInfr9d3lasE6ES+U60y8vDzhZSgNsEVcATwiH6vhxoKTI5rHYmPgO1LePH0DfI/E5OvUSVKIQVDabLKg8OlRGJXkJWrYkC8dmky/Rt20Ddu+GFBaG7zEO2dnqIRI3WrfGwZCLEIYatM9e4/64D2UzdCOspP37NTfp1g3oAftzt2ypmWRUUyN/1/zVZrVpU3JAnK4rNLs4uyDyzzp1MnYanw4GD6Zj86lT7n0Jf/qJri1TUoDOj15Jx8czZ5yTlb76iibUdO5sqmIR7fcWLJBLslRVyU3F/REyZdRhQRUAfMqhUhzlddWQstte5YjSFFSpqTqu9oQYOn3aPZ4jSWhWSYLqbIJvOVTCofLadsbPDhWgkpguxGN4uObVkiTJu3QaYmYmNGsbeEAkhrq259q6FSiw51BFVRV63Ediouw2HdyqSApT+aIYnZ4kNI+y+J4TCkF1+jSdb6xWDz3wlDszapCAHIYVNoM9V8N2zXUoRAIqK1UmKKhQVAQst5GVkb7TpYJiba1cIdvIhmBCMWdlaaq+zEygl4XCfRWdtcN9hw+TqIqKCnCKj3CojhyRq+CroQyZBpjISDnsJ9IhBaIdyYQJQGhUmKxKnnyS3tCqKuBf/6J1t95qarJPr140wbCqCnj0UVr35ptkcKakyA4W439YUAUA3TlUNptcYwD6HCqloHLNYRV6QdeFv3Boamrcw35nziCqthQ2WJAT3Up7H0JQ5eY6CqN4NaD8EfLTOAlpCqq0NM0DYmmpvDsdE/m8Inq/igtzwZYtsqDSjqfJiHPusW32L0mjRqqtc3RENH3Ci5EpC6rsbBw6QEKvRQsv5oPRIT9Aztb99lsK0c6bBwCwTn/AYeboCfsdPw6sAIX9wte4CKqdO0ksxMYa61C0a0ffx4ICTSswOhq4JJYE1Ykk7YR0kcLUqZMxbVt0k5goz/h0/bIrEZ3A63BxYgSiB/Hnn8vXJWfOyALL0fbob3+jA3FWFvXKeeQRUiypqVQky2ReeYW+MvPmUTV0Uctr9uz6m/+MflhQBQCvOVTKWIwi7OeLQ1WBSLeUC6VD5ZWwMNkhcG02Z0/COI4MlFSr97sDQP9vtZICsZ9xA5aULv6/tlbzjXYL+fmQP2W1qrZK9BlRd9I1xPDbb74JKpFHlb3L8ww/IRp0pnl5xaugEuK0pgbZO+gL6DHcV1oq5w4aKah69iRRVVtL+S1VVZQ007+/w6lR7anowrFjwGoMRw2sVAJAGasVWcAXX2xsuCoqSi6d4NRjyJleoJIJO63eBZWRfW91oyfsJ6q8e0iq9ydXXUWHjiNHKAkdIHenqoqEiaOTTFycXMfhzTfl2WnPPRcUiqVXL9kw++03up6dNElnU3HGMFhQBQCvIb/QULlkgCIxXZdDZd9pOaLcUi6EXtB9ntKodC4E1UG0VeuOIxMSIj+Z/YwbkCrpADk0wmXSW4vKxxl+Rrj6QlDt3i1fEUsS1Vupi0N1br8+QWVUuMeroAoLc2yUv4sS03WVTIiIMP7ENGeO/ORt2jjiOOK90ONQHTtGM712N7FXybc7XQDk+faaPUnqgTLsp0Z5OZqXUNx4TZG2GDFVUAnXTogmV3Jz5UbaOgrj+oOoKDmaN306sHo18OKLdP/hh11+87fcQi1UkpMpReD11+XeKEHAI49QyuD06cB775HrFlBXkmFBFQi8CipAzqNSOFQi19hTkUdlyO/AAeeHRE6VSIT2italu11QHcBFngUV4HbGDZhDFRLitRaVeB99cahE+odRE1LatKHvQ3m5nLC9dy+5keXhCS4D1Eacb4uPem6MHHCHSvFkZftJUOkumWB0HkqLFvTm7t1LuTr2KxNx3aBXUAHAzu630I25c0kBnztHnVsB/5Sg9iaodu5EiK0WZ5CCn/ela+7GVEGlVb5CIIRW+/b1//3Xg3/+k75++/ZRcfyqKiqYqVpq4K676Dubnw/89a8BH6s3rriCjLSpU1lMmQG/5QFAmUOlObNIhP0UikWcV/UIqgpE4swZZ3NGnLBFhW6vaJ1p9DpUgHmCCvCamC5CfnV1qIzAapVL9IgZ96LFVUYXu2rzQVBVZXtujBxwhwpwCKraYz44VP4qhxweTm+W4vvla8gPAM4Ou45+o/v2Ua+V//2PMu67d/fPDC+3YmMu/PYbAOB39MWfuy2qUW6bTa6raYqg6t+fln/+qd5jU/R9UVTKNoP4eKp+IKo2jB5N9bU86vuGVnGSCQgsqAKAcKgkySnn3BmV0gm6BJXd9rLYVZuoOQPI6R4+CyrXM43d+qqLoNJdh8qIcI/O4p4OQWWCQwXIeRk//khL0Q2+Q/8EuqFDUIkmyXHV9kQ7jbiwmYIqNMdHhypA+BryA4C0drHy/PQxY2R3YsoU/5xcRf6RmAXnil2M7I7pj9paqgrhyoEDdL0VGelF1PqL9HRKTLfZ5ORzJevW0fLiiwM7LhX69yc37+RJMh49plkwjAYsqAKAsku53vYzkiSf+IWzoor90rRREgkqEfaz2eSQn+6DqZeQn18cKqPKJgC6BZVDr5jgUAF0PgaApUtJsH3/Pd2/5KoEulFY6LVIUlgY1RVqgiDLoQIcgiqumASVx/pH/iiZ4AWt6wY1hKBq0QLArFnyPwM0ZdNfWb/C9TpxQn2mnz2MVtqFXCC7YeXE5s3yrgJc4klGuFSuYb/qatmhGjIksGPSICzMlO4xzHkEC6oAIIpqAzpm+omcqHK5KK8eQRWbSoJK9CLNziY3zGr1IX9GLeRXVOSYbuhXh8qMkJ9JDtWll9J34sgR4JlnSGR36gR0udg+wJoat6r5anTo4FlQlZfLr9XoHCrNOlSKJ2uGk4iL89LY1t8hPxX0OlS1tXLj3BYtQN+v1auBO+6gJJvly/2X+xMbS+UTAHf7KTfXcZETO6IfAM+CytSI2qBBtPzpJ+f127eTG9+4sUnxSIYxHhZUAcBi0ZGYLhKt7CdS4aJYrV6iYXZBldSc/l90ehDhPq81gJSI7HVl/QW7QiuPTUYx4vyXQ2VEyE9nUrqZOVQAmZH2nruOmdg33wxYGkXLH5bOPCpPgkoIhuho48YvPt7SUrfC/jIKQdWmjZeImLCJjCqUpQPldYMnI/D0adK2VqvCmOrQgRrWLV5snErVQsx8cxVU69fTsmNHdB+aAECuL6pECCoja476jEjY//ln56tJEe8ePJizp5nzBv4mBwiVnHOPG4jzaUKClxOS/SDV7CISVOLY63P+FCCX8c7JkQdgryFT1LKrcnja+CqojFQsOh2qggKQGhD2WYAdKgB49VXZuenTB7jvPtAH7VYsSxsnQaWS9KEM9xmV5hMTI2t/b8U9haDyiBBUylCanxHvR1WVhxY6kMN9zZsb1/fYJ0RtJtf8I5F0d+mlGDCANPiRI87XQbW18iQ6Ux2qzEz6PlRUyLMvAGDhQlqOG2fOuBjGD7CgChAuBpQ7LoJKV/4U4BBULTrIIb+SErkNmE+CKjZWPrGJ6dp2QVXappvn8QuEOLGH07yG/IxULL4kpQs1EBXlMWzjD4cKIDG0di3wwgvU7d6x/3jfZvp5cqhEDp3Hti8+YrHoKDtgF1QJKETH5iqzu5SYIKjCw+WnE6JJDaf8KTMQsxd+/tm5HZQQVCNHIjbWfZIDQGKqtJS+V2LCoClYLMDll9Nt0Qbo2DHqg2mxAFdfbdrQGMZoWFAFCJcUKe0NVBwqj9h3mJAehaZNKYSxY4ccAvC5o4M4+opkLPvc/sqO3ZXD00YIqrw8oKbGu0NlgqCqrAQqjyrypzzYN/5yqADKaX7kEZfP2EeHKgmU31bRyF1QibIZRs/wUrTrUycuDuVWmmTRpbHWRnZMEFSALJJc+18qMV1QDRxI8eGcHLna+IkTVEohJAQYNgwAFYAHZJ0FyFW/R440yV1TMmkSLT/9lH5QH39M9y++OKChXobxNyyoAkR9Qn4eEQotKsoRIfj9d1lQ+Twj2bUxq11Q1XQmQaWZNyNISqKDvSQBubmeHSqbTRY/ARBUMTFyukbpYe/5U8pdGe1QaSI+cE8NZe0kNSpHNOjzP5AfOEElWrSJhG03LBactpLqahftQVCVl8uvM8CCSqQLBrWgCg8Hhg+n2yvsfQS//JKW/fo5rhBEg9/ly+XDgRBUwhwylREjaNZFSQnFtv/9b1p/113mjothDIYFVYAQIT9fHSqPNaiUO4yKclj/Tz9NuUtxcXKrE90oBdWJExQfs1phyeykHJ42Vqsjn6f21BnH9qoOlbLzsBGCyosYCQmRN6k8oq9rsD8dKlV8cKgs5yjcV41Q7DnprvjMcqgkCThSQ6orw6KluiC7U5GRAXyDCSGSgjrkBwCjqDEzvvqK3tgPPqD7t97q2GTAABKIhYXAggX0uYhZf6JEh6lYLMCjj9Ltzz6jq5SePWXnimHOE1hQBQhfHSpfc6gQFYXJk+H0vwMH1sHuF113d+yQYwjduyOqcaRyeJ6xi5SKo3LWsqqgEmolNNSYzsM6xIgQqNUngtyhckxF9IC92WMemiBrn3vY0iyH6swZ4IiNVEiT8uPaO1KG+wJcebpBOFQAMHEiCc7Nm4HJk6n6ZFQUcMMNjk1CQuSWcm+8QeWybDZqMSg+K9O55RZg9mw6IF18MVWa59l9zHkGf6MDRF0dKl8EVYsWwNix8kNCYPnEoEEUati/H3j+eVp31VVOw/NSc9IhqCqPk2ixWqn3rRtK+8eIE6oOQSU2kbKD1KFyq+3gAYWgcu1QUl0t9531l6DScqgOHgSOgVRI6EkPFpBJ+VOAd4dKkpxLj5hGaqocGvv8c1redZfbF/KOO+gY89tv1BgXAGbODNwwdfHoo+RKr1snX7gxzHkEC6oAEYgcKoDqGk2YAHzzDXDTTXUYaHy8XDtGlF3/y18cw7PZPLTPEdhdnxq7CxQbq6GXjFYrPjhUltwgdahELQXRGdsTCkElcpYFx47RZxUZ6fUl+owI+Wk5VIcOyYLKY0xNCCoTylN7c6jOnZO/Rl5LP/ibJ56Qf5OjR9PUUBeaNQO++EI2faZNk9OvggrVKyuGOT8wqyHBBYdXh8plA12CymajKWuK/+/QQc5brTMTJgDffUe327YFundHdI38cFmZl+Oi3fWxZcuCShUTBVVYnneHqrZWLvsQMEHli0Nlr2CfhybYvZtK/YgCssrG2EZH04RDdeoUfQVdIzc+CyoTHCohqPLyKN/Q9Tsqyo40ayZf65hGYiI1mMvPpy+iRhz/qquoD7FoS8QwTGBhhypA1DWHSk9jZADG5CAJJk6ksMJ991GjOYsFYWFyEW9fi3sGpAYVIAuq4mIqce1hk8hC7w6VKPkABLdDVRrRBLW1dDIViIr5nToZPD7QWxYSQm+xWgsaN0GlFSMWhaxMEFTx8XItVGHEKhGCSnR/CQoaN/aaFNmxI4sphjELFlQBwtfCnrocKqXdZaSgiogA3nmHMlwVuQ5eRaHALqhCzgbYoVLux2MtKgmNivX38YuICGCkog6CKjSNlIGyQ4m92gW6dzdycERoqKxD1QyogweB47BXEy0p0XYMxT8LuyjACLEkxJMSIbIuuihw42EYpmHDgipA+KWwp9hZWFhAqvf5KqjCzgXYoQoLo0KIgOZJPCEBiEEJwmvKncaqhpElsnRTh6T0mJZUg0opqLZvp2WPHsYNTYlwQew9eh1IEk1EK0c0ahLsFpBW2E8kMJmU9S06LakJqqB0qBiGCWoajKDKz8/H5MmTER8fj/j4eEyePBkFHnJlqqur8Y9//ANdu3ZFo0aN0LRpU9xyyy045dIvY9iwYbBYLE5/k/xQH8UvSekuCen+xldBFVEQYIcK8JpH1bgxkAa7O9WokcemzGJ4AQv3AXVyqFI6kaD69VdaXVVFogbwj0MFyELDNVyWk0Na0GIBQlp5KEdus8nTEE0SVHocKhZUDMPopcEIqhtvvBHbt2/HsmXLsGzZMmzfvh2TPdQFKCsrw9atW/HEE09g69atWLhwIfbt24errrrKbdtp06YhOzvb8fef//zH8PH7UjbBZtNZ2DPIBVVkcS5CUOtdUBmpWHQIqlT4NsPPFIeqvNw5R04Ne1J6+4EkqHbsIEGzZw+VTYiP9180TYTCXMWIEHJt2gAhbVrRHZEhr+TMGRpkSIgps/wAWSyJLksCSZLXcciPYRi9NIhZfnv27MGyZcuwceNG9O/fHwDw3nvvYeDAgcjKykIHle6f8fHxWLlypdO6N954A/369cOxY8fQQnFVHB0djTSj55a74ItDVVIi90JtkA5VcjJgsSBEsqEJ8hATk6K+nT8UixdBlZCgcKh01qAKqEMVF0ciw2Yjq8dTwrbdoUpo2wTdu5Og+vFHue9zr17+q5cphIarQ7VnDy0zMz1sBMhhwGbN5NkOAUYr5HfsGH32oaHyNgzDMN5oEA7Vhg0bEB8f7xBTADBgwADEx8dj/fr1uvdTWFgIi8WCBBeV8vnnnyMpKQmdO3fGww8/jGLl9C4VKisrUVRU5PTnDV8cKqEFwsPlafCqBKugCg0FmpBrkoozQRfyC2qHKiREdqm8hf3sggpJSY4GuUuWUD0iALjmGv8MEdDWSsKhysyEdqIVEBRlyMVrOHsWyM2V14uE/sxMLpvEMIx+GoSgOn36NFJS3F2OlJQUnD59Wtc+Kioq8Oijj+LGG29EnMJyuOmmmzBv3jysWbMGTzzxBBYsWIBrr73W475mz57tyOWKj49HRkaG1+fX7VBVVqIgrxYAaQOPDkOwCirA4f6k4kzgktIB33KovAgqUxwqQF9iek2N/BqbNIH4yn7+ObBpE31vrrvOf0MUYiQ317l1oijd0KmTYiNPgsqkGX4Apc8JB2rrVnm9P2dIMgxz/mKqoJo5c6ZbQrjr3+bNmwEAFhVlIUmS6npXqqurMWnSJNhsNrz99ttOj02bNg0jR45Ely5dMGnSJHz99ddYtWoVtiqPsC7MmDEDhYWFjr/jxz30K7Oju2wCgMIzlDvjS2PkQFBXQaXpUAlBEOCQn3CoapM9h/xMcagAfYnpSrHVuDEGDgSuvlpedfnl/i3vFBsrR0yzsmhZWwts2UK3u3eH7FAdPkwPKjF5hp+gd29ainEDLKgYhqkbpuZQ3XfffV5n1LVq1Qo7d+7EGZEYoiA3NxepXvJgqqurMXHiRBw+fBg//fSTkzulRq9evRAWFob9+/ejV69eqttEREQgwsdYgNeyCYrYXklOGYBGPred8TeGCyohGOzhQUPwIYeqPC4N2nP8gtyhEuG+hARHDtJrr1HZp8xM4Mkn/TtEAOjZkwp4//470K8f5U8VF9PkyS5dAFiaU9y6qopm9LVqJf+ziBUa3WjQR3r3BubNY0HFMEz9MVVQJSUlIUmUK/bAwIEDUVhYiN9++w39+vUDAGzatAmFhYUYNGiQ5v8JMbV//36sXr0aTXScuP/8809UV1cj3eDLe68OlcVCG5WXozSXNjofBFUaTmuH/ISgEo6MEYg3TUOMhIUB6SFnABtQHJ3qUVAFtUNln+GnFKMtWgAu8zD8Sv/+JKg2bQLuvRfYuJHW9+snNJ6VBFNWFoX9lIJKdHM2uUmuq0N16hRpPYuFBCPDMIxeGkQOVadOnXD55Zdj2rRp2LhxIzZu3Ihp06Zh3LhxTjP8OnbsiEWLFgEAampqcN1112Hz5s34/PPPUVtbi9OnT+P06dOosnf3PXjwIJ5++mls3rwZR44cwdKlSzFhwgT07NkTgwcPNvQ1eHWoFBuVnQ1OQSVqZhriUFVWUud5wFhBpUOMpFvIoSqIDNIcKvEahAulhiIh3SzEHJFNm2gpBNWAAYqNRG0CMf0PoO/tkSN022RBJWZCHj1KaV3Ll9P6vn2NNU4Zhjn/aRCCCqCZeF27dsWoUaMwatQodOvWDZ9++qnTNllZWSi0nwVPnDiBxYsX48SJE+jRowfS09Mdf2JmYHh4OH788UeMHj0aHTp0wP33349Ro0Zh1apVsBpceVyXu2PfqDwvOAWVeA1CB3nEm6ASDlJIiLEWkBAYwsFxRZKQbKPw8VlrkOZQJSfTUus1ALKgMvGsbzeLsW8fDWfVKrrvJKi6daPlzp3yuv37qdhT48byazWJuDjgkkvo9pdfkuMGUA4awzCMLzSIOlQAkJiYiM8++8zjNpKiCWurVq2c7quRkZGBn3/+2ZDxeUNZNkGSNGbv2RVLZT4JqvMlKV1Si6sJB6lxYxJVRuFNUBUWIkKqBADkWIKwDhUgvwblXH5XVEJ+gaZJEzKY9u4F7rmHXJ74eDhKOACQE5FEYhLgHO7zV6EsH7j+euDnn4FXXpEbYrOgYhjGVxqMQ9XQEWKktpYKRHvaqKoguB0qQ0J+/sifArwLKvvkhkLEIa/M8/sW1A6VmKThZVKGv7n7blp++SUtb7jB5esoBNUff8gz/cS0QJPDfYLx4ynnKzubkvp79ZLdN4ZhGL2woAoQypOMt+Ke1YUNX1DZUig/KQU5iG1kc9/AX4JKODZFRerK1V637DTSvPYfDmqHKieHliYLqilT5OFGRsoCy8FFFzkmWzhm9onwX5AIqpQU4IMPaPxRUcDHHwek1zjDMOcZLKgCRHi4HNnSzEGyK5aaooYvqEobUSHWUNQitlolQdxfgiohQX6j1ZK6s7MB6BNUDcKhUil4G0gaNQK+/x548UVg+3Y5ZcqB1Qp07Uq3t22jePfatXR/4MBADtUjt9xCefJ799pLPjAMw/gIC6oAYbHor5ZuK2n4gqq4Igx5ILEUXexeQ8xvgspqlfepJkhOnQIAnEQzrVJVAGgSYiWlWpnnUOXlyU0dXQkShwqg2X5//zug0lKTEKVNli+ncF9ODtlBQRZXS001vc4owzANGBZUAUSUHfDmUNnKSCg15KT04mLgDOhkb8lREVTCPTJaUAGe86jsguoUmnp0qJTtGTULk/oLMX7RIFmNIHGodDFuHC2XLAFWr6bbAwZwozyGYc4rWFAFEFHgUlNQCWFU2vAdqqIiWVBBpcq93xwqwLOgOnkSAAkqTw6VeCw21oR8mrAwOc6olkdls8nrg8Ch8sqQIWTz5ebSdEAAGDrU3DExDMMYDAuqACIcqpISjQ3sisVa1fDLJigdKo+Cyh/T/g1wqMRj/tB7uvCUR3XunDxjzuQ6TroID3duNBgVBdx+u2nDYRiG8QcsqAKIV4fKrliiQYrFazL0+SCoTAr5nUQzj4XIlWWyTMHTTD/xfiYmkpvVEJgzRy6t/u9/Ay1bmjochmEYo2kwhT3PB/Q6VNEoQ3Q0Xdh7JIgrpXsN+Qk14w/FIlwvV8UkSU4hPz2CKigdKpGQ3hDypwSNGwO//EJT6S66yOzRMAzDGA47VAFEb1J6NMr06YwACyrhsFVVeShOaserQ+XPwpRa7k5hoeM9O4WmKCzUfh2mh/z0OFQNIX9KSWgoiymGYc5bWFAFEF9Cfl4T0gHTBBXg3aXyKKhsNnldmucGxXVCCA17EU8H9nCf1LgxKi30nmn1UDY95CfeF9fXADSsGX4MwzAXCCyoAogvIb9gFFTh4WQyAB5egx2PIb+8PEqqtlj8IwqaN6elPbznwH7f0rSp4/3VCvuZHvJr2pSWdhHohFgntmEYhmFMhwVVAGnoIT9Adqm8CSonhyonh/KXBPZq5UhK8k9SdbNmtDxxwnn90aO0zMhwqp2phgj5meZQeRJUQiiK18kwDMOYDguqAOJVjNgFVRTKvTtUkmSqoNIT8suB3X2qqoJT0ScRxvJHuA+QhUZJiXOFzsOHadm6tWbeuiCoHSohFIUTxzAMw5gOC6oA4tWhsgsjXSG/6mq5LUkABZXXsKWdoiKgEpGoiEqgFcKVUt5OTzd8fABokOINVLpUKoJKq11eUAkqpbsHsKBiGIYJQlhQBRBfktJ1F/UEgjbkBwBlSfbmaCLcBvjfoQJkl0qZR6UQVEEf8hPvTXW18yAliQUVwzBMEMKCKoAYmpQuBJXFoqNglXH4EvIDgMr01nRDiBkgMIJKLTG9IYX8wsPlWlTKsN+5c3LXZk5KZxiGCRpYUAUQX5LSferjZ7EYMTxd6HWoROpSdYaKoBIhv0A4VMLNKSuTZxt6CflJUhAIKkA9j0q8nuRkbi7MMAwTRLCgCiB6k9J9CvkFMNwH6M+hEg6V1MqDQ+WvHCrAPeR35Agt4+KAxo09hvzKyymPHjAx5Ad4FlQc7mMYhgkqWFAFEL0OVQSq0Di2xvPOTBJUvob8rG1VBJUQBf4UVBkZtBRC6tAhWrZuDVgsHkN+wp0KDXUuZhpwxPujDFuK2yyoGIZhggoWVAFEb1I6ADSOLNfYyI7JgsqTQyVJcsgvvIOLoKqslG+3a+efQQJA58603LWLljt20DIzE4Dnzi5iXVJSQKOp7ogGwkoxKm4LwcgwDMMEBSyoAojXcFlEBGygM3jjiDLPOwvikF95uaKiQ6dWdCM/n3rpHTpED8bE+Neh6tKFlidOkOW0dSvd790bgJy+pdZmMGh6D7dvT8t9++R1WVm07NAh8ONhGIZhNGFBFUCUIT/X0kIAUFFpQRnIpUoID05BpSfkJ8J9ANAoNUZWJvv2OQsCf9o/cXEU3gOAP/6QBVWvXgDkdn+FhUBFhfO/Bk3vYTVBtXcvLVlQMQzDBBUsqAKIECO1tfLMdyWFhXAIqhhrww35iXBfbCwQEgKgZ09asXmzLKiEWPAn3brRcvVqOZfKPpb4eHmSnKtLFTQOlQiJ5uaSw1dTAxw4QOs6djRvXAzDMIwbLKgCiHCoAHWHJz8fKAcJpJCK4HSo9IT8hEMVG2tf0bcvLX//PbAhKyGo3n2Xlm3bOiqoWyxy2E9MOhQEjUMVGyuHRffvJ1FYXU2fOedQMQzDBBUsqAJIaKjsiqgJkoIC2aFCWXAKKj0OVdAIqiFDaCkU0mWXOT0sBJOroAoahwqQnbz9++VwX7t2duuPYRiGCRb4qBxghMhQ5hkJnASVt7oEQZxDJUJ+cXH2FUJQ7doFrF9Pt+25TH5l5Ejn53nsMaeHg96hAmRBtWcPsHs33eb8KYZhmKCDBVWAESJDiA4l+flAKbwVq7LTkEJ+6elAq1byBgMGBCaHymIBPvkE6NQJePVVtzCZ1ky/oHKo+vWj5apV9AcA/fubNx6GYRhGlVCzB3ChER9Py8JC98cKCoCEIBdUvialO3j5ZWD8eLo9ZYpfxqZK586ys+OCVsgvqByqMWNouWmTvG7cOHPGwjAMw2jCDlWA8SaoHA5VkOdQ6Smb4Aj5AcC11wJz5gCTJwM33eSv4fmEWshPkoLMoWrWDOjRQ77ftm1g3D2GYRjGJ9ihCjDeQn4NJYequJjEh1opKbeQn+CBB/w6Nl9RC/mJ6gRAkAgqgMTo9u10e/x4k8u3MwzDMGqwoAowuh2qIBVUQhDW1FAtrchI921UQ35BiFqrPOFWJSTIMzJN55FHKHRpsQCXX272aBiGYRgVWFAFGMMElQgJKvr/BQJls+CiInVBpRryC0JEnvzx41TeKSxMrv8p2ugFBRER5FIxDMMwQQvnUAUYw2b5iccDLKhCQmTnSe01AB5CfkFGWhoJQpsNOHaM1onew6JrDcMwDMPoocEIqvz8fEyePBnx8fGIj4/H5MmTUVBQ4PF/brvtNlgsFqe/AQMGOG1TWVmJv/71r0hKSkKjRo1w1VVX4cSJE357HYY7VMry6wHCkyhUrg92QWWxyMJJCCmxVFZ5YBiGYRhvNBhBdeONN2L79u1YtmwZli1bhu3bt2Py5Mle/+/yyy9Hdna242/p0qVOjz/44INYtGgRvvjiC/zyyy8oKSnBuHHjUFtb65fX4UlQnTsX/A4V4F1QNZSQH+AuqETIjx0qhmEYxhcaRA7Vnj17sGzZMmzcuBH97UUN33vvPQwcOBBZWVno4KFydEREBNLEdC4XCgsL8cEHH+DTTz/FyJEjAQCfffYZMjIysGrVKowePdrw1+JJjJw9e344VA0l5AfIwunQIVpyyI9hGIapCw3CodqwYQPi4+MdYgoABgwYgPj4eKwXrUw0WLNmDVJSUtC+fXtMmzYNOaLIEIAtW7aguroao0aNcqxr2rQpunTp4nW/dUXLoaqqIoGiu2xCEDtUDSXkBwBt2tDSNeTHgophGIbxhQbhUJ0+fRopKkWBUlJScNq1zLWCMWPGYMKECWjZsiUOHz6MJ554Apdeeim2bNmCiIgInD59GuHh4WjcuLHT/6Wmpnrcb2VlJSorKx33i7SUhQpagiovj5bllkaAhPPCoWpIIb9Dh+gzyc+n+5xDxTAMw/iCqQ7VzJkz3ZLGXf82b94MALCoFDOUJEl1veD666/H2LFj0aVLF1x55ZX44YcfsG/fPixZssTjuLztd/bs2Y7k+Pj4eGS49IjzhJYYyc2lpTVOZ6V0IbiCTFBJUsNyqES0eNcuYMcOup2S4lwegmEYhmG8YapDdd9992HSpEket2nVqhV27tyJM64dbAHk5uYi1YeGa+np6WjZsiX2798PAEhLS0NVVRXy8/OdXKqcnBwMGjRIcz8zZszA9OnTHfeLiop0iyoth+rsWVqGN24EFMKzQyVJQRvyKyuTK427GH9BSceOQJMm5BC+9BKtGzzY3DExDMMwDQ9TBVVSUhKSkpK8bjdw4EAUFhbit99+Q79+/QAAmzZtQmFhoUfh40peXh6OHz+OdHuJ7N69eyMsLAwrV67ExIkTAQDZ2dnYtWsXXnzxRc39REREIKKOZbSFoKqqAioq5MKYQlBFJDYCjsCzoKqsJFEFBJ1DJUJmVqspQ/OZkBDgkkuARYuA77+ndcOHmzsmhmEYpuHRIJLSO3XqhMsvvxzTpk3Dxo0bsXHjRkybNg3jxo1zmuHXsWNHLFq0CABQUlKChx9+GBs2bMCRI0ewZs0aXHnllUhKSsI111wDAIiPj8eUKVPwt7/9DT/++CO2bduGm2++GV27dnXM+jMaZRhMKUiEoIpO1jHLT/lYkDlUQlA1btxwWs4NHep8/9JLzRkHwzAM03BpEEnpAPD555/j/vvvd8zIu+qqq/Dmm286bZOVlYVCeyzNarXijz/+wCeffIKCggKkp6dj+PDhmD9/PmIVqubVV19FaGgoJk6ciPLycowYMQJz586F1Wr1y+sQlcaLi6mQp8i1F4KqUbJdIFVUALW1ZPW4IvKrwsOB0MB/hHoFVUNBWR2jWTMgM9O8sTAMwzANkwYjqBITE/HZZ5953EYSYTAAUVFRWL58udf9RkZG4o033sAbb7xR7zHqJSmJBNXZs0D79rROCKq4dEWcrKxMPbPbxPwpwLOgEsXrG5Kg6tgR2LQJ2LwZuPjihuOsMQzDMMFDgxFU5xMpKVTvSMzsA2RBFZ8WRWd0kXiuJqhMLJkA6HOoEhICNhxD6NeP/hiGYRimLjSIHKrzjeRkWipqjDoEVVKyRXaetPKogtihaoghP4ZhGIapLyyoTEDkTSkdKnE7KQmy86QlqILYoWqIIT+GYRiGqS8sqExAzaEShdlTUuBdUJlY1BOQBZVag+eGGvJjGIZhmPrAgsoEhEMlBFV1NSDqljZvDlkoaVVLNznkJ8RSRQX9KeGQH8MwDHMhwoLKBIRDJcJ82dmUgx4WZn9MCKqSEvUdmBzyi4+XqzmcO+f8GIf8GIZhmAsRFlQm4OpQnThBy2bNqE6VY2aflqAy2aGyWGTB5Cqo2KFiGIZhLkRYUJmAa1K6UlABkDvzFher78Bkhwqg/ncA9cBTwjlUDMMwzIUICyoTUIb8bDbg5Em637y5fQPhUGkJKpMdKgBITKQlO1QMwzAMw4LKFISgqqmhnCPhULkJqiDNoQK0HSrOoWIYhmEuRFhQmUBEBCV2AzS7z01QeQv5BalDVV4uaz3xOMMwDMNcCLCgMok2bWi5b58c8nPkUOkN+QWZQyWS7MPDZcHIMAzDMBcCLKhMIjOTln/+CRw8SLdbtLA/6C3kJ4SWcLJMQM2hEoIqNZUbDDMMwzAXFiyoTKJzZ1quXElV0q1WoGtX+4PeQn5ivVrj5ACh5lCJ4qRiFiPDMAzDXCiwoDIJ4VCtWUPLLl0UKVF6HSoTBZUnh4oFFcMwDHOhwYLKJIRDJejbV3HHWw5VEAgqTzlUqamBHw/DMAzDmAkLKpNo3RqIjJTv9+uneLABhPzUHCoO+TEMwzAXKiyoTMJqBW67jW6HhgLDhikebAAhP6VDJUl0m0N+DMMwzIUKCyoTeecdYO9eYMsWoF07xQOeQn61tXKxJxMFlShOWlkJFBbSbQ75MQzDMBcqoWYP4EKnQweVlSLkV1JCvWlCFLpX1KACTBVU0dEU9jt3Djh+nHr3cciPYRiGuVBhhyoYUQol4UYJhGtltTonYZlARgYtjx+nJYf8GIZhmAsVFlTBSFSU7Eq5hv2U+VMmV89UCqraWmr2DLCgYhiGYS48WFAFIxaLc9hPSRAkpAuUguroUYpORkQAaWnmjothGIZhAg0LqmBFKzE9SAXV/v10u21b55QvhmEYhrkQ4FNfsNJABZXTbEWGYRiGuUBgQRWsaBX3ZEHFMAzDMEEHC6pgJT6elkVFzuuDUFCdOAHs20e3WVAxDMMwFyIsqIKVxo1pmZ/vvD7IBFWjRkBFBbBsGa1jQcUwDMNciLCgClYSEmhZUOC8PogEVVgYMGKE8zoWVAzDMMyFCAuqYKUBCCoAGDNGvt27N9CsmXljYRiGYRizYEEVrDRAQfXSS6bXGmUYhmEYU+BefsFKAxFULVsC774L1NQAw4ebPRqGYRiGMQcWVMGKVlK6uC8EVxDwf/9n9ggYhmEYxlw45BesaDlU587RMjExkKNhGIZhGMYDLKiCFS1BJRwqFlQMwzAMEzQ0GEGVn5+PyZMnIz4+HvHx8Zg8eTIKXMWGCxaLRfXvpZdecmwzbNgwt8cnTZrk51ejA3aoGIZhGKbB0GByqG688UacOHECy+wVJO+8805MnjwZ3333neb/ZGdnO93/4YcfMGXKFIwfP95p/bRp0/D000877kdFRRk48joicqgKCgBJoulztbVAYSGtZ0HFMAzDMEFDgxBUe/bswbJly7Bx40b0798fAPDee+9h4MCByMrKQocOHVT/Ly0tzen+t99+i+HDh6NNmzZO66Ojo922NR3hUNXWAiUlNKtP6VYFUVI6wzAMw1zoNIiQ34YNGxAfH+8QUwAwYMAAxMfHY/369br2cebMGSxZsgRTpkxxe+zzzz9HUlISOnfujIcffhjFrg2JXaisrERRUZHTn+FERgLh4XRbCCkR7ouNpTLlDMMwDMMEBQ3CoTp9+jRSUlLc1qekpOD06dO69vHxxx8jNjYW1157rdP6m266Ca1bt0ZaWhp27dqFGTNmYMeOHVi5cqXmvmbPno1Zs2b59iJ8xWIhFyonhwRVRgbnTzEMwzBMkGKqQzVz5kzNxHHxt3nzZgCUYO6KJEmq69X48MMPcdNNNyEyMtJp/bRp0zBy5Eh06dIFkyZNwtdff41Vq1Zh69atmvuaMWMGCgsLHX/Hjx/34VX7gGtiOgsqhmEYhglKTHWo7rvvPq8z6lq1aoWdO3fizJkzbo/l5uYiNTXV6/OsW7cOWVlZmD9/vtdte/XqhbCwMOzfvx+9evVS3SYiIgIRERFe91VvXIt7iqVYzzAMwzBMUGCqoEpKSkJSUpLX7QYOHIjCwkL89ttv6NevHwBg06ZNKCwsxKBBg7z+/wcffIDevXuje/fuXrf9888/UV1djfT0dO8vwN+I9yYnh5bsUDEMwzBMUNIgktI7deqEyy+/HNOmTcPGjRuxceNGTJs2DePGjXOa4dexY0csWrTI6X+Liorw1VdfYerUqW77PXjwIJ5++mls3rwZR44cwdKlSzFhwgT07NkTgwcP9vvr8ooQdSJPjAUVwzAMwwQlDUJQATQTr2vXrhg1ahRGjRqFbt264dNPP3XaJisrC4WiTpOdL774ApIk4YYbbnDbZ3h4OH788UeMHj0aHTp0wP33349Ro0Zh1apVsFqtfn09uhClHEQ9La6SzjAMwzBBSYOY5QcAiYmJ+OyzzzxuI0mS27o777wTd955p+r2GRkZ+Pnnnw0Zn18QDpUQVMKh4hwqhmEYhgkqGoxDdUEiHCoR8svNpWWTJuaMh2EYhmEYVVhQBTOuDtXRo7Rs0cKc8TAMwzAMowoLqmBGmUMlScCxY3S/ZUvzxsQwDMMwjBssqIIZIagqK4HDh6mnH0BV0xmGYRiGCRpYUAUzUVFAfDzd3rSJlikptJ5hGIZhmKCBBVWwI/KoNm6kJedPMQzDMEzQwYIq2GnWjJaivAPnTzEMwzBM0MGCKtjp3ZuWO3bQkh0qhmEYhgk6WFAFO64tcNihYhiGYZiggwVVsDNwoPP9oUPNGQfDMAzDMJqwoAp2kpPl223aAD16mDYUhmEYhmHUYUHVEHjrLaBjR+C778weCcMwDMMwKlgktY7CjE8UFRUhPj4ehYWFiIuLM3s4DMMwDMPowMjzNztUDMMwDMMw9YQFFcMwDMMwTD1hQcUwDMMwDFNPWFAxDMMwDMPUExZUDMMwDMMw9YQFFcMwDMMwTD1hQcUwDMMwDFNPWFAxDMMwDMPUExZUDMMwDMMw9YQFFcMwDMMwTD1hQcUwDMMwDFNPWFAxDMMwDMPUExZUDMMwDMMw9YQFFcMwDMMwTD0JNXsA5wOSJAEAioqKTB4JwzAMwzB6EedtcR6vDyyoDCAvLw8AkJGRYfJIGIZhGIbxlby8PMTHx9drHyyoDCAxMfH/27vbmKbuNgzg1+GlyCxURKEwNu18YU4ri7g53ItzOCaZBkJMlPhBwyemLjSby6YmoyYLkCUjzrmXLG7qkiWYbLDsyxKaaVudkQCW2KAhbKJlWscWXyAwJMj9fPDx7OnQPMhpz6n0+iUnof//6Tk3vVLP7Tk9FAAQCAQ0B0La9Pf347HHHkNvby9SU1ONLiemMYvowjyiB7OIHjdv3sTjjz+uHse1YEMVBnFxdz6KZrFY+OaIEqmpqcwiSjCL6MI8ogeziB53j+OathGGOoiIiIhiGhsqIiIiIo3YUIVBUlISqqurkZSUZHQpMY9ZRA9mEV2YR/RgFtEjnFkoEo57BYmIiIhiGM9QEREREWnEhoqIiIhIIzZURERERBqxoSIiIiLSiA2VRp999hlsNhumTZuG/Px8nDhxwuiSYoLX68X69euRnZ0NRVHwww8/hMyLCJxOJ7Kzs5GcnIyXX34ZnZ2dxhQ7hdXW1uKZZ55BSkoKMjIyUFpaiq6urpB1mIV+Pv/8cyxdulT9g5EFBQX46aef1HlmYZza2looigKHw6GOMQ99OJ1OKIoSslitVnU+XDmwodLg6NGjcDgc2LNnD3w+H1588UUUFxcjEAgYXdqUNzg4iLy8PBw4cOCe8x9++CHq6+tx4MABtLa2wmq14tVXX8XAwIDOlU5tHo8H27dvx+nTp+FyuTA6OoqioiIMDg6q6zAL/eTk5KCurg5tbW1oa2vDK6+8gpKSEvXgwCyM0draii+//BJLly4NGWce+lm8eDGCwaC6+P1+dS5sOQhN2rPPPiuVlZUhY08++aS89957BlUUmwBIU1OT+nhsbEysVqvU1dWpY8PDw2KxWOSLL74woMLY0dfXJwDE4/GICLOIBmlpaXLw4EFmYZCBgQFZsGCBuFwuWbVqlVRVVYkI3xt6qq6ulry8vHvOhTMHnqGapJGREbS3t6OoqChkvKioCKdOnTKoKgKAnp4eXL16NSSbpKQkrFq1itlE2M2bNwH884XhzMI4t2/fRkNDAwYHB1FQUMAsDLJ9+3a8/vrrWLNmTcg489BXd3c3srOzYbPZsGnTJly4cAFAeHPglyNP0l9//YXbt28jMzMzZDwzMxNXr141qCoCoL7+98rm0qVLRpQUE0QEb731Fl544QUsWbIEALMwgt/vR0FBAYaHh2E2m9HU1ISnnnpKPTgwC/00NDTgzJkzaG1tHTfH94Z+VqxYgW+++QYLFy7EH3/8gQ8++AArV65EZ2dnWHNgQ6WRoighj0Vk3BgZg9noa8eOHTh79ixOnjw5bo5Z6Cc3NxcdHR24ceMGvv/+e2zZsgUej0edZxb66O3tRVVVFZqbmzFt2rT7rsc8Iq+4uFj92W63o6CgAPPmzcORI0fw3HPPAQhPDrzkN0mzZs1CfHz8uLNRfX194zpd0tfduzeYjX7efPNN/Pjjjzh+/DhycnLUcWahP5PJhPnz52P58uWora1FXl4ePv74Y2ahs/b2dvT19SE/Px8JCQlISEiAx+PB/v37kZCQoL7mzEN/06dPh91uR3d3d1jfF2yoJslkMiE/Px8ulytk3OVyYeXKlQZVRQBgs9lgtVpDshkZGYHH42E2YSYi2LFjBxobG3Hs2DHYbLaQeWZhPBHBrVu3mIXOCgsL4ff70dHRoS7Lly/H5s2b0dHRgSeeeIJ5GOTWrVs4f/48srKywvu+mMQH5um/GhoaJDExUb766is5d+6cOBwOmT59uly8eNHo0qa8gYEB8fl84vP5BIDU19eLz+eTS5cuiYhIXV2dWCwWaWxsFL/fL+Xl5ZKVlSX9/f0GVz61vPHGG2KxWMTtdkswGFSXoaEhdR1moZ9du3aJ1+uVnp4eOXv2rOzevVvi4uKkublZRJiF0f73Lj8R5qGXt99+W9xut1y4cEFOnz4t69atk5SUFPVYHa4c2FBp9Omnn8qcOXPEZDLJsmXL1NvFKbKOHz8uAMYtW7ZsEZE7t8JWV1eL1WqVpKQkeemll8Tv9xtb9BR0rwwAyKFDh9R1mIV+Kioq1H+PZs+eLYWFhWozJcIsjPbvhop56GPjxo2SlZUliYmJkp2dLWVlZdLZ2anOhysHRUQkDGfQiIiIiGIWP0NFREREpBEbKiIiIiKN2FARERERacSGioiIiEgjNlREREREGrGhIiIiItKIDRURERGRRmyoiGhKcjqdePrpp3Xfr9vthqIoUBQFpaWlE3qO0+lUn7Nv376I1kdEkcGGiogeOnebj/stW7duxc6dO/Hzzz8bVmNXVxcOHz48oXV37tyJYDAY8sXSRPRwSTC6ACKiBxUMBtWfjx49ivfffx9dXV3qWHJyMsxmM8xmsxHlAQAyMjIwY8aMCa17t9b4+PjIFkVEEcMzVET00LFarepisVigKMq4sX9f8tu6dStKS0tRU1ODzMxMzJgxA3v37sXo6CjeeecdzJw5Ezk5Ofj6669D9nX58mVs3LgRaWlpSE9PR0lJCS5evPjANX/33Xew2+1ITk5Geno61qxZg8HBQY2vBBFFCzZURBQzjh07hitXrsDr9aK+vh5OpxPr1q1DWloaWlpaUFlZicrKSvT29gIAhoaGsHr1apjNZni9Xpw8eRJmsxlr167FyMjIhPcbDAZRXl6OiooKnD9/Hm63G2VlZeBXqRJNHWyoiChmzJw5E/v370dubi4qKiqQm5uLoaEh7N69GwsWLMCuXbtgMpnwyy+/AAAaGhoQFxeHgwcPwm63Y9GiRTh06BACgQDcbveE9xsMBjE6OoqysjLMnTsXdrsd27ZtM/SSJBGFFz9DRUQxY/HixYiL++f/kZmZmViyZIn6OD4+Hunp6ejr6wMAtLe349dff0VKSkrIdoaHh/Hbb79NeL95eXkoLCyE3W7Ha6+9hqKiImzYsAFpaWkafyMiihZsqIgoZiQmJoY8VhTlnmNjY2MAgLGxMeTn5+Pbb78dt63Zs2dPeL/x8fFwuVw4deoUmpub8cknn2DPnj1oaWmBzWabxG9CRNGGl/yIiO5j2bJl6O7uRkZGBubPnx+yWCyWB9qWoih4/vnnsXfvXvh8PphMJjQ1NUWociLSGxsqIqL72Lx5M2bNmoWSkhKcOHECPT098Hg8qKqqwu+//z7h7bS0tKCmpgZtbW0IBAJobGzEn3/+iUWLFkWweiLSEy/5ERHdxyOPPAKv14t3330XZWVlGBgYwKOPPorCwkKkpqZOeDupqanwer3Yt28f+vv7MWfOHHz00UcoLi6OYPVEpCdFeN8uEVHYuN1urF69GtevX5/wH/a8a+7cuXA4HHA4HBGpjYgih5f8iIgiICcnB+Xl5RNat6amBmazGYFAIMJVEVGk8AwVEVEY/f3337h8+TKAO18pY7Va/+9zrl27hmvXrgG4c/fgg37gnYiMx4aKiIiISCNe8iMiIiLSiA0VERERkUZsqIiIiIg0YkNFREREpBEbKiIiIiKN2FARERERacSGioiIiEgjNlREREREGrGhIiIiItLoP+Uz5E8/u/bTAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Plot the outputs of the system on the same graph, in different colors\n", + "t = response.time\n", + "x = response.states\n", + "plt.plot(t, x[0], 'b', t, x[1], 'r')\n", + "plt.legend(['$x_1$', '$x_2$'])\n", + "plt.xlim(0, 50)\n", + "plt.ylabel('States')\n", + "plt.xlabel('Time [s]')\n", + "plt.title(\"Initial response from $x_1 = 1$, $x_2 = 0$\");" + ] + }, + { + "cell_type": "markdown", + "id": "b136ca77", + "metadata": { + "id": "Cou0QVnkTou9" + }, + "source": [ + "There are also lots of options available in `initial_response` and `.plot()` for tuning the plots that you get." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "3d127338", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmoAAAHbCAYAAAB7rLYyAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzsnXd8FHX+h5/Zkuxueu8hpEBCCIQSOlIFRcCGYkOxYT317F5R9PT01EM9Pc+CvaGCDZWq9BpKCCWd9N6T3Wzf+f0xyUJIgAQSCP7m4ZVXwpTvfGfLzHs+VRBFUURGRkZGRkZGRqbPoTjfE5CRkZGRkZGRkekcWajJyMjIyMjIyPRRZKEmIyMjIyMjI9NHkYWajIyMjIyMjEwfRRZqMjIyMjIyMjJ9FFmoycjIyMjIyMj0UWShJiMjIyMjIyPTR5GFmoyMjIyMjIxMH0UWajIyMjIyMjIyfRRZqMnInAWCIPDDDz+ccpuFCxdyxRVXdHnMgoICBEEgLS3trOb2/4nFixcTFBTUpffjQmTjxo0IgkBDQ8NZjRMVFcXrr7/eI3O6EI4rI/NHQHW+JyAj01dYuHAhDQ0N3brRl5eX4+PjA0gCq3///uzfv5/k5GTnNm+88QZyp7beIyMjg2effZbvv/+eMWPGON8Pmb5Damoqbm5u53saMjIXJLJQk5E5C4KDg0+7jZeXV6/Pw2Kx4OLi0uvH6Yvk5eUBcPnllyMIwhmPY7VaUavVPTUtGY59LgMCAs73VGRkLlhk16eMzEmYPHkyDzzwAI8//ji+vr4EBwezePHidtsc72rr378/AMOGDUMQBCZPngx0dH2uXr2aCRMm4O3tjZ+fH7Nnz3aKja4SFRXF888/z8KFC/Hy8uLOO+8EYPv27Vx00UVotVoiIiJ44IEHMBgMzv3efvtt4uLi0Gg0BAUFMW/evHbne//993P//fc75/a3v/2tnTWwvr6em2++GR8fH3Q6HZdeeik5OTnO9R9//DHe3t6sWbOGhIQE3N3dueSSSygvL3dus3HjRkaNGoWbmxve3t6MHz+ewsJC5/qVK1cyYsQINBoN0dHRPPvss9hstk5fh8WLFzNnzhwAFAqFU6g5HA6ee+45wsPDcXV1JTk5mdWrVzv3a3Mvf/PNN0yePBmNRsPnn3/e6TEaGhpYtGgRQUFBaDQaBg8ezM8//+xcv2LFChITE3F1dSUqKop///vf7fbvzB3r7e3Nxx9/3G4uy5YtY9y4cWg0GhITE9m4cWOn82njdO91VVUVc+bMQavV0r9/f7744otTjgenfm8WL15McnIy7777LhEREeh0Oq655pp27ti2z/qLL75IaGgoAwYMADq6PgVBYOnSpVx55ZXodDri4uL46aef2s3lp59+Ii4uDq1Wy5QpU/jkk09O6/4VBIF3332X2bNno9PpSEhIYMeOHeTm5jJ58mTc3NwYO3Zsu+9bXl4el19+OUFBQbi7u5OSksL69evbjXuq783y5ctJSkpCq9Xi5+fH9OnT270PMjJnjSgjIyOKoijecsst4uWXX+78/6RJk0RPT09x8eLFYnZ2tvjJJ5+IgiCIa9eudW4DiN9//70oiqK4e/duERDXr18vlpeXi7W1tZ2Ou3z5cnHFihVidna2uH//fnHOnDliUlKSaLfbRVEUxfz8fBEQ9+/ff9K59uvXT/T09BRfeeUVMScnR8zJyRHT09NFd3d38bXXXhOzs7PFbdu2icOGDRMXLlwoiqIopqamikqlUvzyyy/FgoICcd++feIbb7zR7nzd3d3FBx98UMzMzBQ///xzUafTie+9955zm7lz54oJCQni5s2bxbS0NHHmzJlibGysaLFYRFEUxY8++khUq9Xi9OnTxdTUVHHv3r1iQkKCeMMNN4iiKIpWq1X08vISH330UTE3N1c8cuSI+PHHH4uFhYWiKIri6tWrRU9PT/Hjjz8W8/LyxLVr14pRUVHi4sWLO30dmpubxY8++kgExPLycrG8vFwURVFcsmSJ6OnpKX711VdiZmam+Pjjj4tqtVrMzs5u9xpHRUWJK1asEI8ePSqWlpZ2GN9ut4tjxowRExMTxbVr14p5eXniypUrxV9//VUURVHcs2ePqFAoxOeee07MysoSP/roI1Gr1YofffRRp5+RNry8vJzbtM0lPDxcXL58uXjkyBHxjjvuED08PMSamhpRFEVxw4YNIiDW19eLoiie9r0WRVG89NJLxcGDB4vbt28X9+zZI44bN07UarXia6+91ulrebr35plnnhHd3NzEqVOnivv37xc3bdokxsbGOt9bUZQ+6+7u7uKCBQvEQ4cOiQcPHhRFUfq8Hn/ctvP98ssvxZycHPGBBx4Q3d3dnd+Z/Px8Ua1Wi48++qiYmZkpfvXVV2JY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PPIIKSkp/OMf/2D+/Pns2LGDt956i7fffts5xtSpU3nrrbcYM2YMDoeDJ554otMyIP/973+Ji4sjISGB1157jfr6em677bZO53W693rgwIFccskl3Hnnnbz33nuoVCoeeuihU1oIT/feAGg0Gm655RZeffVVmpqaeOCBB7j22mu7VKamO9x1110sWbKEJ554gttvv520tDRnluzZlGDpjNjYWL777jvmzJmDIAj8/e9/b2c1P9X3ZteuXfz222/MmDGDwMBAdu3aRXV1dbcfCGRkToVsUZOR6SFUKhX/+c9/ePfddwkNDe1UvCgUCpYtW8bevXsZPHgwf/7zn3nllVd65PhDhgxh06ZN5OTkMHHiRIYNG8bf//53QkJCAKkkxHfffcfUqVNJSEjgnXfe4auvviIxMdE5xs0334zRaGTUqFHcd999/OlPf2LRokXO9R999BEjRoxg9uzZjB07FlEU+fXXX7tcf0yn05GZmcnVV1/NgAEDWLRoEffffz933XUXADNnzuTnn39m3bp1pKSkMGbMGJYsWUK/fv269Vo88MADPPLIIzzyyCMkJSWxevVqZ7mH7rJixQpSUlK4/vrrGTRoEI8//rjTajp8+HC++eYbli1bxuDBg3n66ad57rnnWLhwoXP/f//730RERHDRRRdxww038Oijj6LT6Toc56WXXuJf//oXQ4cOZcuWLfz444/4+/t3OqfTvdcgvVcRERFMmjSJq666ikWLFhEYGHjS8zzdewOSqLnqqquYNWsWM2bMYPDgwe1EaU/Rv39/li9fznfffceQIUP43//+x1//+lcAXF1de/RYr732Gj4+PowbN445c+Ywc+ZMhg8f7lx/qu+Np6cnmzdvZtasWQwYMIC//e1v/Pvf/+bSSy/t0TnK/P9GELvq+JeRkflDM3nyZJKTk+VWP+eYk3W06GssXryYH3744by1NnvhhRd45513KC4uPi/Hl5E5X8iuTxkZGRmZPsfbb79NSkoKfn5+bNu2jVdeeYX777//fE9LRuacIws1GRkZGZk+R05ODs8//zx1dXVERkbyyCOP8NRTT53vacnInHNk16eMjIyMjIyMTB9FTiaQkZGRkZGRkemjyEJNRkZGRkZGRqaPIgs1GRkZGRkZGZk+iizUZGRkZGRkZGT6KLJQk5GRkZGRkZHpo8hCTUZGRkZGRkamjyIL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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "for X0 in [[1, 0, 0, 0], [0, 2, 0, 0], [1, 2, 0, 0], [0, 0, 1, 0], [0, 0, 2, 0]]:\n", + " response = ct.initial_response(sys, T=20, X0=X0)\n", + " response.plot(label=f\"{X0=}\")" + ] + }, + { + "cell_type": "markdown", + "id": "c09ccc24", + "metadata": { + "id": "b3VFPUBKT4bh" + }, + "source": [ + "### Step response\n", + "\n", + "Similar to `initial_response`, you can also generate a step response for a linear system using the `step_response` function, which returns a time response object:" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "91364e84", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "cplt = ct.step_response(sys).plot()" + ] + }, + { + "cell_type": "markdown", + "id": "3bd1f5be", + "metadata": { + "id": "iHZR1Q3IcrFT" + }, + "source": [ + "We can analyze the properties of the step response using the `stepinfo` command:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "00fe1ab8", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Input 0, output 0 rise time = 0.6153902252990775 seconds\n", + "\n" + ] + }, + { + "data": { + "text/plain": [ + "[[{'RiseTime': 0.6153902252990775,\n", + " 'SettlingTime': 89.02645259326653,\n", + " 'SettlingMin': -0.13272845655369417,\n", + " 'SettlingMax': 0.9005994876222034,\n", + " 'Overshoot': 170.17984628666102,\n", + " 'Undershoot': 39.81853696610825,\n", + " 'Peak': 0.9005994876222034,\n", + " 'PeakTime': 2.3589958636464634,\n", + " 'SteadyStateValue': 0.33333333333333337}],\n", + " [{'RiseTime': 0.6153902252990775,\n", + " 'SettlingTime': 73.6416969607896,\n", + " 'SettlingMin': 0.2276019820782241,\n", + " 'SettlingMax': 1.13389337710215,\n", + " 'Overshoot': 70.08400656532254,\n", + " 'Undershoot': 0.0,\n", + " 'Peak': 1.13389337710215,\n", + " 'PeakTime': 6.564162403190159,\n", + " 'SteadyStateValue': 0.6666666666666665}]]" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "step_info = ct.step_info(sys)\n", + "print(\"Input 0, output 0 rise time = \",\n", + " step_info[0][0]['RiseTime'], \"seconds\\n\")\n", + "step_info" + ] + }, + { + "cell_type": "markdown", + "id": "4c43d03c", + "metadata": { + "id": "F8KxXwqHWFab" + }, + "source": [ + "Note that by default the inputs are not included in the step response plot (since they are a bit boring), but you can change that:" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "9e0eaa51", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAHbCAYAAABGPtdUAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAlIxJREFUeJzs3Xl4VOX9NvB79slkMpOdJCQEAiHsAUFUEPetIki1uBQUa921avurVfta41KX2la7idYVRarijlYtiiAiICJrWEPYQhayZzLJZNbn/ePMOckkM5OZmAWG+3NduZKcOXPmyUkgd77PphJCCBARERHRcU890A0gIiIiot7BYEdEREQUIxjsiIiIiGIEgx0RERFRjGCwIyIiIooRDHZEREREMYLBjoiIiChGMNgRERERxQgGOyIiIqIYwWBHRDHjhRdeQE5ODtRqNf72t78NdHN63cGDB6FSqbBly5YfdZ2zzjoLd999d6+06Xh4XaITCYMdURSqq6tx8803Y8iQITAYDMjIyMCFF16IdevWKeeoVCp8+OGHA9fIE5TNZsMdd9yBe++9F+Xl5bjpppsGuknUyfvvv49HH310oJtBFNO0A90AouPJ5ZdfDrfbjddeew15eXk4evQoVqxYgfr6+oFuGgDA5XJBr9cPdDMGxOHDh+F2uzFz5kxkZmb2+Dputxs6na4XW0byPU1OTh7ophDFPFbsiCLU2NiINWvW4E9/+hPOPvts5ObmYurUqbj//vsxc+ZMAMDQoUMBAD/96U+hUqmUzwHg448/xuTJk2E0GpGXl4eHH34YHo9HeVylUuG5557DT37yE8TFxWHYsGF45513wrbprLPOwh133IHf/OY3SE1Nxfnnnw8A2LlzJy6++GKYzWYMGjQI11xzDWpra5Xnvfvuuxg/fjzi4uKQkpKC8847Dy0tLQCA6667DnPmzMHDDz+M9PR0WCwW3HzzzXC5XMrznU4n7rzzTqSnp8NoNOL000/H999/rzy+atUqqFQqrFixAlOmTIHJZMK0adOwZ88e5ZytW7fi7LPPRkJCAiwWCyZPnoyNGzcqj69duxZnnHEG4uLikJOTgzvvvFNpY2eLFi3C+PHjAQB5eXlQqVQ4ePAgAOC5557D8OHDodfrUVBQgMWLFwc8V6VS4fnnn8ell16K+Ph4/PGPfwz6Gk6nE7/73e+Qk5MDg8GA/Px8vPzyy8rjX3/9NaZOnQqDwYDMzEzcd999Ad/foUOHdukenjhxIh566KGAtkT7M9Dd97qlpQXXXnstzGYzMjMz8de//jXs9YDw35tFixYhMTERH374IUaOHAmj0Yjzzz8fZWVlyvMfeughTJw4Ea+88gry8vJgMBgghOjSFTt06FA8/vjjuP7665GQkIAhQ4bghRdeCGjL2rVrMXHiRBiNRkyZMgUffvhht93RQ4cOxR//+Efl687NzcVHH32EmpoaXHrppTCbzRg/fnzAz1tdXR2uvvpqZGdnw2QyYfz48XjzzTcDrhvu382qVaswdepUxMfHIzExEdOnT8ehQ4e6vddEvU4QUUTcbrcwm83i7rvvFm1tbUHPqa6uFgDEq6++KiorK0V1dbUQQojPP/9cWCwWsWjRIlFaWiqWL18uhg4dKh566CHluQBESkqKePHFF8WePXvEAw88IDQajdi5c2fINp155pnCbDaLe+65R+zevVvs2rVLVFRUiNTUVHH//feLXbt2iU2bNonzzz9fnH322UIIISoqKoRWqxVPP/20OHDggNi2bZt49tlnRXNzsxBCiAULFgiz2SyuvPJKUVxcLD755BORlpYmfv/73yuve+edd4qsrCzx6aefih07dogFCxaIpKQkUVdXJ4QQYuXKlQKAOOWUU8SqVavEjh07xIwZM8S0adOUa4wdO1bMnz9f7Nq1S+zdu1csXbpUbNmyRQghxLZt24TZbBbPPPOM2Lt3r/j222/FpEmTxHXXXRf0PrS2toovv/xSABAbNmwQlZWVwuPxiPfff1/odDrx7LPPij179oi//vWvQqPRiK+++irgvqenp4uXX35ZlJaWioMHDwZ9jSuuuELk5OSI999/X5SWloovv/xSvPXWW0IIIY4cOSJMJpO47bbbxK5du8QHH3wgUlNTRVFRkfL83Nxc8cwzzwRcs7CwMOCc7n4GDhw4IACIzZs3K9/LcN9rIYS49dZbRXZ2tli+fLnYtm2buOSSS4TZbBZ33XVX0K+zu+/Nq6++KnQ6nZgyZYpYu3at2Lhxo5g6dWrA97aoqEjEx8eLCy+8UGzatEls3bpV+Hw+ceaZZwa8bm5urkhOThbPPvusKCkpEU888YRQq9Vi165dQgghbDabSE5OFvPnzxc7duwQn376qRg5cmTAPQhGvu7zzz8v9u7d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VcVuy5YteOqpp7o9b/v27d2es3DhQixYsAApKSnIzs7G0qVLkZSUhCVLluDxxx9XJlI888wzuP7666FSqVBQUIAPPvgAQ4cOjabZRERERCeEqILd1VdfjV27dnV73pVXXtntOWlpafj000+7HJ83bx7mzZunfL5mzZpomkhERER0wooq2L366qt91Q4iIiIi+pF6PHli6dKlIR+74oorenpZIiIiIuqhHge75557LuDzqqoqlJaWYvr06Qx2RERERAOgx8Fu5cqVXY69/vrr2Lx5849qEBERERH1TNQ7T4Qzf/58LFq0qDcvSUREREQR6nHFrvNesa2trViyZImy4DARERER9a8eB7uMjAyoVCoIIQAAJpMJkyZNwuLFi3utcUREREQUuR4HO5/P15vtICIiIqIfqVfH2BERERHRwGGwIyIiIooRDHZEREREMYLBjoiIiChGMNgRERERxQgGOyIiIqIYwWBHREREFCMY7IiIiIhiBIMdERERUYxgsCMiIiKKEQx2RERERDGCwY6IiIgoRjDYEREREcUIBjsiIiKiGMFgR0RERBQjGOyIiIiIYgSDHREREVGMYLAjIiIiihEMdkREREQxgsGOiIiIKEYw2BERERHFCAY7IiIiohjBYEdEREQUIxjsiIiIiGIEgx0RERFRjGCwIyIiIooRDHZEREREMYLBjoiIiChGMNgRERERxQgGOyIiIqIYwWBHREREFCMY7IiIiIhiBIMdERERUYxgsCMiIiKKEQMW7GpqajBz5kyYTCYUFBRgxYoVQc9zOByYP38+EhISMGTIELz55pv93FIiIiKi44N2oF749ttvR1ZWFmpra7F8+XLMnTsXpaWlSEpKCjivqKgI9fX1KC8vR3FxMS6++GJMnjwZI0eOHKCWExERER2bBqRiZ7fb8dFHH+GRRx6ByWTCnDlzMG7cOHz88cddzl28eDGKiopgsVgwbdo0zJ49G2+99dYAtJqIiIjo2DYgFbuSkhJYrVZkZmYqxwoLC7Fjx46A8xoaGlBVVYXx48cHnLdhw4aQ13Y6nXA6ncrnNputF1tOREREdOwasIqdxWIJOGaxWGC327ucp9FoYDKZwp7X0RNPPAGr1aq85eTk9G7jg4g/ZSqsl18Gw/C8Pn8tIiIiolAGpGJnNpu7VNJsNhvMZnOX87xeL1pbW5VwF+y8ju6//378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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "stepresp = ct.step_response(sys)\n", + "cplt = stepresp.plot(plot_inputs=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "03cdf207", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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bsXLL7+MPXv24NChQ9iyZYvXX0qDkcvlwv3334+JEydK1zhP3l566SW89957+Pzzz2EymfD6668jOjqa8+TD7bffjlmzZqG5uRn//ve/cd999+HIkSODfq5yc3Px4osvYtKkSV7XA82LzWbDnDlz8Itf/AKNjY2YPHkyFi5cGInhh42/ebLZbFi1ahWampqwefNmlJaWYseOHdJjnCdvf/7zn7udohGWeRKo37S0tAgqlUo4c+aMdG3q1KnCq6++GsFRXXhsNpsgk8mE+vp64ZZbbhGee+456bF//OMfwowZMyI4ush7+eWXhfvuu09YtGiR8OyzzwqCIHCeOnE4HEJaWppw5MiRbo9xnrrTarXCiRMnpJ8nTpwobNq0iXPlMW3aNOHNN9+Ufg40L++//76Qn58vPWY2m4WYmBihsrIyfAOOkK7z1NX8+fOF3//+94IgcJ66zlNtba0watQoYcuWLUJeXp50PRzzxExfPzp69CgMBgPS09Ola0VFRTh06FAER3Xh2bVrF1JTU5GYmIjy8nIUFhZKjw32+WpsbMQf//hHPPHEE17XOU8dTp06BYvFgn/9619ITU1FXl6etLTEeeru3nvvxWuvvQaHw4G9e/eiuroal156KefKj0Dz0vWx2NhYXHTRRSgvLw/7OC8kTqcTe/fuxZgxYwBwnrr61a9+hV//+teIjY31uh6OeYrqsztRN2azudshynq9XtprRIDRaMTdd9+N5cuXA+g+Z3q9HmazOVLDi7hf//rXWLJkCeLj472uc546nD59GkajEcePH0dlZSVOnDiBq6++Gnl5eZwnH6699lrcfvvteOqppwAAf/vb35CSksK58iPQvPj7HT/Y5+3RRx9FZmYmvv/97wPgPHW2a9cuHDlyBKtXr8Znn33m9Vg45olBXz/SarUwmUxe10wmE7RabYRGdGGxWq0oKSnBrFmzcOeddwLoPmeDeb6++uor7N27F3/5y1+6PcZ56hATEwPAvXE6JiYGY8aMwcKFC7F161bOUxcNDQ2YPXs2Xn31VRQXF+Pw4cO49tprMWbMGM6VH4Hmhb/ju1u1ahXeeecd7Ny5EzKZDADnSeRyuXDfffdh5cqV0tx0Fo554vJuP8rNzYXRaERtba10raysTEp5D2YOhwO33HILMjIy8Pvf/166Pnr0aK9K3sE8X5999hmOHDmCzMxMpKWlYd26dVi+fDnuuusuzlMnI0eOhEql8romeKorOU/eTpw4AYPBgBtuuAEKhQIFBQWYPn06duzYwbnyI9C8dH2stbUVx48fx+jRo8M+zguB+Dvqgw8+QFJSknSd8+RmMpmwf/9+zJ49G2lpaZgzZw6OHTuGtLQ0tLW1hWee+mx3IPl00003CT/5yU+EtrY2YePGjUJ8fLzQ2NgY6WFF3OLFi4VrrrlGaG9v97q+ZcsWYejQocKJEyeEmpoaYcyYMcI//vGPCI0yslpbW4Wamhrp6+abbxYeeeQRoampifPUxfz584W77rpLsFqtwjfffCOkp6cLn3zyCeepi+bmZsFgMAibNm0SXC6XcPjwYSE9PV147733Bv1ctbe3CxaLRZg6daqwZs0awWKxCE6nM+C8WK1WISsrS1i9erVgtVqFhx56SJg6dWqEP0n/8jdPH3zwgZCcnCyUlZV1ew3nyT1PDofD63f622+/LYwYMUKoqakRXC5XWOaJQV8/O3funHDdddcJMTExQm5urvDRRx9FekgRV1lZKQAQoqOjhdjYWOlrx44dgiAIwjPPPCMkJiYKcXFxwrJlywSXyxXhEV8YOlfvCgLnqbOmpiZhzpw5glarFYYOHSqsXLlSeozz5O39998XioqKBK1WK2RnZwvLly+XHhvMc7Vo0SIBgNfX9u3bBUEIPC979+4VCgsLhejoaGHq1KkDviLV3zxNnz5diIqK8vqdfvfdd0uv4zx1/HkSbd++3at6VxD6f55kgjCIum8SERERDVLc00dEREQ0CDDoIyIiIhoEGPQRERERDQIM+oiIiIgGAQZ9RERERIMAgz4iIiKiQYBBHxEREdEgwKCPiIiIaBBg0EdEFMDJkye9zhHtD5WVlZDJZNBqtdiwYUPA57799tvQarWQyWRe53oTEfWEJ3IQ0aCn1Wql71tbW6HRaCCTyQAA5eXlGDJkSL++f2VlJfLz82G1WoN+jUwmQ01NDdLS0vpxZEQ0kERFegBERJFmNpul76Ojo3Ho0CEMGzYscgMiIuoHXN4lIgqgsrIS0dHR0s8ymQwvv/wyhgwZgqSkJKxbtw5btmxBTk4OUlJSsG7dOum5jY2NmD9/PlJSUpCTk4NXX3016PfdvXs3xo8fD51Oh7S0NDz//PN9+rmIaPBhpo+IKEQ7d+7EkSNHsHnzZvz0pz9FcXExDh48iG3btuHOO+/ETTfdBIVCgYULF6KgoADV1dWoqKjAzJkzMW7cOBQVFfX4HkuWLMGyZcswf/58NDU1obKysv8/GBENaMz0ERGF6MEHH0R0dDTmzJmD5uZm/PznP4dGo8Hs2bPR0tKCM2fOoLa2Fv/5z3/wzDPPQK1WIz8/H/Pnz8c777wT1HsolUp8++23aGxsRHx8PMaPH9/Pn4qIBjoGfUREIUpJSQEAKBQKKJVKJCcnS49FR0ejtbUVJ0+eRGtrKxITExEXF4e4uDj89a9/xdmzZ4N6j7///e84fPgwRowYgSlTpmDXrl398lmIaPDg8i4RUT/IzMxEXFwcGhoaevX6vLw8rF+/Hg6HA6tWrcKCBQtw/PjxPh4lEQ0mzPQREfWDzMxMTJw4EY8//jja2trgcDiwf/9+lJeXB/X6tWvXoqGhAVFRUdDpdFAoFP08YiIa6Bj0ERH1k7Vr16Kqqkqq7F2yZAksFktQr926dSvy8vKg0+nwpz/9CatXr+7n0RLRQMfmzEREEVZVVYX8/Hyo1WqsWbMGxcXFfp/7zjvv4M4774TVakVVVRVSU1PDOFIi+i5j0EdEREQ0CHB5l4iIiGgQYNBHRERENAgw6CMiIiIaBBj0EREREQ0CDPqIiIiIBgEGfURERESDAIM+IiIiokGAQR8RERHRIMCgj4iIiGgQYNBHRERENAj8f5z1vMIhPOtVAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Plot the inputs on top of the outputs\n", + "cplt = stepresp.plot(plot_inputs='overlay')" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "5cc0e76c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "stepresp.time.shape=(1348,)\n", + "stepresp.inputs.shape=(1, 1, 1348)\n", + "stepresp.states.shape=(4, 1, 1348)\n", + "stepresp.outputs.shape=(2, 1, 1348)\n" + ] + } + ], + "source": [ + "# Look at the \"shape\" of the step response\n", + "print(f\"{stepresp.time.shape=}\")\n", + "print(f\"{stepresp.inputs.shape=}\")\n", + "print(f\"{stepresp.states.shape=}\")\n", + "print(f\"{stepresp.outputs.shape=}\")" + ] + }, + { + "cell_type": "markdown", + "id": "beecce7f", + "metadata": { + "id": "FDfZkyk1ly0T" + }, + "source": [ + "### Forced response\n", + "\n", + "To compute the response to an input, using the convolution equation, we can use the `forced_response` function:" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "33d8291a", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "T = np.linspace(0, 50, 500)\n", + "U1 = np.cos(T)\n", + "U2 = np.sin(3 * T)\n", + "\n", + "resp1 = ct.forced_response(sys, T, U1)\n", + "resp2 = ct.forced_response(sys, T, U2)\n", + "resp3 = ct.forced_response(sys, T, U1 + U2)\n", + "\n", + "# Plot the individual responses\n", + "resp1.sysname = 'U1'; resp1.plot(color='b')\n", + "resp2.sysname = 'U2'; resp2.plot(color='g')\n", + "resp3.sysname = 'U1 + U2'; resp3.plot(color='r');" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "10a05cb1", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Show that the system response is linear\n", + "cplt = resp3.plot(label=\"G(U1 + U2)\")\n", + "cplt.axes[0, 0].plot(resp1.time, resp1.outputs[0] + resp2.outputs[0], 'k--', label=\"G(U1) + G(U2)\")\n", + "cplt.axes[1, 0].plot(resp1.time, resp1.outputs[1] + resp2.outputs[1], 'k--')\n", + "cplt.axes[2, 0].plot(resp1.time, resp1.inputs[0] + resp2.inputs[0], 'k--')\n", + "cplt.axes[0, 0].legend(loc='upper right', fontsize='x-small');" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "c03f2556", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Show that the forced response from non-zero initial condition is not linear\n", + "X0 = [1, 0, 0, 0]\n", + "resp1 = ct.forced_response(sys, T, U1, X0=X0)\n", + "resp2 = ct.forced_response(sys, T, U2, X0=X0)\n", + "resp3 = ct.forced_response(sys, T, U1 + U2, X0=X0)\n", + "\n", + "cplt = resp3.plot(label=\"G(U1 + U2)\")\n", + "cplt.axes[0, 0].plot(resp1.time, resp1.outputs[0] + resp2.outputs[0], 'k--', label=\"G(U1) + G(U2)\")\n", + "cplt.axes[1, 0].plot(resp1.time, resp1.outputs[1] + resp2.outputs[1], 'k--')\n", + "cplt.axes[2, 0].plot(resp1.time, resp1.inputs[0] + resp2.inputs[0], 'k--')\n", + "cplt.axes[0, 0].legend(loc='upper right', fontsize='x-small');" + ] + }, + { + "cell_type": "markdown", + "id": "891204fe", + "metadata": { + "id": "mo7hpvPQkKke" + }, + "source": [ + "### Frequency response" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "b2966a99", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Manual computation of the frequency response\n", + "resp = ct.input_output_response(sys, T, np.sin(1.35 * T))\n", + "\n", + "cplt = resp.plot(\n", + " plot_inputs='overlay', \n", + " legend_map=np.array([['lower left'], ['lower left']]),\n", + " label=[['q1', 'u[0]'], ['q2', None]])" + ] + }, + { + "cell_type": "markdown", + "id": "75fa2659", + "metadata": { + "id": "muqeLlJJ6s8F" + }, + "source": [ + "The magnitude and phase of the frequency response is controlled by the transfer function,\n", + "\n", + "$$\n", + "G(s) = C (sI - A)^{-1} B + D\n", + "$$\n", + "\n", + "which can be computed using the `ss2tf` function:" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "443764af", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + ": u to q1, q2\n", + "Inputs (1): ['u[0]']\n", + "Outputs (2): ['q1', 'q2']\n", + "\n", + "Input 1 to output 1:\n", + "\n", + " 4\n", + " -------------------------------------\n", + " s^4 + 0.2 s^3 + 8.01 s^2 + 0.8 s + 12\n", + "\n", + "Input 1 to output 2:\n", + "\n", + " 2 s^2 + 0.2 s + 8\n", + " -------------------------------------\n", + " s^4 + 0.2 s^3 + 8.01 s^2 + 0.8 s + 12\n" + ] + } + ], + "source": [ + "try:\n", + " G = ct.ss2tf(sys, name='u to q1, q2')\n", + "except ct.ControlMIMONotImplemented:\n", + " # Create SISO transfer functions, in case we don't have slycot\n", + " G = ct.ss2tf(sys[0, 0], name='u to q1')\n", + "print(G)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "fd2df9a9", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "G(1.35j)=array([[3.33005647-2.70686327j],\n", + " [3.80831226-2.72231858j]])\n", + "Gain: [[4.29143157]\n", + " [4.681267 ]]\n", + "Phase: [[-0.6825322 ]\n", + " [-0.62061375]] ( [[-39.10621449]\n", + " [-35.55854848]] deg)\n" + ] + } + ], + "source": [ + "# Gain and phase for the simulation above\n", + "from math import pi\n", + "val = G(1.35j)\n", + "print(f\"{G(1.35j)=}\")\n", + "print(f\"Gain: {np.absolute(val)}\")\n", + "print(f\"Phase: {np.angle(val)}\", \" (\", np.angle(val) * 180/pi, \"deg)\")" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "bf710831", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "G(0)=array([[0.33333333+0.j],\n", + " [0.66666667+0.j]])\n", + "Final value of step response: 0.33297541813724874\n" + ] + } + ], + "source": [ + "# Gain and phase at s = 0 (= steady state step response)\n", + "print(f\"{G(0)=}\")\n", + "print(\"Final value of step response:\", stepresp.outputs[0, 0, -1])" + ] + }, + { + "cell_type": "markdown", + "id": "5108e6c6", + "metadata": { + "id": "I9eFoXm92Jgj" + }, + "source": [ + "The frequency response across all frequencies can be computed using the `frequency_response` function:" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "41429d56", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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du2ylvnvf/+rBgUFqYWFhdZ1K1asUDUajZqenq6qqqpGRUWpr776qnW7yWRSY2JirIPAwsJC1dPT0zrIqfLQQw+p99xzzyXzi4uLU2+88cYa6yZMmKDedNNN1s/VBwL1yfXige+l/Pvf/1bj4uKsnwsLC1W9Xq8uXrzYuq68vFyNjo5W582bp6rqhYHX999/f9nY77//vurn52cdPF5s4MCB6tSpU2usGz9+vDpmzBhVVRs2CPziiy+sZbKzs1UvLy/1yy+/VFW19iBw8ODB6iuvvFJjv4sWLVKjoqJUVVXVX375RdVqtWpycrJ1+08//XTZQeCuXbtUQE1MTKxz+6RJk9Tg4GC1qKjIuu69995TfX19rf8Ruf7669WePXvWqlvXIPDDDz+0bj906JAKWAeNEyZMUG+++eYaMe699956DQKrx/38889VQF27dq113T/+8Q+1Q4cOl4xTUVGh+vn5qcuWLVNVVVVff/11tX379tYBeXXffPON6u/vbx0wCuFocjpYiGbqhhtuYO/evezdu5dt27YxatQobrrpJs6cOQPAkSNH6NGjBz4+PtY61113HRaLhWPHjpGfn09aWhrXXnutdbtOp6NPnz7Wz4cPH6a0tJSRI0fi6+trfX366ackJCRcNr/qcas+HzlypM6yV8q1KRISEjCZTFx33XXWdXq9nn79+tXKp/rPXpe9e/fSq1cvgoOD69x+5MiRGvuByp/jUj/35VRvv+DgYDp06HDJOLt27eKll16q8TuaOnUqaWlpFBcXc+TIEVq2bElMTEyd8evSo0cPhg8fTrdu3Rg/fjwffPABubm5tcp4e3vXiFlYWEhycrJ13ZXatEr37t2ty1FRUQBkZmYCcOzYMfr161ej/MWf6xM3IiICgG7dutVYV7Wfqn0+8sgjtG/fnoCAAAICAigsLCQpKQmA8ePHU1JSQps2bZg6dSrfffed9bT7yJEjiYuLo02bNtx///0sXryY4uLieuUphD00/IpoIYRL8PHxoV27dtbP11xzDQEBAXzwwQfMnTsXVVVRFKXOupdafzGLxQLAihUraNGiRY1tjbmw/1L7tUWul6Kev8bx4jh17bP6ILQuXl5eV9zf5faj0Whq5ARgMpmuGPNSsatYLBbmzJnDHXfcUWubp6dnres8LxerilarZfXq1WzevJlVq1bx9ttv8/zzz7Nt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PXs2er2eyMjIepX/5ptv8PX1RVEU0tPT7ZydEMLRZBAohBBN0KpVK7y9vfH19cXX15dWrVo5OqUaHnrooRoDupKSEu677z78/Pxo2bIln3/+uXXbnXfeSWFhoSPSFEI4gM7RCQghhKtbt24dAwYMuOR2k8mEXq+/ihld2qxZs8jJyeHs2bMcPHiQMWPGcM0119C+fXtHpyaEuMrkSKAQQtjYhg0b6NixI88//zyhoaG88sor5OTkcPfddxMaGkq7du348MMPreUnT57MU089xfXXX4+vry8TJ04kPT2dESNGEBAQwL333ovZbK5zX61atWLr1q01Yr366quXzG3RokXMmjULf39/Bg4cyG233cYXX3xhux9eCOEy5EigEELYwcmTJ/H29iYtLQ2z2cyDDz6ITqcjKSmJkydPMmLECDp27MigQYMAWLp0KWvXriUsLIzevXtzyy238OmnnxIdHU2fPn1Yvnw5Y8eObVJOubm5pKen061bN+u6Hj16sH379ibFFUK4JhkECiFEE40cORKtVgvAo48+yujRo/H29ua5555Dq9Wi0Wj45ptvSEhIwNvbm+7du/PQQw/x+eefWweBEyZMoGPHjgAMHToUX19fOnfuDMDw4cPZv39/kweBhYWFaLVavL29rev8/f3lOkAh3JScDhZCiCZavXo1eXl55OXl8Y9//AOAqKgo68AwKysLs9lMTEyMtU5cXBypqanWz+Hh4dZlLy8vwsLCanwuKipqcp6+vr6YzWaKi4ut64xGI76+vk2OLYRwPTIIFEIIO1AUxbocFhaGRqMhJSXFui4pKYno6Ogm78fHx6fGoO5yt3YJCgoiMjKSAwcOWNft27ePLl26NDkPIYTrkUGgEELYmVar5Y477uD555+npKSEgwcP8tFHH3H33Xc3OXbPnj35/PPPMZvNrFmzho0bN162/H333cff//53CgoK2Lp1Kz/++CMTJkxoch5CCNcjg0AhhLgK3n33XUpLS4mJieG2227jpZdeYvDgwU2O+9JLL7F3714CAwP56KOPrnjd4EsvvURAQABRUVGMHz+eBQsW0KFDhybnIYRwPYqqqqqjkxBCCGF7c+fO5dVXXyUwMLDGqehL+fbbb/njH/9IaWkpZ86cISIi4ipkKYRwFBkECiGEEEK4ITkdLIQQQgjhhmQQKIQQQgjhhmQQKIQQQgjh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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "freqresp = ct.frequency_response(sys)\n", + "cplt = freqresp.plot()" + ] + }, + { + "cell_type": "markdown", + "id": "5ec3b52c", + "metadata": { + "id": "pylQb07G2cqe" + }, + "source": [ + "By default, frequency responses are plotted using a \"Bode plot\", which plots the log of the magnitude and the (linear) phase against the log of the forcing frequency.\n", + "\n", + "You can also call the Bode plot command directly, and change the way the data are presented:" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "456ad3a9", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAHbCAYAAABGPtdUAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAuARJREFUeJzs3Xd8VFXawPHfvTOTmfQKpNJ7F5EmVWkCCquLXcCCoizqa9nVFQVsq66i6MI2dy2siF1EECkCokiR3nsJNQQIk54p5/1jyEggQCaZyZQ8388nzsy99zn3yRmOHO4951xNKaUQQgghhBBBT/d3AkIIIYQQwjukYyeEEEIIESKkYyeEEEIIESKkYyeEEEIIESKkYyeEEEIIESKkYyeEEEIIESKkYyeEEEIIESKkYyeEEEIIESKkYyeEEEIIESKkYydEDTBq1CiGDRvm8/NomsbXX3/t9XKVUtx///0kJCSgaRrr16/3+jn87f333ycuLq7K5fjqOwjU8wohypKOnRABYtSoUWia5v5JTExk4MCBbNy40d+p+UxFO5zz5s3j/fff59tvv+Xo0aO0bt3a98kJjxw9epTrrrvO32kIUeNJx06IADJw4ECOHj3K0aNHWbRoEUajkSFDhvg7Lb/bs2cPKSkpdOvWjeTkZIxGo8dlKKWw2+0+yK5mKykpASA5ORmz2eznbIQQ0rETIoCYzWaSk5NJTk6mffv2/OlPfyIzM5MTJ064j9m0aRPXXHMN4eHhJCYmcv/995OXl+fe73A4eOyxx4iLiyMxMZE//vGPKKXKnEcpxWuvvUbDhg0JDw+nXbt2fP7555fMrX79+rzwwgvcfvvtREVFkZqayjvvvHPJmEvlOnHiRD744ANmzZrlvkq5ZMmSC8oYNWoU48aN4+DBg2iaRv369QEoLi7m4Ycfpnbt2lgsFrp3787q1avdcUuWLEHTNL7//ns6duyI2Wxm2bJl5eZ56NAhbr31VhISEoiMjKRjx46sXLnSvf/vf/87jRo1IiwsjGbNmjF9+nT3vv37919wezgnJ6fM71Oay5w5c2jXrh0Wi4XOnTuzadOmS9bf7NmzufLKK7FYLDRs2JBJkyaV6Zzu2rWLnj17YrFYaNmyJQsWLLhkeQCff/45bdq0cX8nffv2JT8/313Xw4YNY9KkSdSuXZuYmBgeeOABd+cNoHfv3vzhD3/gscceIykpiX79+gFlb8WW1smXX35Jnz59iIiIoF27dvzyyy9lcvn3v/9NRkYGERER/O53v2Py5MmXvB1dWu6nn35Kjx49CA8P56qrrmLnzp2sXr2ajh07EhUVxcCBA8u0mdWrV9OvXz+SkpKIjY2lV69erF27tkzZEydOpG7dupjNZlJTU3n44Yfd+6ZNm0aTJk2wWCzUqVOH3//+95etZyH8RgkhAsLIkSPV0KFD3Z9zc3PVAw88oBo3bqwcDodSSqn8/HyVmpqqbrzxRrVp0ya1aNEi1aBBAzVy5Eh33KuvvqpiY2PV559/rrZu3aruvfdeFR0dXabsP//5z6p58+Zq3rx5as+ePeq9995TZrNZLVmy5KL51atXT0VHR6u//OUvaseOHertt99WBoNBzZ8/330MoL766qsK5Zqbm6tuvvlmNXDgQHX06FF19OhRVVxcfMF5c3Jy1PPPP6/S09PV0aNHVVZWllJKqYcfflilpqaquXPnqi1btqiRI0eq+Ph4dfLkSaWUUosXL1aAatu2rZo/f77avXu3ys7OvqD83Nxc1bBhQ9WjRw+1bNkytWvXLvXJJ5+o5cuXK6WU+vLLL5XJZFJTp05VO3bsUG+88YYyGAzqhx9+UEoptW/fPgWodevWucs8ffq0AtTixYvL5NKiRQs1f/58tXHjRjVkyBBVv359VVJSopRS6r333lOxsbHuMubNm6diYmLU+++/r/bs2aPmz5+v6tevryZOnKiUUsrhcKjWrVur3r17q3Xr1qmlS5eqK664osx3cL4jR44oo9GoJk+erPbt26c2btyopk6dqnJzc5VSrj+DUVFR6pZbblGbN29W3377rapVq5b685//7C6jV69eKioqSj355JNq+/btatu2bRd896V10rx5c/Xtt9+qHTt2qN///veqXr16ymazKaWU+umnn5Su6+qvf/2r2rFjh5o6dapKSEgoUwfnO7fcefPmqa1bt6ouXbqoDh06qN69e6uffvpJrV27VjVu3FiNGTPGHbdo0SI1ffp0tXXrVnebqFOnjrJarUoppT777DMVExOj5s6dqw4cOKBWrlyp/vWvfymllFq9erUyGAxqxowZav/+/Wrt2rVqypQpF81RCH+Tjp0QAWLkyJHKYDCoyMhIFRkZqQCVkpKi1qxZ4z7mX//6l4qPj1d5eXnubXPmzFG6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q1ePb7/9lr1799KzZ0/i4+OZO3cuTqeTZs2aeT1PIbzCb6P7hBBljBw5UgHun+joaHXVVVepzz//vMxxGzduVH369FEWi0UlJCSo0aNHu2c1KuWaLPHII4+omJgYFRcXpx577DE1YsSIMpMUnE6nmjJlimrWrJkymUyqVq1aasCAAWrp0qUXza9evXpq0qRJ6uabb1YRERGqTp066q233ipzDOcN3L9crllZWapfv34qKiqqzGSD850/eUIppQoLC9W4ceNUUlKSMpvN6uqrr1arVq1y7y+dsHD69OmL/k6l9u/fr2666SYVExOjIiIiVMeOHdXKlSvd+6dNm6YaNmyoTCaTatq0qfrwww/LxJfOzgwPD1ft27dX8+fPL3fyxOzZs1WrVq1UWFiYuuqqq9T69evdZZw/eUIp18zYbt26qfDwcBUTE6M6derknq2plFI7duxQ3bt3V2FhYapp06Zq3rx5l5w8sXXrVjVgwABVq1YtZTabVdOmTdU777zj3l86meW5555TiYmJKioqSt13332qqKjIfUyvXr3UI488ckHZlDN54lITSpRyTbBJS0tT4eHhatiwYerFF19UycnJ5eZ+sXLL+57Pr8u1a9eqjh07KrPZrJo0aaI+++wzVa9ePfXmm28qpZT66quvVOfOnVVMTIyKjIxUXbp0UQsXLlRKKbVs2TLVq1cvFR8fr8LDw1Xbtm3dE16ECESaUhUc1CCEqNHq16/Po48+yqOPPurvVILOkiVL6NOnD6dPnw7ocVmjRo0iJyfHb48GGz16NNu3b7/oeoNCiMuTW7FCCCH84vXXX6dfv35ERkby3Xff8cEHHzBt2jR/pyVEUJOOnRBCCL9YtWoVr732Grm5uTRs2JC3336b++67z99pCRHU5FasEEIIIUSIkOVOhBBCCCFChHTshBBCCCFChHTshBBCCCFChHTshBBCCCFChHTshBBCCCFChHTshBBCCCFChHTshBBCCCFChHTshBBCCCFChHTshBBCCCFChHTshBBCCCFChHTshBBCCCFChHTshBBCCCFChHTshBBCCCFChHTshBBCCCFChHTshBBCCCFChHTshBBCCCFChHTshBBCCCFChHTshBBCCCFChHTshBBCCCFChHTshBBCCCFCRMh27DIzM+nQoQMWiwW73e7vdIQQQgghfC5kO3a1atXihx9+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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "cplt = ct.bode_plot(sys, overlay_outputs=True)" + ] + }, + { + "cell_type": "markdown", + "id": "190f59c6", + "metadata": { + "id": "I_LTjP2J6gqx" + }, + "source": [ + "Note the \"dip\" in the frequency response for $q_2$ at frequency 2 rad/sec, which corresponds to a \"zero\" of the transfer function." + ] + }, + { + "cell_type": "markdown", + "id": "2f27f767-e012-45f9-8b76-cc040cfc89e2", + "metadata": {}, + "source": [ + "## Example 2: Trajectory tracking for a kinematic vehicle model\n", + "\n", + "This example illustrates the use of python-control to model, analyze, and design nonlinear control systems.\n", + "\n", + "We make use of a simple model for a vehicle navigating in the plane, known as the \"bicycle model\". The kinematics of this vehicle can be written in terms of the contact point $(x, y)$ and the angle $\\theta$ of the vehicle with respect to the horizontal axis:\n", + "\n", + "\n", + "\n", + " \n", + " \n", + "\n", + "
\n", + "$$\n", + "\\large\\begin{aligned}\n", + " \\dot x &= \\cos\\theta\\, v \\\\\n", + " \\dot y &= \\sin\\theta\\, v \\\\\n", + " \\dot\\theta &= \\frac{v}{l} \\tan \\delta\n", + "\\end{aligned}\n", + "$$\n", + "
\n", + "\n", + "The input $v$ represents the velocity of the vehicle and the input $\\delta$ represents the turning rate. The parameter $l$ is the wheelbase." + ] + }, + { + "cell_type": "markdown", + "id": "novel-geology", + "metadata": {}, + "source": [ + "### System Definiton\n", + "\n", + "We define the dynamics of the system that we are going to use for the control design. The dynamics of the system will be of the form\n", + "\n", + "$$\n", + "\\dot x = f(x, u), \\qquad y = h(x, u)\n", + "$$\n", + "\n", + "where $x$ is the state vector for the system, $u$ represents the vector of inputs, and $y$ represents the vector of outputs.\n", + "\n", + "The python-control package allows definition of input/output systems using the `InputOutputSystem` class and its various subclasess, including the `NonlinearIOSystem` class that we use here. A `NonlinearIOSystem` object is created by defining the update law ($f(x, u)$) and the output map ($h(x, u)$), and then calling the factory function `ct.nlsys`.\n", + "\n", + "For the example in this notebook, we will be controlling the steering of a vehicle, using a \"bicycle\" model for the dynamics of the vehicle. A more complete description of the dynamics of this system are available in [Example 3.11](https://fbswiki.org/wiki/index.php/System_Modeling) of [_Feedback Systems_](https://fbswiki.org/wiki/index.php/FBS) by Astrom and Murray (2020)." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "sufficient-douglas", + "metadata": {}, + "outputs": [], + "source": [ + "# Define the update rule for the system, f(x, u)\n", + "# States: x, y, theta (postion and angle of the center of mass)\n", + "# Inputs: v (forward velocity), delta (steering angle)\n", + "def vehicle_update(t, x, u, params):\n", + " # Get the parameters for the model\n", + " a = params.get('refoffset', 1.5) # offset to vehicle reference point\n", + " b = params.get('wheelbase', 3.) # vehicle wheelbase\n", + " maxsteer = params.get('maxsteer', 0.5) # max steering angle (rad)\n", + "\n", + " # Saturate the steering input\n", + " delta = np.clip(u[1], -maxsteer, maxsteer)\n", + " alpha = np.arctan2(a * np.tan(delta), b)\n", + "\n", + " # Return the derivative of the state\n", + " return np.array([\n", + " u[0] * np.cos(x[2] + alpha), # xdot = cos(theta + alpha) v\n", + " u[0] * np.sin(x[2] + alpha), # ydot = sin(theta + alpha) v\n", + " (u[0] / a) * np.sin(alpha) # thdot = v sin(alpha) / a\n", + " ])\n", + "\n", + "# Define the readout map for the system, h(x, u)\n", + "# Outputs: x, y (planar position of the center of mass)\n", + "def vehicle_output(t, x, u, params):\n", + " return x\n", + "\n", + "# Default vehicle parameters (including nominal velocity)\n", + "vehicle_params={'refoffset': 1.5, 'wheelbase': 3, 'velocity': 15, \n", + " 'maxsteer': 0.5}\n", + "\n", + "# Define the vehicle steering dynamics as an input/output system\n", + "vehicle = ct.nlsys(\n", + " vehicle_update, vehicle_output, states=3, name='vehicle',\n", + " inputs=['v', 'delta'], outputs=['x', 'y', 'theta'], params=vehicle_params)" + ] + }, + { + "cell_type": "markdown", + "id": "intellectual-democrat", + "metadata": {}, + "source": [ + "### Open loop simulation\n", + "\n", + "After these operations, the `vehicle` object references the nonlinear model for the system. This system can be simulated to compute a trajectory for the system. Here we command a velocity of 10 m/s and turn the wheel back and forth at one Hertz." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "likely-hindu", + "metadata": {}, + "outputs": [], + "source": [ + "# Define the time interval that we want to use for the simualation\n", + "timepts = np.linspace(0, 10, 1000)\n", + "\n", + "# Define the inputs\n", + "U = [\n", + " 10 * np.ones_like(timepts), # velocity\n", + " 0.1 * np.sin(timepts * 2*np.pi) # steering angle\n", + "]\n", + "\n", + "# Simulate the system dynamics, starting from the origin\n", + "response = ct.input_output_response(vehicle, timepts, U, 0)\n", + "time, outputs, inputs = response.time, response.outputs, response.inputs" + ] + }, + { + "cell_type": "markdown", + "id": "dutch-charm", + "metadata": {}, + "source": [ + "We can plot the results using standard `matplotlib` commands:" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "piano-algeria", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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wHfffYfGjRuXe59er6/yM5KTk21O7Dw9PZGYmIi9e/diy5Yt+Ne//oV58+bh119/RWxsrE3bJCJSA9vYEZFLa9++PfR6PVJTU9GyZctyt+jo6Crfl5KSUq5k0Fo6nQ633norFi5ciKSkJPj4+GDDhg02b4+ISA0ssSMilxYUFIS//vWvmDVrFkwmE/r27Yvc3Fzs3bsXgYGBmDx5cqXvM5lMOHToEC5evIiAgACrhif59ddf8eOPP2LYsGEICwvDr7/+isuXL6Ndu3Zq/VlERDZhiR0RubyXX34Z8+fPR0JCAtq1a4fhw4fjm2++qbZa9JVXXsGaNWvQuHFjLFq0yKrPCw4Oxq5du3DHHXegdevWeOGFF/DWW29hxIgR9v4pRER20Qn2zyciqtLAgQPRpUsXLF261Or36nQ6bNiwwaLZLYiI1MASOyKiGixbtgyBgYFISUmxaP0pU6YgMDDQwVEREVXEEjsiompcuHABN27cAADExMTAx8enxvdkZmYiNzcXABAZGYmAgACHxkhEpGBiR0REROQmWBVLRERE5CaY2BERERG5CSZ2RERERG6CiR0RERGRm2BiR0REROQmmNgRERERuQkmdkRERERugokdERERkZtgYkdERETkJpjYEREREbmJ/weZJLDiqamvzQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Create a figure to plot the results\n", + "fig, ax = plt.subplots(2, 1)\n", + "\n", + "# Plot the results in the xy plane\n", + "ax[0].plot(outputs[0], outputs[1])\n", + "ax[0].set_xlabel(\"$x$ [m]\")\n", + "ax[0].set_ylabel(\"$y$ [m]\")\n", + "\n", + "# Plot the inputs\n", + "ax[1].plot(timepts, U[0])\n", + "ax[1].set_ylim(0, 12)\n", + "ax[1].set_xlabel(\"Time $t$ [s]\")\n", + "ax[1].set_ylabel(\"Velocity $v$ [m/s]\")\n", + "ax[1].yaxis.label.set_color('blue')\n", + "\n", + "rightax = ax[1].twinx() # Create an axis in the right\n", + "rightax.plot(timepts, U[1], color='red')\n", + "rightax.set_ylim(None, 0.5)\n", + "rightax.set_ylabel(r\"Steering angle $\\phi$ [rad]\")\n", + "rightax.yaxis.label.set_color('red')\n", + "\n", + "fig.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "id": "alone-worry", + "metadata": {}, + "source": [ + "Notice that there is a small drift in the $y$ position despite the fact that the steering wheel is moved back and forth symmetrically around zero. Exercise: explain what might be happening." + ] + }, + { + "cell_type": "markdown", + "id": "portable-rubber", + "metadata": {}, + "source": [ + "### Linearize the system around a trajectory\n", + "\n", + "We choose a straight path along the $x$ axis at a speed of 10 m/s as our desired trajectory and then linearize the dynamics around the initial point in that trajectory." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "surprising-algorithm", + "metadata": {}, + "outputs": [], + "source": [ + "# Create the desired trajectory \n", + "Ud = np.array([10 * np.ones_like(timepts), np.zeros_like(timepts)])\n", + "Xd = np.array([10 * timepts, 0 * timepts, np.zeros_like(timepts)])\n", + "\n", + "# Now linizearize the system around this trajectory\n", + "linsys = vehicle.linearize(Xd[:, 0], Ud[:, 0])" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "protecting-committee", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([0., 0., 0.])" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Check on the eigenvalues of the open loop system\n", + "np.linalg.eigvals(linsys.A)" + ] + }, + { + "cell_type": "markdown", + "id": "trying-stereo", + "metadata": {}, + "source": [ + "We see that all eigenvalues are zero, corresponding to a single integrator in the $x$ (longitudinal) direction and a double integrator in the $y$ (lateral) direction." + ] + }, + { + "cell_type": "markdown", + "id": "pressed-delta", + "metadata": {}, + "source": [ + "### Compute a state space (LQR) control law\n", + "\n", + "We can now compute a feedback controller around the trajectory. We choose a simple LQR controller here, but any method can be used." + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "auburn-caribbean", + "metadata": {}, + "outputs": [], + "source": [ + "# Compute LQR controller\n", + "K, S, E = ct.lqr(linsys, np.diag([1, 1, 1]), np.diag([1, 1]))" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "independent-lafayette", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([-1. +0.j , -5.06896878+2.76385399j,\n", + " -5.06896878-2.76385399j])" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Check on the eigenvalues of the closed loop system\n", + "np.linalg.eigvals(linsys.A - linsys.B @ K)" + ] + }, + { + "cell_type": "markdown", + "id": "handmade-moral", + "metadata": {}, + "source": [ + "The closed loop eigenvalues have negative real part, so the closed loop (linear) system will be stable about the operating trajectory." + ] + }, + { + "cell_type": "markdown", + "id": "handy-virgin", + "metadata": {}, + "source": [ + "### Create a controller with feedforward and feedback\n", + "\n", + "We now create an I/O system representing the control law. The controller takes as an input the desired state space trajectory $x_\\text{d}$ and the nominal input $u_\\text{d}$. It outputs the control law\n", + "\n", + "$$\n", + "u = u_\\text{d} - K(x - x_\\text{d}).\n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "negative-scope", + "metadata": {}, + "outputs": [], + "source": [ + "# Define the output rule for the controller\n", + "# States: none (=> no update rule required)\n", + "# Inputs: z = [xd, ud, x]\n", + "# Outputs: v (forward velocity), delta (steering angle)\n", + "def control_output(t, x, z, params):\n", + " # Get the parameters for the model\n", + " K = params.get('K', np.zeros((2, 3))) # nominal gain\n", + " \n", + " # Split up the input to the controller into the desired state and nominal input\n", + " xd_vec = z[0:3] # desired state ('xd', 'yd', 'thetad')\n", + " ud_vec = z[3:5] # nominal input ('vd', 'deltad')\n", + " x_vec = z[5:8] # current state ('x', 'y', 'theta')\n", + " \n", + " # Compute the control law\n", + " return ud_vec - K @ (x_vec - xd_vec)\n", + "\n", + "# Define the controller system\n", + "control = ct.nlsys(\n", + " None, control_output, name='control',\n", + " inputs=['xd', 'yd', 'thetad', 'vd', 'deltad', 'x', 'y', 'theta'], \n", + " outputs=['v', 'delta'], params={'K': K})" + ] + }, + { + "cell_type": "markdown", + "id": "affected-motor", + "metadata": {}, + "source": [ + "Because we have named the signals in both the vehicle model and the controller in a compatible way, we can use the autoconnect feature of the `interconnect()` function to create the closed loop system." + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "stock-regression", + "metadata": {}, + "outputs": [], + "source": [ + "# Build the closed loop system\n", + "vehicle_closed = ct.interconnect(\n", + " (vehicle, control),\n", + " inputs=['xd', 'yd', 'thetad', 'vd', 'deltad'],\n", + " outputs=['x', 'y', 'theta']\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "hispanic-monroe", + "metadata": {}, + "source": [ + "### Closed loop simulation\n", + "\n", + "We now command the system to follow a trajectory and use the linear controller to correct for any errors. \n", + "\n", + "The desired trajectory is a given by a longitudinal position that tracks a velocity of 10 m/s for the first 5 seconds and then increases to 12 m/s and a lateral position that varies sinusoidally by $\\pm 0.5$ m around the centerline. The nominal inputs are not modified, so that feedback is required to obtained proper trajectory tracking." + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "american-return", + "metadata": {}, + "outputs": [], + "source": [ + "Xd = np.array([\n", + " 10 * timepts + 2 * (timepts-5) * (timepts > 5), \n", + " 0.5 * np.sin(timepts * 2*np.pi), \n", + " np.zeros_like(timepts)\n", + "])\n", + "\n", + "Ud = np.array([10 * np.ones_like(timepts), np.zeros_like(timepts)])\n", + "\n", + "# Simulate the system dynamics, starting from the origin\n", + "resp = ct.input_output_response(\n", + " vehicle_closed, timepts, np.vstack((Xd, Ud)), 0)\n", + "time, outputs = resp.time, resp.outputs" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "indirect-longitude", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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ERERkZNiokdERETkpJjoERERETkpJnpEREREToqJHhEREZGTYqJHRERE5KSY6BERERE5KSZ6RERERE6KiR4RERGRk2KiR0REROSkmOgREREROSkmekREREROiokeERERkZNiokdERETkpJjoERERETkpJnpEREREToqJHhEREZGTYqJHRERE5KSY6BERERE5KSZ6RERERE6KiR4RERGRk2KiR0REROSkmOgREREROSkmekREREROiokeERERkZNiokdERETkpJjoERERETkpJnpEREREToqJHhEREZGTYqJHRERE5KSY6BERERE5KSZ6RERERE6KiR4RERGRk2KiR0REROSkmOgREREROSkmekREREROiokeERERkZNqtIneokWLMHDgQHh5eaFFixZ2/YwQAgsWLEBwcDA8PT0RExOD48ePN2ygRERE1GgtWbIE4eHh8PDwQHR0NPbu3at2SHXSaBO9kpISjB8/Hk8//bTdP/PGG2/grbfewr///W8kJSUhMDAQ999/P/Lz8xswUiIiImqM1q5di9mzZ2PevHk4dOgQ7rnnHowcORLp6elqh2Y3nRBCqB3EnVixYgVmz56N69ev13qcEALBwcGYPXs2XnzxRQBAcXExAgIC8Prrr+NPf/qT1Z8rLi5GcXGx+fuMjAxERUUhMTERQUFB9XYeRERE1HAyMzPRr18/HDt2DG3btjVvd3d3h7u7u9Wf6d+/P3r37o2lS5eat3Xp0gXjxo1DfHx8g8dcL0Qjt3z5cmE0Gm953M8//ywAiJSUFIvtDz30kJgyZYrNn5s/f74AwAcffPDBBx98OOFj/vz5Vq//xcXFwmAwiHXr1llsf+aZZ8SQIUNumXdohQuaiKysLABAQECAxfaAgACcP3/e5s+99NJLmDNnjvn7srIynDhxAm3btoVeX78t3/n5+YiMjERaWhp8fHzq9bWbEpZj/WA51g+WY/1gOd65pl6GJpMJ6enpiIyMhItLZfpjqzbvypUrKC8vt5o3KDlFY6CpRG/BggVYuHBhrcckJSWhT58+t/07dDqdxfdCiBrbqrJWpTto0KDb/v21ycvLAwCEhISgefPmDfI7mgKWY/1gOdYPlmP9YDneOZYhEBoaWuefqWveoDWaSvTi4uIwYcKEWo9p167dbb12YGAgAFmzV7VvXXZ2do1snYiIiJo2Pz8/GAyG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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Plot the results in the xy plane\n", + "plt.plot(Xd[0], Xd[1], 'b--') # desired trajectory\n", + "plt.plot(outputs[0], outputs[1]) # actual trajectory\n", + "plt.xlabel(\"$x$ [m]\")\n", + "plt.ylabel(\"$y$ [m]\")\n", + "plt.ylim(-1, 2)\n", + "\n", + "# Add a legend\n", + "plt.legend(['desired', 'actual'], loc='upper left')\n", + "\n", + "# Compute and plot the velocity\n", + "rightax = plt.twinx() # Create an axis in the right\n", + "rightax.plot(Xd[0, :-1], np.diff(Xd[0]) / np.diff(timepts), 'r--')\n", + "rightax.plot(outputs[0, :-1], np.diff(outputs[0]) / np.diff(timepts), 'r-')\n", + "rightax.set_ylim(0, 13)\n", + "rightax.set_ylabel(\"$x$ velocity [m/s]\")\n", + "rightax.yaxis.label.set_color('red')" + ] + }, + { + "cell_type": "markdown", + "id": "weighted-directory", + "metadata": {}, + "source": [ + "We see that there is a small error in each axis. By adjusting the weights in the LQR controller we can adjust the steady state error (try it!)" + ] + }, + { + "cell_type": "markdown", + "id": "03b1fd75-579c-47da-805d-68f155957084", + "metadata": {}, + "source": [ + "## Computing environment" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "280d8d0e-38bc-484c-8ed5-fd6a7f2b56b5", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Control version: 0.10.1.dev324+g2fd3802a.d20241218\n", + "Slycot version: 0.6.0\n", + "NumPy version: 2.2.0\n" + ] + } + ], + "source": [ + "print(\"Control version:\", ct.__version__)\n", + "if ct.slycot_check():\n", + " import slycot\n", + " print(\"Slycot version:\", slycot.__version__)\n", + "else:\n", + " print(\"Slycot version: not installed\")\n", + "print(\"NumPy version:\", np.__version__)" + ] + } + ], + "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.13.1" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/examples/repr_gallery.ipynb b/examples/repr_gallery.ipynb new file mode 100644 index 000000000..56962210e --- /dev/null +++ b/examples/repr_gallery.ipynb @@ -0,0 +1,1336 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "639f45ae-0ee8-426e-9d52-a7b9bb95d45a", + "metadata": {}, + "source": [ + "# System Representation Gallery\n", + "\n", + "This Jupyter notebook creates different types of systems and generates a variety of representations (`__repr__`, `__str__`) for those systems that can be used to compare different versions of python-control. It is mainly intended for uses by developers to make sure there are no unexpected changes in representation formats, but also has some interesting examples of different choices in system representation." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "c4b80abe-59e4-4d76-a81c-6979a583e82d", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'0.10.1.dev324+g2fd3802a.d20241218'" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import numpy as np\n", + "\n", + "import control as ct\n", + "import control.flatsys as fs\n", + "\n", + "ct.__version__" + ] + }, + { + "cell_type": "markdown", + "id": "035ebae9-7a4b-4079-8111-31f6c493c77c", + "metadata": {}, + "source": [ + "## Text representations\n", + "\n", + "The code below shows what the output in various formats will look like in a terminal window." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "eab8cc0b-3e8a-4df8-acbd-258f006f44bb", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "============================================================================\n", + " Default repr\n", + "============================================================================\n", + "\n", + "StateSpace: sys_ss, dt=0:\n", + "-------------------------\n", + "StateSpace(\n", + "array([[ 0., 1.],\n", + " [-4., -5.]]),\n", + "array([[0.],\n", + " [1.]]),\n", + "array([[-1., 1.]]),\n", + "array([[0.]]),\n", + "name='sys_ss', states=2, outputs=1, inputs=1)\n", + "----\n", + "\n", + "StateSpace: sys_dss, dt=0.1:\n", + "----------------------------\n", + "StateSpace(\n", + "array([[ 0.98300988, 0.07817246],\n", + " [-0.31268983, 0.59214759]]),\n", + "array([[0.00424753],\n", + " [0.07817246]]),\n", + "array([[-1., 1.]]),\n", + "array([[0.]]),\n", + "dt=0.1,\n", + "name='sys_dss', states=2, outputs=1, inputs=1)\n", + "----\n", + "\n", + "StateSpace: stateless, dt=None:\n", + "-------------------------------\n", + "StateSpace(\n", + "array([], shape=(0, 0), dtype=float64),\n", + "array([], shape=(0, 2), dtype=float64),\n", + "array([], shape=(2, 0), dtype=float64),\n", + "array([[1., 0.],\n", + " [0., 1.]]),\n", + "dt=None,\n", + "name='stateless', states=0, outputs=2, inputs=['u0', 'u1'])\n", + "----\n", + "\n", + "TransferFunction: sys_ss$converted, dt=0:\n", + "-----------------------------------------\n", + "TransferFunction(\n", + "array([ 1., -1.]),\n", + "array([1., 5., 4.]),\n", + "name='sys_ss$converted', outputs=1, inputs=1)\n", + "----\n", + "\n", + "TransferFunction: sys_dss_poly, dt=0.1:\n", + "---------------------------------------\n", + "TransferFunction(\n", + "array([ 0.07392493, -0.08176823]),\n", + "array([ 1. , -1.57515746, 0.60653066]),\n", + "dt=0.1,\n", + "name='sys_dss_poly', outputs=1, inputs=1)\n", + "----\n", + "\n", + "TransferFunction: sys[3], dt=0:\n", + "-------------------------------\n", + "TransferFunction(\n", + "array([1]),\n", + "array([1, 0]),\n", + "outputs=1, inputs=1)\n", + "----\n", + "\n", + "TransferFunction: sys_mtf_zpk, dt=0:\n", + "------------------------------------\n", + "TransferFunction(\n", + "[[array([ 1., -1.]), array([0.])],\n", + " [array([1, 0]), array([1, 0])]],\n", + "[[array([1., 5., 4.]), array([1.])],\n", + " [array([1]), array([1, 2, 1])]],\n", + "name='sys_mtf_zpk', outputs=2, inputs=2)\n", + "----\n", + "\n", + "FrequencyResponseData: sys_ss$converted$sampled, dt=0:\n", + "------------------------------------------------------\n", + "FrequencyResponseData(\n", + "array([[[-0.24365959+0.05559644j, -0.19198193+0.1589174j ,\n", + " 0.05882353+0.23529412j, 0.1958042 -0.01105691j,\n", + " 0.0508706 -0.07767156j]]]),\n", + "array([ 0.1 , 0.31622777, 1. , 3.16227766, 10. ]),\n", + "name='sys_ss$converted$sampled', outputs=1, inputs=1)\n", + "----\n", + "\n", + "FrequencyResponseData: sys_dss_poly$sampled, dt=0.1:\n", + "----------------------------------------------------\n", + "FrequencyResponseData(\n", + "array([[[-0.24337799+0.05673083j, -0.18944184+0.16166381j,\n", + " 0.07043649+0.23113479j, 0.19038528-0.04416494j,\n", + " 0.00286505-0.09595906j]]]),\n", + "array([ 0.1 , 0.31622777, 1. , 3.16227766, 10. ])\n", + "dt=0.1,\n", + "name='sys_dss_poly$sampled', outputs=1, inputs=1)\n", + "----\n", + "\n", + "FrequencyResponseData: sys_mtf_zpk$sampled, dt=0:\n", + "-------------------------------------------------\n", + "FrequencyResponseData(\n", + "array([[[-0.24365959 +0.05559644j, -0.19198193 +0.1589174j ,\n", + " 0.05882353 +0.23529412j, 0.1958042 -0.01105691j,\n", + " 0.0508706 -0.07767156j],\n", + " [ 0. +0.j , 0. +0.j ,\n", + " 0. +0.j , 0. +0.j ,\n", + " 0. +0.j ]],\n", + "\n", + " [[ 0. +0.1j , 0. +0.31622777j,\n", + " 0. +1.j , 0. +3.16227766j,\n", + " 0. +10.j ],\n", + " [ 0.01960592 +0.09704931j, 0.16528926 +0.23521074j,\n", + " 0.5 +0.j , 0.16528926 -0.23521074j,\n", + " 0.01960592 -0.09704931j]]]),\n", + "array([ 0.1 , 0.31622777, 1. , 3.16227766, 10. ]),\n", + "name='sys_mtf_zpk$sampled', outputs=2, inputs=2)\n", + "----\n", + "\n", + "NonlinearIOSystem: sys_nl, dt=0:\n", + "--------------------------------\n", + " ['y[0]']>\n", + "----\n", + "\n", + "NonlinearIOSystem: sys_dnl, dt=0.1:\n", + "-----------------------------------\n", + " ['y[0]'], dt=0.1>\n", + "----\n", + "\n", + "InterconnectedSystem: sys_ic, dt=0:\n", + "-----------------------------------\n", + " ['y[0]', 'y[1]']>\n", + "----\n", + "\n", + "LinearICSystem: sys_ic, dt=0:\n", + "-----------------------------\n", + " ['y[0]', 'y[1]']>\n", + "----\n", + "\n", + "FlatSystem: sys_fs, dt=0:\n", + "-------------------------\n", + " ['y[0]']>\n", + "----\n", + "\n", + "FlatSystem: sys_fsnl, dt=0:\n", + "---------------------------\n", + " ['y[0]']>\n", + "----\n", + "\n", + "============================================================================\n", + " Default str (print)\n", + "============================================================================\n", + "\n", + "StateSpace: sys_ss, dt=0:\n", + "-------------------------\n", + ": sys_ss\n", + "Inputs (1): ['u[0]']\n", + "Outputs (1): ['y[0]']\n", + "States (2): ['x[0]', 'x[1]']\n", + "\n", + "A = [[ 0. 1.]\n", + " [-4. -5.]]\n", + "\n", + "B = [[0.]\n", + " [1.]]\n", + "\n", + "C = [[-1. 1.]]\n", + "\n", + "D = [[0.]]\n", + "----\n", + "\n", + "StateSpace: sys_dss, dt=0.1:\n", + "----------------------------\n", + ": sys_dss\n", + "Inputs (1): ['u[0]']\n", + "Outputs (1): ['y[0]']\n", + "States (2): ['x[0]', 'x[1]']\n", + "dt = 0.1\n", + "\n", + "A = [[ 0.98300988 0.07817246]\n", + " [-0.31268983 0.59214759]]\n", + "\n", + "B = [[0.00424753]\n", + " [0.07817246]]\n", + "\n", + "C = [[-1. 1.]]\n", + "\n", + "D = [[0.]]\n", + "----\n", + "\n", + "StateSpace: stateless, dt=None:\n", + "-------------------------------\n", + ": stateless\n", + "Inputs (2): ['u0', 'u1']\n", + "Outputs (2): ['y[0]', 'y[1]']\n", + "States (0): []\n", + "dt = None\n", + "\n", + "A = []\n", + "\n", + "B = []\n", + "\n", + "C = []\n", + "\n", + "D = [[1. 0.]\n", + " [0. 1.]]\n", + "----\n", + "\n", + "TransferFunction: sys_ss$converted, dt=0:\n", + "-----------------------------------------\n", + ": sys_ss$converted\n", + "Inputs (1): ['u[0]']\n", + "Outputs (1): ['y[0]']\n", + "\n", + " s - 1\n", + " -------------\n", + " s^2 + 5 s + 4\n", + "----\n", + "\n", + "TransferFunction: sys_dss_poly, dt=0.1:\n", + "---------------------------------------\n", + ": sys_dss_poly\n", + "Inputs (1): ['u[0]']\n", + "Outputs (1): ['y[0]']\n", + "dt = 0.1\n", + "\n", + " 0.07392 z - 0.08177\n", + " ----------------------\n", + " z^2 - 1.575 z + 0.6065\n", + "----\n", + "\n", + "TransferFunction: sys[3], dt=0:\n", + "-------------------------------\n", + ": sys[3]\n", + "Inputs (1): ['u[0]']\n", + "Outputs (1): ['y[0]']\n", + "\n", + " 1\n", + " -\n", + " s\n", + "----\n", + "\n", + "TransferFunction: sys_mtf_zpk, dt=0:\n", + "------------------------------------\n", + ": sys_mtf_zpk\n", + "Inputs (2): ['u[0]', 'u[1]']\n", + "Outputs (2): ['y[0]', 'y[1]']\n", + "\n", + "Input 1 to output 1:\n", + "\n", + " s - 1\n", + " ---------------\n", + " (s + 1) (s + 4)\n", + "\n", + "Input 1 to output 2:\n", + "\n", + " s\n", + " -\n", + " 1\n", + "\n", + "Input 2 to output 1:\n", + "\n", + " 0\n", + " -\n", + " 1\n", + "\n", + "Input 2 to output 2:\n", + "\n", + " s\n", + " ---------------\n", + " (s + 1) (s + 1)\n", + "----\n", + "\n", + "FrequencyResponseData: sys_ss$converted$sampled, dt=0:\n", + "------------------------------------------------------\n", + ": sys_ss$converted$sampled\n", + "Inputs (1): ['u[0]']\n", + "Outputs (1): ['y[0]']\n", + "\n", + "Freq [rad/s] Response\n", + "------------ ---------------------\n", + " 0.100 -0.2437 +0.0556j\n", + " 0.316 -0.192 +0.1589j\n", + " 1.000 0.05882 +0.2353j\n", + " 3.162 0.1958 -0.01106j\n", + " 10.000 0.05087 -0.07767j\n", + "----\n", + "\n", + "FrequencyResponseData: sys_dss_poly$sampled, dt=0.1:\n", + "----------------------------------------------------\n", + ": sys_dss_poly$sampled\n", + "Inputs (1): ['u[0]']\n", + "Outputs (1): ['y[0]']\n", + "dt = 0.1\n", + "\n", + "Freq [rad/s] Response\n", + "------------ ---------------------\n", + " 0.100 -0.2434 +0.05673j\n", + " 0.316 -0.1894 +0.1617j\n", + " 1.000 0.07044 +0.2311j\n", + " 3.162 0.1904 -0.04416j\n", + " 10.000 0.002865 -0.09596j\n", + "----\n", + "\n", + "FrequencyResponseData: sys_mtf_zpk$sampled, dt=0:\n", + "-------------------------------------------------\n", + ": sys_mtf_zpk$sampled\n", + "Inputs (2): ['u[0]', 'u[1]']\n", + "Outputs (2): ['y[0]', 'y[1]']\n", + "\n", + "Input 1 to output 1:\n", + "\n", + " Freq [rad/s] Response\n", + " ------------ ---------------------\n", + " 0.100 -0.2437 +0.0556j\n", + " 0.316 -0.192 +0.1589j\n", + " 1.000 0.05882 +0.2353j\n", + " 3.162 0.1958 -0.01106j\n", + " 10.000 0.05087 -0.07767j\n", + "\n", + "Input 1 to output 2:\n", + "\n", + " Freq [rad/s] Response\n", + " ------------ ---------------------\n", + " 0.100 0 +0.1j\n", + " 0.316 0 +0.3162j\n", + " 1.000 0 +1j\n", + " 3.162 0 +3.162j\n", + " 10.000 0 +10j\n", + "\n", + "Input 2 to output 1:\n", + "\n", + " Freq [rad/s] Response\n", + " ------------ ---------------------\n", + " 0.100 0 +0j\n", + " 0.316 0 +0j\n", + " 1.000 0 +0j\n", + " 3.162 0 +0j\n", + " 10.000 0 +0j\n", + "\n", + "Input 2 to output 2:\n", + "\n", + " Freq [rad/s] Response\n", + " ------------ ---------------------\n", + " 0.100 0.01961 +0.09705j\n", + " 0.316 0.1653 +0.2352j\n", + " 1.000 0.5 +0j\n", + " 3.162 0.1653 -0.2352j\n", + " 10.000 0.01961 -0.09705j\n", + "----\n", + "\n", + "NonlinearIOSystem: sys_nl, dt=0:\n", + "--------------------------------\n", + ": sys_nl\n", + "Inputs (1): ['u[0]']\n", + "Outputs (1): ['y[0]']\n", + "States (2): ['x[0]', 'x[1]']\n", + "Parameters: ['a', 'b']\n", + "\n", + "Update: \n", + "Output: \n", + "----\n", + "\n", + "NonlinearIOSystem: sys_dnl, dt=0.1:\n", + "-----------------------------------\n", + ": sys_dnl\n", + "Inputs (1): ['u[0]']\n", + "Outputs (1): ['y[0]']\n", + "States (2): ['x[0]', 'x[1]']\n", + "dt = 0.1\n", + "\n", + "Update: \n", + "Output: \n", + "----\n", + "\n", + "InterconnectedSystem: sys_ic, dt=0:\n", + "-----------------------------------\n", + ": sys_ic\n", + "Inputs (2): ['r[0]', 'r[1]']\n", + "Outputs (2): ['y[0]', 'y[1]']\n", + "States (2): ['proc_nl_x[0]', 'proc_nl_x[1]']\n", + "\n", + "Subsystems (2):\n", + " * ['y[0]', 'y[1]']>\n", + " * ['y[0]', 'y[1]']>\n", + "\n", + "Connections:\n", + " * proc_nl.u[0] <- ctrl_nl.y[0]\n", + " * proc_nl.u[1] <- ctrl_nl.y[1]\n", + " * ctrl_nl.u[0] <- -proc_nl.y[0] + r[0]\n", + " * ctrl_nl.u[1] <- -proc_nl.y[1] + r[1]\n", + "\n", + "Outputs:\n", + " * y[0] <- proc_nl.y[0]\n", + " * y[1] <- proc_nl.y[1]\n", + "----\n", + "\n", + "LinearICSystem: sys_ic, dt=0:\n", + "-----------------------------\n", + ": sys_ic\n", + "Inputs (2): ['r[0]', 'r[1]']\n", + "Outputs (2): ['y[0]', 'y[1]']\n", + "States (2): ['proc_x[0]', 'proc_x[1]']\n", + "\n", + "Subsystems (2):\n", + " * ['y[0]', 'y[1]']>\n", + " * ['y[0]', 'y[1]'], dt=None>\n", + "\n", + "Connections:\n", + " * proc.u[0] <- ctrl.y[0]\n", + " * proc.u[1] <- ctrl.y[1]\n", + " * ctrl.u[0] <- -proc.y[0] + r[0]\n", + " * ctrl.u[1] <- -proc.y[1] + r[1]\n", + "\n", + "Outputs:\n", + " * y[0] <- proc.y[0]\n", + " * y[1] <- proc.y[1]\n", + "\n", + "A = [[-2. 3.]\n", + " [-1. -5.]]\n", + "\n", + "B = [[-2. 0.]\n", + " [ 0. -3.]]\n", + "\n", + "C = [[-1. 1.]\n", + " [ 1. 0.]]\n", + "\n", + "D = [[0. 0.]\n", + " [0. 0.]]\n", + "----\n", + "\n", + "FlatSystem: sys_fs, dt=0:\n", + "-------------------------\n", + ": sys_fs\n", + "Inputs (1): ['u[0]']\n", + "Outputs (1): ['y[0]']\n", + "States (2): ['x[0]', 'x[1]']\n", + "\n", + "Update: ['y[0]']>>\n", + "Output: ['y[0]']>>\n", + "\n", + "Forward: \n", + "Reverse: \n", + "----\n", + "\n", + "FlatSystem: sys_fsnl, dt=0:\n", + "---------------------------\n", + ": sys_fsnl\n", + "Inputs (1): ['u[0]']\n", + "Outputs (1): ['y[0]']\n", + "States (2): ['x[0]', 'x[1]']\n", + "\n", + "Update: \n", + "Output: \n", + "\n", + "Forward: \n", + "Reverse: \n", + "----\n", + "\n", + "============================================================================\n", + " repr_format='info'\n", + "============================================================================\n", + "\n", + "StateSpace: sys_ss, dt=0:\n", + "-------------------------\n", + " ['y[0]']>\n", + "----\n", + "\n", + "StateSpace: sys_dss, dt=0.1:\n", + "----------------------------\n", + " ['y[0]'], dt=0.1>\n", + "----\n", + "\n", + "StateSpace: stateless, dt=None:\n", + "-------------------------------\n", + " ['y[0]', 'y[1]'], dt=None>\n", + "----\n", + "\n", + "TransferFunction: sys_ss$converted, dt=0:\n", + "-----------------------------------------\n", + " ['y[0]']>\n", + "----\n", + "\n", + "TransferFunction: sys_dss_poly, dt=0.1:\n", + "---------------------------------------\n", + " ['y[0]'], dt=0.1>\n", + "----\n", + "\n", + "TransferFunction: sys[3], dt=0:\n", + "-------------------------------\n", + " ['y[0]']>\n", + "----\n", + "\n", + "TransferFunction: sys_mtf_zpk, dt=0:\n", + "------------------------------------\n", + " ['y[0]', 'y[1]']>\n", + "----\n", + "\n", + "FrequencyResponseData: sys_ss$converted$sampled, dt=0:\n", + "------------------------------------------------------\n", + " ['y[0]']>\n", + "----\n", + "\n", + "FrequencyResponseData: sys_dss_poly$sampled, dt=0.1:\n", + "----------------------------------------------------\n", + " ['y[0]'], dt=0.1>\n", + "----\n", + "\n", + "FrequencyResponseData: sys_mtf_zpk$sampled, dt=0:\n", + "-------------------------------------------------\n", + " ['y[0]', 'y[1]']>\n", + "----\n", + "\n", + "NonlinearIOSystem: sys_nl, dt=0:\n", + "--------------------------------\n", + " ['y[0]']>\n", + "----\n", + "\n", + "NonlinearIOSystem: sys_dnl, dt=0.1:\n", + "-----------------------------------\n", + " ['y[0]'], dt=0.1>\n", + "----\n", + "\n", + "InterconnectedSystem: sys_ic, dt=0:\n", + "-----------------------------------\n", + " ['y[0]', 'y[1]']>\n", + "----\n", + "\n", + "LinearICSystem: sys_ic, dt=0:\n", + "-----------------------------\n", + " ['y[0]', 'y[1]']>\n", + "----\n", + "\n", + "FlatSystem: sys_fs, dt=0:\n", + "-------------------------\n", + " ['y[0]']>\n", + "----\n", + "\n", + "FlatSystem: sys_fsnl, dt=0:\n", + "---------------------------\n", + " ['y[0]']>\n", + "----\n", + "\n", + "============================================================================\n", + " iosys.repr_show_count=False\n", + "============================================================================\n", + "\n", + "StateSpace: sys_ss, dt=0:\n", + "-------------------------\n", + "StateSpace(\n", + "array([[ 0., 1.],\n", + " [-4., -5.]]),\n", + "array([[0.],\n", + " [1.]]),\n", + "array([[-1., 1.]]),\n", + "array([[0.]]),\n", + "name='sys_ss')\n", + "----\n", + "\n", + "StateSpace: sys_dss, dt=0.1:\n", + "----------------------------\n", + "StateSpace(\n", + "array([[ 0.98300988, 0.07817246],\n", + " [-0.31268983, 0.59214759]]),\n", + "array([[0.00424753],\n", + " [0.07817246]]),\n", + "array([[-1., 1.]]),\n", + "array([[0.]]),\n", + "dt=0.1,\n", + "name='sys_dss')\n", + "----\n", + "\n", + "StateSpace: stateless, dt=None:\n", + "-------------------------------\n", + "StateSpace(\n", + "array([], shape=(0, 0), dtype=float64),\n", + "array([], shape=(0, 2), dtype=float64),\n", + "array([], shape=(2, 0), dtype=float64),\n", + "array([[1., 0.],\n", + " [0., 1.]]),\n", + "dt=None,\n", + "name='stateless', inputs=['u0', 'u1'])\n", + "----\n", + "\n", + "LinearICSystem: sys_ic, dt=0:\n", + "-----------------------------\n", + " ['y[0]', 'y[1]']>\n", + "----\n", + "\n", + "============================================================================\n", + " xferfcn.display_format=zpk, str (print)\n", + "============================================================================\n", + "\n", + "TransferFunction: sys_ss$converted, dt=0:\n", + "-----------------------------------------\n", + ": sys_ss$converted\n", + "Inputs (1): ['u[0]']\n", + "Outputs (1): ['y[0]']\n", + "\n", + " s - 1\n", + " ---------------\n", + " (s + 1) (s + 4)\n", + "----\n", + "\n", + "TransferFunction: sys_dss_poly, dt=0.1:\n", + "---------------------------------------\n", + ": sys_dss_poly\n", + "Inputs (1): ['u[0]']\n", + "Outputs (1): ['y[0]']\n", + "dt = 0.1\n", + "\n", + " 0.07392 z - 0.08177\n", + " ----------------------\n", + " z^2 - 1.575 z + 0.6065\n", + "----\n", + "\n", + "TransferFunction: sys[3], dt=0:\n", + "-------------------------------\n", + ": sys[3]\n", + "Inputs (1): ['u[0]']\n", + "Outputs (1): ['y[0]']\n", + "\n", + " 1\n", + " -\n", + " s\n", + "----\n", + "\n", + "TransferFunction: sys_mtf_zpk, dt=0:\n", + "------------------------------------\n", + ": sys_mtf_zpk\n", + "Inputs (2): ['u[0]', 'u[1]']\n", + "Outputs (2): ['y[0]', 'y[1]']\n", + "\n", + "Input 1 to output 1:\n", + "\n", + " s - 1\n", + " ---------------\n", + " (s + 1) (s + 4)\n", + "\n", + "Input 1 to output 2:\n", + "\n", + " s\n", + " -\n", + " 1\n", + "\n", + "Input 2 to output 1:\n", + "\n", + " 0\n", + " -\n", + " 1\n", + "\n", + "Input 2 to output 2:\n", + "\n", + " s\n", + " ---------------\n", + " (s + 1) (s + 1)\n", + "----\n", + "\n" + ] + } + ], + "source": [ + "# Grab system definitions (and generate various representations as text)\n", + "from repr_gallery import *" + ] + }, + { + "cell_type": "markdown", + "id": "19f146a3-c036-4ff6-8425-c201fba14ec7", + "metadata": {}, + "source": [ + "## Jupyter notebook (HTML/LaTeX) representations\n", + "\n", + "The following representations are generated using the `_html_repr_` method in selected types of systems. Only those systems that have unique displays are shown." + ] + }, + { + "cell_type": "markdown", + "id": "16ff8d11-e793-456a-bf27-ae4cc0dd1e3b", + "metadata": {}, + "source": [ + "### Continuous time state space systems" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "c1ca661d-10f3-45be-8619-c3e143bb4b4c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<StateSpace sys_ss: ['u[0]'] -> ['y[0]']>\n", + "$$\n", + "\\left[\\begin{array}{rllrll|rll}\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", + "-4\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&-5\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "\\hline\n", + "-1\\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": [ + "StateSpace(\n", + "array([[ 0., 1.],\n", + " [-4., -5.]]),\n", + "array([[0.],\n", + " [1.]]),\n", + "array([[-1., 1.]]),\n", + "array([[0.]]),\n", + "name='sys_ss', states=2, outputs=1, inputs=1)" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sys_ss" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "b10b4db3-a8c0-4a2c-a19d-a09fef3dc25f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<StateSpace sys_ss: ['u[0]'] -> ['y[0]']>\n", + "$$\n", + "\\begin{array}{ll}\n", + "A = \\left[\\begin{array}{rllrll}\n", + "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "-4\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&-5\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "\\end{array}\\right]\n", + "&\n", + "B = \\left[\\begin{array}{rll}\n", + "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "\\end{array}\\right]\n", + "\\\\\n", + "C = \\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", + "&\n", + "D = \\left[\\begin{array}{rll}\n", + "0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "\\end{array}\\right]\n", + "\\end{array}\n", + "$$" + ], + "text/plain": [ + "StateSpace(\n", + "array([[ 0., 1.],\n", + " [-4., -5.]]),\n", + "array([[0.],\n", + " [1.]]),\n", + "array([[-1., 1.]]),\n", + "array([[0.]]),\n", + "name='sys_ss', states=2, outputs=1, inputs=1)" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "with ct.config.defaults({'statesp.latex_repr_type': 'separate'}):\n", + " display(sys_ss)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "0537f6fe-a155-4c49-be7c-413608a03887", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<StateSpace sys_ss: ['u[0]'] -> ['y[0]']>\n", + "$$\n", + "\\begin{array}{ll}\n", + "A = \\left[\\begin{array}{rllrll}\n", + " 0.&\\hspace{-1em}0000&\\hspace{-1em}\\phantom{\\cdot}& 1.&\\hspace{-1em}0000&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + " -4.&\\hspace{-1em}0000&\\hspace{-1em}\\phantom{\\cdot}& -5.&\\hspace{-1em}0000&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "\\end{array}\\right]\n", + "&\n", + "B = \\left[\\begin{array}{rll}\n", + " 0.&\\hspace{-1em}0000&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + " 1.&\\hspace{-1em}0000&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "\\end{array}\\right]\n", + "\\\\\n", + "C = \\left[\\begin{array}{rllrll}\n", + " -1.&\\hspace{-1em}0000&\\hspace{-1em}\\phantom{\\cdot}& 1.&\\hspace{-1em}0000&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "\\end{array}\\right]\n", + "&\n", + "D = \\left[\\begin{array}{rll}\n", + " 0.&\\hspace{-1em}0000&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "\\end{array}\\right]\n", + "\\end{array}\n", + "$$" + ], + "text/plain": [ + "StateSpace(\n", + "array([[ 0., 1.],\n", + " [-4., -5.]]),\n", + "array([[0.],\n", + " [1.]]),\n", + "array([[-1., 1.]]),\n", + "array([[0.]]),\n", + "name='sys_ss', states=2, outputs=1, inputs=1)" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "with ct.config.defaults({\n", + " 'statesp.latex_repr_type': 'separate',\n", + " 'statesp.latex_num_format': '8.4f'}):\n", + " display(sys_ss)" + ] + }, + { + "cell_type": "markdown", + "id": "fa75f040-633d-401c-ba96-e688713d5a2d", + "metadata": {}, + "source": [ + "### Stateless state space system" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "5a71e38c-9880-4af7-82e0-49f074653e94", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<StateSpace stateless: ['u0', 'u1'] -> ['y[0]', 'y[1]'], dt=None>\n", + "$$\n", + "\\left[\\begin{array}{rllrll}\n", + "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}&1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "\\end{array}\\right]\n", + "$$" + ], + "text/plain": [ + "StateSpace(\n", + "array([], shape=(0, 0), dtype=float64),\n", + "array([], shape=(0, 2), dtype=float64),\n", + "array([], shape=(2, 0), dtype=float64),\n", + "array([[1., 0.],\n", + " [0., 1.]]),\n", + "dt=None,\n", + "name='stateless', states=0, outputs=2, inputs=['u0', 'u1'])" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sys_ss0" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "7ddbd638-9338-4204-99bc-792f35e14874", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<StateSpace stateless: ['u0', 'u1'] -> ['y[0]', 'y[1]'], dt=None>\n", + "$$\n", + "\\begin{array}{ll}\n", + "D = \\left[\\begin{array}{rllrll}\n", + "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}&1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "\\end{array}\\right]\n", + "\\end{array}\n", + "$$" + ], + "text/plain": [ + "StateSpace(\n", + "array([], shape=(0, 0), dtype=float64),\n", + "array([], shape=(0, 2), dtype=float64),\n", + "array([], shape=(2, 0), dtype=float64),\n", + "array([[1., 0.],\n", + " [0., 1.]]),\n", + "dt=None,\n", + "name='stateless', states=0, outputs=2, inputs=['u0', 'u1'])" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "with ct.config.defaults({'statesp.latex_repr_type': 'separate'}):\n", + " display(sys_ss0)" + ] + }, + { + "cell_type": "markdown", + "id": "06c5d470-0768-4628-b2ea-d2387525ed80", + "metadata": {}, + "source": [ + "### Discrete time state space system" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "e7b9b438-28e3-453e-9860-06ff75b7af10", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<StateSpace sys_dss: ['u[0]'] -> ['y[0]'], dt=0.1>\n", + "$$\n", + "\\left[\\begin{array}{rllrll|rll}\n", + "0.&\\hspace{-1em}983&\\hspace{-1em}\\phantom{\\cdot}&0.&\\hspace{-1em}0782&\\hspace{-1em}\\phantom{\\cdot}&0.&\\hspace{-1em}00425&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "-0.&\\hspace{-1em}313&\\hspace{-1em}\\phantom{\\cdot}&0.&\\hspace{-1em}592&\\hspace{-1em}\\phantom{\\cdot}&0.&\\hspace{-1em}0782&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "\\hline\n", + "-1\\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": [ + "StateSpace(\n", + "array([[ 0.98300988, 0.07817246],\n", + " [-0.31268983, 0.59214759]]),\n", + "array([[0.00424753],\n", + " [0.07817246]]),\n", + "array([[-1., 1.]]),\n", + "array([[0.]]),\n", + "dt=0.1,\n", + "name='sys_dss', states=2, outputs=1, inputs=1)" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sys_dss" + ] + }, + { + "cell_type": "markdown", + "id": "7719e725-9d38-4f2a-a142-0ebc090e74e4", + "metadata": {}, + "source": [ + "### \"Stateless\" state space system" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "938fd795-f402-4491-b2c9-eb42c458e1e1", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<StateSpace stateless: ['u0', 'u1'] -> ['y[0]', 'y[1]'], dt=None>\n", + "$$\n", + "\\left[\\begin{array}{rllrll}\n", + "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}&1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "\\end{array}\\right]\n", + "$$" + ], + "text/plain": [ + "StateSpace(\n", + "array([], shape=(0, 0), dtype=float64),\n", + "array([], shape=(0, 2), dtype=float64),\n", + "array([], shape=(2, 0), dtype=float64),\n", + "array([[1., 0.],\n", + " [0., 1.]]),\n", + "dt=None,\n", + "name='stateless', states=0, outputs=2, inputs=['u0', 'u1'])" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sys_ss0" + ] + }, + { + "cell_type": "markdown", + "id": "c620f1a1-40ff-4320-9f62-21bff9ab308e", + "metadata": {}, + "source": [ + "### Continuous time transfer function" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "e364e6eb-0cfa-486a-8b95-ff9c6c41a091", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<TransferFunction sys_ss\\$converted: ['u[0]'] -> ['y[0]']>\n", + "$$\\dfrac{s - 1}{s^2 + 5 s + 4}$$" + ], + "text/plain": [ + "TransferFunction(\n", + "array([ 1., -1.]),\n", + "array([1., 5., 4.]),\n", + "name='sys_ss$converted', outputs=1, inputs=1)" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sys_tf" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "af9959fd-90eb-4287-93ee-416cd13fde50", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<TransferFunction sys_ss\\$converted: ['u[0]'] -> ['y[0]']>\n", + "$$\\dfrac{s - 1}{(s + 1) (s + 4)}$$" + ], + "text/plain": [ + "TransferFunction(\n", + "array([ 1., -1.]),\n", + "array([1., 5., 4.]),\n", + "name='sys_ss$converted', outputs=1, inputs=1)" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "with ct.config.defaults({'xferfcn.display_format': 'zpk'}):\n", + " display(sys_tf)" + ] + }, + { + "cell_type": "markdown", + "id": "7bf40707-f84c-4e19-b310-5ec9811faf42", + "metadata": {}, + "source": [ + "### MIMO transfer function" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "b2db2d1c-893b-43a1-aab0-a5f6d059f3f9", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/murray/miniconda3/envs/python3.13-slycot/lib/python3.13/site-packages/scipy/signal/_filter_design.py:1112: BadCoefficients: Badly conditioned filter coefficients (numerator): the results may be meaningless\n", + " b, a = normalize(b, a)\n", + "/Users/murray/miniconda3/envs/python3.13-slycot/lib/python3.13/site-packages/scipy/signal/_filter_design.py:1116: RuntimeWarning: invalid value encountered in divide\n", + " b /= b[0]\n" + ] + }, + { + "data": { + "text/html": [ + "<TransferFunction sys_mtf_zpk: ['u[0]', 'u[1]'] -> ['y[0]', 'y[1]']>\n", + "$$\\begin{bmatrix}\\dfrac{s - 1}{(s + 1) (s + 4)}&\\dfrac{0}{1}\\\\\\dfrac{s}{1}&\\dfrac{s}{(s + 1) (s + 1)}\\\\ \\end{bmatrix}$$" + ], + "text/plain": [ + "TransferFunction(\n", + "[[array([ 1., -1.]), array([0.])],\n", + " [array([1, 0]), array([1, 0])]],\n", + "[[array([1., 5., 4.]), array([1.])],\n", + " [array([1]), array([1, 2, 1])]],\n", + "name='sys_mtf_zpk', outputs=2, inputs=2)" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sys_mtf # SciPy generates a warning due to 0 numerator in 1, 2 entry" + ] + }, + { + "cell_type": "markdown", + "id": "ef78a05e-9a63-4e22-afae-66ac8ec457c2", + "metadata": {}, + "source": [ + "### Discrete time transfer function" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "365c9b4a-2af3-42e5-ae5d-f2d7d989104b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<TransferFunction sys_dss_poly: ['u[0]'] -> ['y[0]'], dt=0.1>\n", + "$$\\dfrac{0.07392 z - 0.08177}{z^2 - 1.575 z + 0.6065}$$" + ], + "text/plain": [ + "TransferFunction(\n", + "array([ 0.07392493, -0.08176823]),\n", + "array([ 1. , -1.57515746, 0.60653066]),\n", + "dt=0.1,\n", + "name='sys_dss_poly', outputs=1, inputs=1)" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sys_dtf" + ] + }, + { + "cell_type": "markdown", + "id": "b49fa8ab-c3af-48d1-b160-790c9f4d3c6e", + "metadata": {}, + "source": [ + "### Linear interconnected system" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "78d21969-4615-4a47-b449-7a08138dc319", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<LinearICSystem sys_ic: ['r[0]', 'r[1]'] -> ['y[0]', 'y[1]']>\n", + "$$\n", + "\\left[\\begin{array}{rllrll|rllrll}\n", + "-2\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&3\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&-2\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "-1\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&-5\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&0\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}&-3\\phantom{.}&\\hspace{-1em}&\\hspace{-1em}\\phantom{\\cdot}\\\\\n", + "\\hline\n", + "-1\\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", + "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", + "\\end{array}\\right]\n", + "$$" + ], + "text/plain": [ + " ['y[0]', 'y[1]']>" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sys_lic" + ] + }, + { + "cell_type": "markdown", + "id": "bee65cd5-d9b5-46af-aee5-26a6a4679939", + "metadata": {}, + "source": [ + "### Non-HTML capable system representations" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "e5486349-2bd3-4015-ad17-a5b8e8ec0447", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "FrequencyResponseData(\n", + "array([[[-0.24365959+0.05559644j, -0.19198193+0.1589174j ,\n", + " 0.05882353+0.23529412j, 0.1958042 -0.01105691j,\n", + " 0.0508706 -0.07767156j]]]),\n", + "array([ 0.1 , 0.31622777, 1. , 3.16227766, 10. ]),\n", + "name='sys_ss$converted$sampled', outputs=1, inputs=1)" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + " ['y[0]']>" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + " ['y[0]', 'y[1]']>" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + " ['y[0]']>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "for sys in [sys_frd, sys_nl, sys_ic, sys_fs]:\n", + " display(sys)" + ] + } + ], + "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.13.1" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/examples/repr_gallery.py b/examples/repr_gallery.py new file mode 100644 index 000000000..27755b59e --- /dev/null +++ b/examples/repr_gallery.py @@ -0,0 +1,156 @@ +# repr-galler.py - different system representations for comparing versions +# RMM, 30 Dec 2024 +# +# This file creates different types of systems and generates a variety +# of representations (__repr__, __str__) for those systems that can be +# used to compare different versions of python-control. It is mainly +# intended for uses by developers to make sure there are no unexpected +# changes in representation formats, but also has some interesting +# examples of different choices in system representation. + +import numpy as np + +import control as ct +import control.flatsys as fs + +# +# Create systems of different types +# +syslist = [] + +# State space (continuous and discrete time) +sys_ss = ct.ss([[0, 1], [-4, -5]], [0, 1], [-1, 1], 0, name='sys_ss') +sys_dss = sys_ss.sample(0.1, name='sys_dss') +sys_ss0 = ct.ss([], [], [], np.eye(2), name='stateless', inputs=['u0', 'u1']) +syslist += [sys_ss, sys_dss, sys_ss0] + +# Transfer function (continuous and discrete time) +sys_tf = ct.tf(sys_ss) +sys_dtf = ct.tf(sys_dss, name='sys_dss_poly', display_format='poly') +sys_gtf = ct.tf([1], [1, 0]) +syslist += [sys_tf, sys_dtf, sys_gtf] + +# MIMO transfer function (continuous time only) +sys_mtf = ct.tf( + [[sys_tf.num[0][0].tolist(), [0]], [[1, 0], [1, 0] ]], + [[sys_tf.den[0][0].tolist(), [1]], [[1], [1, 2, 1]]], + name='sys_mtf_zpk', display_format='zpk') +syslist += [sys_mtf] + +# Frequency response data (FRD) system (continuous and discrete time) +sys_frd = ct.frd(sys_tf, np.logspace(-1, 1, 5)) +sys_dfrd = ct.frd(sys_dtf, np.logspace(-1, 1, 5)) +sys_mfrd = ct.frd(sys_mtf, np.logspace(-1, 1, 5)) +syslist += [sys_frd, sys_dfrd, sys_mfrd] + +# Nonlinear system (with linear dynamics), continuous time +def nl_update(t, x, u, params): + return sys_ss.A @ x + sys_ss.B @ u + +def nl_output(t, x, u, params): + return sys_ss.C @ x + sys_ss.D @ u + +nl_params = {'a': 0, 'b': 1} + +sys_nl = ct.nlsys( + nl_update, nl_output, name='sys_nl', params=nl_params, + states=sys_ss.nstates, inputs=sys_ss.ninputs, outputs=sys_ss.noutputs) + +# Nonlinear system (with linear dynamics), discrete time +def dnl_update(t, x, u, params): + return sys_ss.A @ x + sys_ss.B @ u + +def dnl_output(t, x, u, params): + return sys_ss.C @ x + sys_ss.D @ u + +sys_dnl = ct.nlsys( + dnl_update, dnl_output, dt=0.1, name='sys_dnl', + states=sys_ss.nstates, inputs=sys_ss.ninputs, outputs=sys_ss.noutputs) + +syslist += [sys_nl, sys_dnl] + +# Interconnected system +proc = ct.ss([[0, 1], [-4, -5]], np.eye(2), [[-1, 1], [1, 0]], 0, name='proc') +ctrl = ct.ss([], [], [], [[-2, 0], [0, -3]], name='ctrl') + +proc_nl = ct.nlsys(proc, name='proc_nl') +ctrl_nl = ct.nlsys(ctrl, name='ctrl_nl') +sys_ic = ct.interconnect( + [proc_nl, ctrl_nl], name='sys_ic', + connections=[['proc_nl.u', 'ctrl_nl.y'], ['ctrl_nl.u', '-proc_nl.y']], + inplist=['ctrl_nl.u'], inputs=['r[0]', 'r[1]'], + outlist=['proc_nl.y'], outputs=proc_nl.output_labels) +syslist += [sys_ic] + +# Linear interconnected system +sys_lic = ct.interconnect( + [proc, ctrl], name='sys_ic', + connections=[['proc.u', 'ctrl.y'], ['ctrl.u', '-proc.y']], + inplist=['ctrl.u'], inputs=['r[0]', 'r[1]'], + outlist=['proc.y'], outputs=proc.output_labels) +syslist += [sys_lic] + +# Differentially flat system (with implicit dynamics), continuous time (only) +def fs_forward(x, u): + return np.array([x[0], x[1], -4 * x[0] - 5 * x[1] + u[0]]) + +def fs_reverse(zflag): + return ( + np.array([zflag[0][0], zflag[0][1]]), + np.array([4 * zflag[0][0] + 5 * zflag[0][1] + zflag[0][2]])) + +sys_fs = fs.flatsys( + fs_forward, fs_reverse, name='sys_fs', + states=sys_nl.nstates, inputs=sys_nl.ninputs, outputs=sys_nl.noutputs) + +# Differentially flat system (with nonlinear dynamics), continuous time (only) +sys_fsnl = fs.flatsys( + fs_forward, fs_reverse, nl_update, nl_output, name='sys_fsnl', + states=sys_nl.nstates, inputs=sys_nl.ninputs, outputs=sys_nl.noutputs) + +syslist += [sys_fs, sys_fsnl] + +# Utility function to display outputs +def display_representations( + description, fcn, class_list=(ct.InputOutputSystem, )): + print("=" * 76) + print(" " * round((76 - len(description)) / 2) + f"{description}") + print("=" * 76 + "\n") + for sys in syslist: + if isinstance(sys, tuple(class_list)): + print(str := f"{type(sys).__name__}: {sys.name}, dt={sys.dt}:") + print("-" * len(str)) + print(fcn(sys)) + print("----\n") + +# Default formats +display_representations("Default repr", repr) +display_representations("Default str (print)", str) + +# 'info' format (if it exists and hasn't already been displayed) +if getattr(ct.InputOutputSystem, '_repr_info_', None) and \ + ct.config.defaults.get('iosys.repr_format', None) and \ + ct.config.defaults['iosys.repr_format'] != 'info': + with ct.config.defaults({'iosys.repr_format': 'info'}): + display_representations("repr_format='info'", repr) + +# 'eval' format (if it exists and hasn't already been displayed) +if getattr(ct.InputOutputSystem, '_repr_eval_', None) and \ + ct.config.defaults.get('iosys.repr_format', None) and \ + ct.config.defaults['iosys.repr_format'] != 'eval': + with ct.config.defaults({'iosys.repr_format': 'eval'}): + display_representations("repr_format='eval'", repr) + +# Change the way counts are displayed +with ct.config.defaults( + {'iosys.repr_show_count': + not ct.config.defaults['iosys.repr_show_count']}): + display_representations( + f"iosys.repr_show_count={ct.config.defaults['iosys.repr_show_count']}", + repr, class_list=[ct.StateSpace]) + +# ZPK format for transfer functions +with ct.config.defaults({'xferfcn.display_format': 'zpk'}): + display_representations( + "xferfcn.display_format=zpk, str (print)", str, + class_list=[ct.TransferFunction]) diff --git a/examples/secord-matlab.py b/examples/secord-matlab.py index 6cef881c1..53fe69e6f 100644 --- a/examples/secord-matlab.py +++ b/examples/secord-matlab.py @@ -3,7 +3,8 @@ import os import matplotlib.pyplot as plt # MATLAB plotting functions -from control.matlab import * # MATLAB-like functions +import numpy as np +from control.matlab import ss, step, bode, nyquist, rlocus # MATLAB-like functions # Parameters defining the system m = 250.0 # system mass @@ -24,7 +25,7 @@ # Bode plot for the system plt.figure(2) -mag, phase, om = bode(sys, logspace(-2, 2), plot=True) +mag, phase, om = bode(sys, np.logspace(-2, 2), plot=True) plt.show(block=False) # Nyquist plot for the system @@ -32,7 +33,7 @@ nyquist(sys) plt.show(block=False) -# Root lcous plot for the system +# Root locus plot for the system rlocus(sys) if 'PYCONTROL_TEST_EXAMPLES' not in os.environ: diff --git a/examples/sisotool_example.py b/examples/sisotool_example.py index 6453bec74..44d7c0443 100644 --- a/examples/sisotool_example.py +++ b/examples/sisotool_example.py @@ -10,24 +10,24 @@ #%% import matplotlib.pyplot as plt -from control.matlab import * +import control as ct # first example, aircraft attitude equation -s = tf([1,0],[1]) +s = ct.tf([1,0],[1]) Kq = -24 T2 = 1.4 damping = 2/(13**.5) omega = 13**.5 H = (Kq*(1+T2*s))/(s*(s**2+2*damping*omega*s+omega**2)) plt.close('all') -sisotool(-H) +ct.sisotool(-H) #%% # a simple RL, with multiple poles in the origin plt.close('all') H = (s+0.3)/(s**4 + 4*s**3 + 6.25*s**2) -sisotool(H) +ct.sisotool(H) #%% @@ -43,4 +43,4 @@ plt.close('all') H = (b0 + b1*s + b2*s**2) / (a0 + a1*s + a2*s**2 + a3*s**3) -sisotool(H) +ct.sisotool(H) diff --git a/examples/slycot-import-test.py b/examples/slycot-import-test.py index 2df9b5b23..9c92fd2dc 100644 --- a/examples/slycot-import-test.py +++ b/examples/slycot-import-test.py @@ -5,7 +5,7 @@ """ import numpy as np -from control.matlab import * +import control as ct from control.exception import slycot_check # Parameters defining the system @@ -17,12 +17,12 @@ A = np.array([[1, -1, 1.], [1, -k/m, -b/m], [1, 1, 1]]) B = np.array([[0], [1/m], [1]]) C = np.array([[1., 0, 1.]]) -sys = ss(A, B, C, 0) +sys = ct.ss(A, B, C, 0) # Python control may be used without slycot, for example for a pole placement. # Eigenvalue placement w = [-3, -2, -1] -K = place(A, B, w) +K = ct.place(A, B, w) print("[python-control (from scipy)] K = ", K) print("[python-control (from scipy)] eigs = ", np.linalg.eig(A - B*K)[0]) diff --git a/examples/springmass-coupled.png b/examples/springmass-coupled.png new file mode 100644 index 000000000..bc898da09 Binary files /dev/null and b/examples/springmass-coupled.png differ diff --git a/examples/steering-gainsched.py b/examples/steering-gainsched.py index 88eed9a95..36dafd617 100644 --- a/examples/steering-gainsched.py +++ b/examples/steering-gainsched.py @@ -46,10 +46,10 @@ def vehicle_output(t, x, u, params): return x # return x, y, theta (full state) # Define the vehicle steering dynamics as an input/output system -vehicle = ct.NonlinearIOSystem( +vehicle = ct.nlsys( vehicle_update, vehicle_output, states=3, name='vehicle', - inputs=('v', 'phi'), - outputs=('x', 'y', 'theta')) + inputs=('v', 'phi'), outputs=('x', 'y', 'theta'), + params={'wheelbase': 3, 'maxsteer': 0.5}) # # Gain scheduled controller @@ -89,10 +89,12 @@ def control_output(t, x, u, params): return np.array([v, phi]) # Define the controller as an input/output system -controller = ct.NonlinearIOSystem( +controller = ct.nlsys( None, control_output, name='controller', # static system inputs=('ex', 'ey', 'etheta', 'vd', 'phid'), # system inputs - outputs=('v', 'phi') # system outputs + outputs=('v', 'phi'), # system outputs + params={'longpole': -2, 'latpole1': -1/2 + sqrt(-7)/2, + 'latpole2': -1/2 - sqrt(-7)/2, 'wheelbase': 3} ) # @@ -113,7 +115,7 @@ def trajgen_output(t, x, u, params): return np.array([vref * t, yref, 0, vref, 0]) # Define the trajectory generator as an input/output system -trajgen = ct.NonlinearIOSystem( +trajgen = ct.nlsys( None, trajgen_output, name='trajgen', inputs=('vref', 'yref'), outputs=('xd', 'yd', 'thetad', 'vd', 'phid')) @@ -156,10 +158,13 @@ def trajgen_output(t, x, u, params): inplist=['trajgen.vref', 'trajgen.yref'], inputs=['yref', 'vref'], - # System outputs + # System outputs outlist=['vehicle.x', 'vehicle.y', 'vehicle.theta', 'controller.v', 'controller.phi'], - outputs=['x', 'y', 'theta', 'v', 'phi'] + outputs=['x', 'y', 'theta', 'v', 'phi'], + + # Parameters + params=trajgen.params | vehicle.params | controller.params, ) # Set up the simulation conditions @@ -220,9 +225,10 @@ def trajgen_output(t, x, u, params): # 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') + gainsched_indices=['vd', 'theta'], gainsched_method='linear', + params=vehicle.params | controller.params) -# Connect everything together (note that controller inputs are different +# Connect everything together (note that controller inputs are different) steering = ct.interconnect( # List of subsystems (trajgen, controller, vehicle), name='steering', @@ -235,7 +241,7 @@ def trajgen_output(t, x, u, params): ['controller.x', 'vehicle.x'], ['controller.y', 'vehicle.y'], ['controller.theta', 'vehicle.theta'], - ['controller.vd', ('trajgen', 'vd', 0.2)], # create error + ['controller.vd', ('trajgen', 'vd', 0.2)], # create some error ['controller.phid', 'trajgen.phid'], ['vehicle.v', 'controller.v'], ['vehicle.phi', 'controller.phi'] @@ -245,10 +251,13 @@ def trajgen_output(t, x, u, params): inplist=['trajgen.vref', 'trajgen.yref'], inputs=['yref', 'vref'], - # System outputs + # System outputs outlist=['vehicle.x', 'vehicle.y', 'vehicle.theta', 'controller.v', 'controller.phi'], - outputs=['x', 'y', 'theta', 'v', 'phi'] + outputs=['x', 'y', 'theta', 'v', 'phi'], + + # Parameters + params=steering.params ) # Plot the results to compare to the previous case diff --git a/examples/steering-optimal.py b/examples/steering-optimal.py index d9bad608e..80ad671f6 100644 --- a/examples/steering-optimal.py +++ b/examples/steering-optimal.py @@ -79,14 +79,14 @@ def plot_lanechange(t, y, u, yf=None, figure=None): plt.xlabel("t [sec]") plt.ylabel("steering [rad/s]") - plt.suptitle("Lane change manuever") + plt.suptitle("Lane change maneuver") plt.tight_layout() plt.show(block=False) # # Optimal control problem # -# Perform a "lane change" manuever over the course of 10 seconds. +# Perform a "lane change" maneuver over the course of 10 seconds. # # Initial and final conditions diff --git a/examples/steering.ipynb b/examples/steering.ipynb index 217e3b2db..ebad51185 100644 --- a/examples/steering.ipynb +++ b/examples/steering.ipynb @@ -90,9 +90,7 @@ { "cell_type": "code", "execution_count": 3, - "metadata": { - "scrolled": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -452,9 +450,7 @@ { "cell_type": "code", "execution_count": 8, - "metadata": { - "scrolled": false - }, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -1067,7 +1063,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -1081,9 +1077,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.1" + "version": "3.12.2" } }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 4 } diff --git a/examples/stochresp.ipynb b/examples/stochresp.ipynb index 74d744b0f..dda6bb501 100644 --- a/examples/stochresp.ipynb +++ b/examples/stochresp.ipynb @@ -284,7 +284,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.1" + "version": "3.13.1" } }, "nbformat": 4, diff --git a/examples/tfvis.py b/examples/tfvis.py index 0cb789db4..c9e9872de 100644 --- a/examples/tfvis.py +++ b/examples/tfvis.py @@ -45,13 +45,8 @@ import Pmw import matplotlib.pyplot as plt from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg -from numpy.lib.polynomial import polymul -from numpy.lib.type_check import real -from numpy.core.multiarray import array -from numpy.core.fromnumeric import size -# from numpy.lib.function_base import logspace from control.matlab import logspace -from numpy import conj +from numpy import array, conj, polymul, real, size def make_poly(facts): diff --git a/examples/type2_type3.py b/examples/type2_type3.py index 52e0645e2..f0d79dc51 100644 --- a/examples/type2_type3.py +++ b/examples/type2_type3.py @@ -4,9 +4,10 @@ import os import matplotlib.pyplot as plt # Grab MATLAB plotting functions -from control.matlab import * # MATLAB-like functions -from numpy import pi -integrator = tf([0, 1], [1, 0]) # 1/s +import control as ct +import numpy as np + +integrator = ct.tf([0, 1], [1, 0]) # 1/s # Parameters defining the system J = 1.0 @@ -29,20 +30,20 @@ # System Transfer Functions # tricky because the disturbance (base motion) is coupled in by friction -closed_loop_type2 = feedback(C_type2*feedback(P, friction), gyro) +closed_loop_type2 = ct.feedback(C_type2*ct.feedback(P, friction), gyro) disturbance_rejection_type2 = P*friction/(1. + P*friction+P*C_type2) -closed_loop_type3 = feedback(C_type3*feedback(P, friction), gyro) +closed_loop_type3 = ct.feedback(C_type3*ct.feedback(P, friction), gyro) disturbance_rejection_type3 = P*friction/(1. + P*friction + P*C_type3) # Bode plot for the system plt.figure(1) -bode(closed_loop_type2, logspace(0, 2)*2*pi, dB=True, Hz=True) # blue -bode(closed_loop_type3, logspace(0, 2)*2*pi, dB=True, Hz=True) # green +ct.bode(closed_loop_type2, np.logspace(0, 2)*2*np.pi, dB=True, Hz=True) # blue +ct.bode(closed_loop_type3, np.logspace(0, 2)*2*np.pi, dB=True, Hz=True) # green plt.show(block=False) plt.figure(2) -bode(disturbance_rejection_type2, logspace(0, 2)*2*pi, Hz=True) # blue -bode(disturbance_rejection_type3, logspace(0, 2)*2*pi, Hz=True) # green +ct.bode(disturbance_rejection_type2, np.logspace(0, 2)*2*np.pi, Hz=True) # blue +ct.bode(disturbance_rejection_type3, np.logspace(0, 2)*2*np.pi, Hz=True) # green if 'PYCONTROL_TEST_EXAMPLES' not in os.environ: plt.show() diff --git a/examples/vehicle.py b/examples/vehicle.py index b316ceced..f89702d4e 100644 --- a/examples/vehicle.py +++ b/examples/vehicle.py @@ -3,7 +3,6 @@ import numpy as np import matplotlib.pyplot as plt -import control as ct import control.flatsys as fs # @@ -84,7 +83,7 @@ def _vehicle_output(t, x, u, params): states=('x', 'y', 'theta')) # -# Utility function to plot lane change manuever +# Utility function to plot lane change maneuver # def plot_lanechange(t, y, u, figure=None, yf=None): @@ -107,5 +106,5 @@ def plot_lanechange(t, y, u, figure=None, yf=None): plt.xlabel("t [sec]") plt.ylabel("steering [rad/s]") - plt.suptitle("Lane change manuever") + plt.suptitle("Lane change maneuver") plt.tight_layout() diff --git a/pyproject.toml b/pyproject.toml index f3df75f1d..db70b8f48 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -40,7 +40,7 @@ dynamic = ["version"] packages = ["control"] [project.optional-dependencies] -test = ["pytest", "pytest-timeout"] +test = ["pytest", "pytest-timeout", "ruff", "numpydoc"] slycot = [ "slycot>=0.4.0" ] cvxopt = [ "cvxopt>=1.2.0" ] @@ -56,3 +56,14 @@ addopts = "-ra" filterwarnings = [ "error:.*matrix subclass:PendingDeprecationWarning", ] + +[tool.ruff] + +# TODO: expand to cover all code +include = ['control/**.py', 'benchmarks/*.py', 'examples/*.py'] + +[tool.ruff.lint] +select = [ + 'F', # pyflakes + # todo: add more as needed +]