{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "***Note: this is the Retroactivity.ipynb notebook. The\n", "PDF version \"Modules, Linearisation and Retroactivity\"\n", "is available [here](Retroactivity.pdf).***" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Introduction\n", "As discussed by (Gawthrop and Crampin, 2016):\n", "\"Computational modularity is a necessary condition for building\n", "physically correct computational models of biomolecular systems.\n", "However, computational modularity does not imply that module\n", "properties (such as ultrasensitivity) are retained when a module is\n", "incorporated into a larger system. In the context of engineering, modules often have buffer amplifiers at the interface so that they\n", "have unidirectional connections and may thus be represented and\n", "analysed on a block diagram or signal flow graph where the\n", "properties of each module are retained. This will be called\n", "behavioural modularity in this paper. However, biological networks\n", "do not usually have this unidirectional property, but rather display\n", "retroactivity; retroactivity modifies the properties of the\n", "interacting modules.\"\n", "\n", "The concept of retroactivity is used by, for example:\n", "(Julio Saez-Rodriguez, Andreas Kremling,\n", "Holger Conzelmann, Katja Bettenbrock,\n", "and Ernst Dieter Gilles, 2004),\n", "(J. Saez-Rodriguez, A. Kremling and E.D. Gilles, 2005),\n", "(Domitilla Del Vecchio and Robert M. Murray, 2014) and\n", "(Domitilla Del Vecchio, Aaron J. Dy and Yili Qian, 2016).\n", "\n", "This note looks at retroactivity in a simple linear case: a chain of reactions. The analysis is based on \n", "(Gawthrop and Crampin, 2016).\n", "The analysis uses [Bond Graph Tools](https://pypi.org/project/BondGraphTools/)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Import some python code\n", "The bond graph analysis uses a number of Python modules:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "## Some useful imports\n", "import BondGraphTools as bgt\n", "import numpy as np\n", "import sympy as sp\n", "import matplotlib.pyplot as plt\n", "import IPython.display as disp\n", "\n", "## Stoichiometric analysis\n", "import stoich as st\n", "\n", "## SVG bg representation conversion\n", "import svgBondGraph as sbg\n", "\n", "## Modularity\n", "import modularBondGraph as mbg\n", "\n", "## Control systems package\n", "import control as con\n", "\n", "## Set quiet=False for verbose output\n", "quiet = True\n", "\n", "## Set slycot=True if slycot is installed (see control module)\n", "slycot=True\n", "\n", "## Chemical equation formatting\n", "chemformula = True\n", "\n", "import importlib as imp\n", "\n", "## Allow output from within functions\n", "from IPython.core.interactiveshell import InteractiveShell\n", "InteractiveShell.ast_node_interactivity = \"all\"\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# A simple reaction network: $A \\Leftrightarrow B \\Leftrightarrow C$\n", "The simple reaction network $A \\Leftrightarrow B \\Leftrightarrow C$ can be concatenated to form a chain of $N$ such networks. There are two approaches to this:\n", "- the modular bond graph approach using the chain() function from modularBondGraph and\n", "- Concatenate linearised subsystem approach using the [Python Control Systems Library](https://python-control.readthedocs.io/en/0.8.3/index.html).\n", "\n", "The species at each end of the chain are chemostats (Gawthrop and Crampin, 2016).\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Bond graph model" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", "0\n", "\n", "Ce:A\n", "\n", "Ce:B\n", "\n", "Re:r2\n", "\n", "Re:r1\n", "\n", "0\n", "\n", "0\n", "\n", "Ce:C\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "" ], "text/plain": [ "" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/latex": [ "$$\\begin{bmatrix}\\frac{-s - 1}{s + 2}&\\frac{1}{s + 2}\\\\\\frac{1}{s + 2}&\\frac{-s - 1}{s + 2}\\\\ \\end{bmatrix}$$" ], "text/plain": [ "\n", "Input 1 to output 1:\n", "-s - 1\n", "------\n", "s + 2\n", "\n", "Input 1 to output 2:\n", " 1\n", "-----\n", "s + 2\n", "\n", "Input 2 to output 1:\n", " 1\n", "-----\n", "s + 2\n", "\n", "Input 2 to output 2:\n", "-s - 1\n", "------\n", "s + 2" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sbg.model('ABC_abg.svg')\n", "import ABC_abg\n", "disp.SVG('ABC_abg.svg')\n", "s = st.stoich(ABC_abg.model(),quiet=True)\n", "sc = st.statify(s,chemostats=['A','C'])\n", "\n", "## Transfer function form (with chemostats)\n", "sys = st.lin(s,sc,outvar = 'port',quiet=quiet)\n", "con.ss2tf(sys)\n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Analysis of the chain of reactions\n", "The function analyse() performs some basic analysis on the chain:\n", "- The poles and dc gain\n", "- The interaction loop-gain $L$ from equation (86) of (Gawthrop and Crampin, 2016)\n", "- The step responses of the chain transfer function\n", "\n", "Note that the chain inputs and outputs are determined by the chemostats at each end of the chain; thus the two inputs are the *potential* at each end and the two outputs are the coresponding flows.\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "def analyse(sys,Sys,csys=None):\n", " \"\"\"Analyse the linearised systems\"\"\"\n", " \n", " print('==========================')\n", " print('Chain length N =',N)\n", " print('==========================')\n", " \n", " ## Properties of the chain\n", " ## Note that poles are real; np.real removes spurious imag parts.\n", " print('Chain poles:',np.sort(np.real(con.pole(Sys))))\n", " print('Chain gain:',con.dcgain(Sys))\n", "\n", " if csys is not None:\n", " print('Analyse cys') \n", " csys_tf = con.ss2tf(csys)\n", " g_ef = csys_tf[0,0]\n", " g_fe = csys_tf[1,1]\n", " L = con.negate(con.series(g_ef,g_fe))\n", " print(\"L:\",L)\n", "\n", " ## Step responses\n", " k = 0\n", " for i in range(2):\n", " for j in range(2):\n", " k += 1\n", " T = np.linspace(0,20,100)\n", " tt,yy = con.step_response(Sys,input=j,output=i,T=T)\n", " plt.subplot(2,2,k)\n", " plt.plot(tt,yy)\n", " plt.title('Step response '+str(i+1)+','+str(j+1))\n", " plt.grid()\n", " plt.tight_layout()\n", " plt.show()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Modular bond graph approach\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Create and analyse chain for various lengths N" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Help on function chain in module modularBondGraph:\n", "\n", "chain(model, inport='in', outport='out', N=2, quiet=False)\n", " Concatenate N instances of model via ports inport and outport\n", " The ports are represented in model as Ce components\n", " Ce:in in the first link of the chain and Ce:out in the last link remain as Ce components\n", " The method unifies Ce:out of link i and Ce:in of link i+1 by replacing them by ports \n", " and connecting them to a new Ce component with associated zero junction.\n", "\n" ] } ], "source": [ "help(mbg.chain)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "==========================\n", "Chain length N = 1\n", "==========================\n", "Chain poles: [-4.]\n", "Chain gain: [[-1. 1.]\n", " [ 1. -1.]]\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Chain transfer function:\n" ] }, { "data": { "text/latex": [ "$$\\begin{bmatrix}\\frac{-2 s - 4}{s + 4}&\\frac{4}{s + 4}\\\\\\frac{4}{s + 4}&\\frac{-2 s - 4}{s + 4}\\\\ \\end{bmatrix}$$" ], "text/plain": [ "\n", "Input 1 to output 1:\n", "-2 s - 4\n", "--------\n", " s + 4\n", "\n", "Input 1 to output 2:\n", " 4\n", "-----\n", "s + 4\n", "\n", "Input 2 to output 1:\n", " 4\n", "-----\n", "s + 4\n", "\n", "Input 2 to output 2:\n", "-2 s - 4\n", "--------\n", " s + 4" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "name": "stdout", "output_type": "stream", "text": [ "==========================\n", "Chain length N = 2\n", "==========================\n", "Chain poles: [-6.82842712 -4. -1.17157288]\n", "Chain gain: [[-0.5 0.5]\n", " [ 0.5 -0.5]]\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Chain transfer function:\n" ] }, { "data": { "text/latex": [ "$$\\begin{bmatrix}\\frac{-2 s^3 - 20 s^2 - 48 s - 16}{s^3 + 12 s^2 + 40 s + 32}&\\frac{16}{s^3 + 12 s^2 + 40 s + 32}\\\\\\frac{16}{s^3 + 12 s^2 + 40 s + 32}&\\frac{-2 s^3 - 20 s^2 - 48 s - 16}{s^3 + 12 s^2 + 40 s + 32}\\\\ \\end{bmatrix}$$" ], "text/plain": [ "\n", "Input 1 to output 1:\n", "-2 s^3 - 20 s^2 - 48 s - 16\n", "---------------------------\n", " s^3 + 12 s^2 + 40 s + 32\n", "\n", "Input 1 to output 2:\n", " 16\n", "------------------------\n", "s^3 + 12 s^2 + 40 s + 32\n", "\n", "Input 2 to output 1:\n", " 16\n", "------------------------\n", "s^3 + 12 s^2 + 40 s + 32\n", "\n", "Input 2 to output 2:\n", "-2 s^3 - 20 s^2 - 48 s - 16\n", "---------------------------\n", " s^3 + 12 s^2 + 40 s + 32" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "name": "stdout", "output_type": "stream", "text": [ "==========================\n", "Chain length N = 5\n", "==========================\n", "Chain poles: [-7.80422607 -7.23606798 -6.35114101 -5.23606798 -4. -2.76393202\n", " -1.64885899 -0.76393202 -0.19577393]\n", "Chain gain: [[-0.2 0.2]\n", " [ 0.2 -0.2]]\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Chain transfer function:\n" ] }, { "data": { "text/latex": [ "$$\\begin{bmatrix}\\frac{-2 s^9 - 68 s^8 - 960 s^7 - 7280 s^6 - 3.203e+04 s^5 - 8.237e+04 s^4 - 1.183e+05 s^3 - 8.448e+04 s^2 - 2.304e+04 s - 1024}{s^9 + 36 s^8 + 544 s^7 + 4480 s^6 + 2.184e+04 s^5 + 6.406e+04 s^4 + 1.098e+05 s^3 + 1.014e+05 s^2 + 4.224e+04 s + 5120}&\\frac{1024}{s^9 + 36 s^8 + 544 s^7 + 4480 s^6 + 2.184e+04 s^5 + 6.406e+04 s^4 + 1.098e+05 s^3 + 1.014e+05 s^2 + 4.224e+04 s + 5120}\\\\\\frac{1024}{s^9 + 36 s^8 + 544 s^7 + 4480 s^6 + 2.184e+04 s^5 + 6.406e+04 s^4 + 1.098e+05 s^3 + 1.014e+05 s^2 + 4.224e+04 s + 5120}&\\frac{-2 s^9 - 68 s^8 - 960 s^7 - 7280 s^6 - 3.203e+04 s^5 - 8.237e+04 s^4 - 1.183e+05 s^3 - 8.448e+04 s^2 - 2.304e+04 s - 1024}{s^9 + 36 s^8 + 544 s^7 + 4480 s^6 + 2.184e+04 s^5 + 6.406e+04 s^4 + 1.098e+05 s^3 + 1.014e+05 s^2 + 4.224e+04 s + 5120}\\\\ \\end{bmatrix}$$" ], "text/plain": [ "\n", "Input 1 to output 1:\n", "-2 s^9 - 68 s^8 - 960 s^7 - 7280 s^6 - 3.203e+04 s^5 - 8.237e+04 s^4 - 1.183e+05 s^3 - 8.448e+04 s^2 - 2.304e+04 s - 1024\n", "-------------------------------------------------------------------------------------------------------------------------\n", " s^9 + 36 s^8 + 544 s^7 + 4480 s^6 + 2.184e+04 s^5 + 6.406e+04 s^4 + 1.098e+05 s^3 + 1.014e+05 s^2 + 4.224e+04 s + 5120\n", "\n", "Input 1 to output 2:\n", " 1024\n", "----------------------------------------------------------------------------------------------------------------------\n", "s^9 + 36 s^8 + 544 s^7 + 4480 s^6 + 2.184e+04 s^5 + 6.406e+04 s^4 + 1.098e+05 s^3 + 1.014e+05 s^2 + 4.224e+04 s + 5120\n", "\n", "Input 2 to output 1:\n", " 1024\n", "----------------------------------------------------------------------------------------------------------------------\n", "s^9 + 36 s^8 + 544 s^7 + 4480 s^6 + 2.184e+04 s^5 + 6.406e+04 s^4 + 1.098e+05 s^3 + 1.014e+05 s^2 + 4.224e+04 s + 5120\n", "\n", "Input 2 to output 2:\n", "-2 s^9 - 68 s^8 - 960 s^7 - 7280 s^6 - 3.203e+04 s^5 - 8.237e+04 s^4 - 1.183e+05 s^3 - 8.448e+04 s^2 - 2.304e+04 s - 1024\n", "-------------------------------------------------------------------------------------------------------------------------\n", " s^9 + 36 s^8 + 544 s^7 + 4480 s^6 + 2.184e+04 s^5 + 6.406e+04 s^4 + 1.098e+05 s^3 + 1.014e+05 s^2 + 4.224e+04 s + 5120" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "\n", "NN = [1,2,5]\n", "for N in NN:\n", " \n", " ## Create chain\n", " NABC = mbg.chain(ABC_abg.model(),inport='A',outport='C',N=N,quiet=quiet)\n", " s = st.stoich(NABC,quiet=True)\n", " #print(s['reaction'])\n", " sc = st.statify(s,chemostats=['A','C'])\n", " #disp.Latex(st.sprintrl(sc,chemformula=chemformula))\n", " \n", " ## Set each Re component to have kappa = 2\n", " parameter = {}\n", " for r in s['reaction']:\n", " parameter['kappa_'+r] = 2\n", " \n", " ## Linearise the chain\n", " Sys = st.lin(s,sc,outvar = 'port',parameter=parameter,quiet=quiet)\n", " \n", " ## Analyse the properties\n", " analyse(sys,Sys)\n", " \n", " print('Chain transfer function:')\n", " con.ss2tf(Sys)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Discussion\n", "- The overall step response from the start to the end of the chain (step response 2,1 from $u_1$ to $y_2$) becomes higher-order and slower as $N$ increases.\n", "- Because of retroactivity, the steady-state (DC) gain of the chain is *not* the product of the gain of each link - it is 1/N in this case.\n", "- Because of retroactivity, the poles of the chain are (except for the pole at s=4) different for each N" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Concatenate linearised subsystem approach\n", "As discussed by Gawthrop and Crampin (2016), and as outlined in the following figure: a bond graph representing a linear system can be represented as a transfer function *when causality has been asigned*. Thus, in the example in the figure, a bond graph with two impinging bonds and causality assigned as shown, corresponds to a $2 \\times 2$ transfer function matrix so that:\n", "\\begin{equation}\n", " \\begin{pmatrix}\n", " y_1 \\\\y_2\n", " \\end{pmatrix} =\n", " \\begin{pmatrix}\n", " g_{11} & g_{12}\\\\\n", " g_{21} & g_{22}\n", " \\end{pmatrix}\n", " \\begin{pmatrix}\n", " u_1 \\\\u_2\n", " \\end{pmatrix}\n", "\\end{equation}\n", "\n", "As in the modular bond-graph approach, a Ce component is put beween each link in the chain to unify the appropriate Ce components:\n", "- The system *sys* corresponds to the bond graph ABG_abg above with **Ce:A** and **Ce:C** replaced by ports\n", "- The system *csys* is *sys* with a **Ce** component prepended.\n" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\t\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\t\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\t\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\t\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Bond graph\n", "\n", "y2=v2\n", "\n", "u1=v1\n", "\n", "u2=e2\n", "\n", "y1=e1\n", "\n", "Transfer fun.\n", "\n", "v1\n", "\n", "e1\n", "\n", "e2\n", "\n", "v2\n", "\n", "" ], "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "disp.SVG('notation.svg')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Linearise the subsystem" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$$\\begin{bmatrix}\\frac{-2 s - 4}{s + 4}&\\frac{4}{s + 4}\\\\\\frac{4}{s + 4}&\\frac{-2 s - 4}{s + 4}\\\\ \\end{bmatrix}$$" ], "text/plain": [ "\n", "Input 1 to output 1:\n", "-2 s - 4\n", "--------\n", " s + 4\n", "\n", "Input 1 to output 2:\n", " 4\n", "-----\n", "s + 4\n", "\n", "Input 2 to output 1:\n", " 4\n", "-----\n", "s + 4\n", "\n", "Input 2 to output 2:\n", "-2 s - 4\n", "--------\n", " s + 4" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s = st.stoich(ABC_abg.model(),quiet=quiet)\n", "sc = st.statify(s,chemostats=['A','C'])\n", "\n", "## Linearise\n", "parameter = {}\n", "for r in s['reaction']:\n", " parameter['kappa_'+r] = 2\n", "sys = st.lin(s,sc,outvar = 'port',parameter=parameter,quiet=quiet)\n", "con.ss2tf(sys)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Create linear C component in control toolbox form" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "def makeC(Retroactive=True):\n", " \"\"\"Create linear C component in control toolbox form\n", " Note that retroactivity is removed by setting output 1 to zero\n", " \"\"\"\n", " Ca = 0\n", " Cb = np.ones((1,2))\n", " Cc = np.ones((2,1))\n", " if not Retroactive:\n", " Cc[0] = 0\n", " Cd = np.zeros((2,2))\n", " C = con.ss(Ca,Cb,Cc,Cd)\n", " return C" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$$\\begin{bmatrix}\\frac{1}{s}&\\frac{1}{s}\\\\\\frac{1}{s}&\\frac{1}{s}\\\\ \\end{bmatrix}$$" ], "text/plain": [ "\n", "Input 1 to output 1:\n", "1\n", "-\n", "s\n", "\n", "Input 1 to output 2:\n", "1\n", "-\n", "s\n", "\n", "Input 2 to output 1:\n", "1\n", "-\n", "s\n", "\n", "Input 2 to output 2:\n", "1\n", "-\n", "s" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "con.ss2tf(makeC(Retroactive=True))" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$$\\begin{bmatrix}\\frac{0}{1}&\\frac{0}{1}\\\\\\frac{1}{s}&\\frac{1}{s}\\\\ \\end{bmatrix}$$" ], "text/plain": [ "\n", "Input 1 to output 1:\n", "0\n", "-\n", "1\n", "\n", "Input 1 to output 2:\n", "1\n", "-\n", "s\n", "\n", "Input 2 to output 1:\n", "0\n", "-\n", "1\n", "\n", "Input 2 to output 2:\n", "1\n", "-\n", "s" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "con.ss2tf(makeC(Retroactive=False))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Create chain of linearised modules\n" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$$\\begin{bmatrix}\\frac{s + 4}{s^2 + 6 s + 4}&\\frac{4}{s^2 + 6 s + 4}\\\\\\frac{4}{s^2 + 6 s + 4}&\\frac{-2 s^2 - 8 s}{s^2 + 6 s + 4}\\\\ \\end{bmatrix}$$" ], "text/plain": [ "\n", "Input 1 to output 1:\n", " s + 4\n", "-------------\n", "s^2 + 6 s + 4\n", "\n", "Input 1 to output 2:\n", " 4\n", "-------------\n", "s^2 + 6 s + 4\n", "\n", "Input 2 to output 1:\n", " 4\n", "-------------\n", "s^2 + 6 s + 4\n", "\n", "Input 2 to output 2:\n", "-2 s^2 - 8 s\n", "-------------\n", "s^2 + 6 s + 4" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/latex": [ "$$\\begin{bmatrix}\\frac{-2 s^3 - 20 s^2 - 48 s - 16}{s^3 + 12 s^2 + 40 s + 32}&\\frac{16}{s^3 + 12 s^2 + 40 s + 32}\\\\\\frac{16}{s^3 + 12 s^2 + 40 s + 32}&\\frac{-2 s^3 - 20 s^2 - 48 s - 16}{s^3 + 12 s^2 + 40 s + 32}\\\\ \\end{bmatrix}$$" ], "text/plain": [ "\n", "Input 1 to output 1:\n", "-2 s^3 - 20 s^2 - 48 s - 16\n", "---------------------------\n", " s^3 + 12 s^2 + 40 s + 32\n", "\n", "Input 1 to output 2:\n", " 16\n", "------------------------\n", "s^3 + 12 s^2 + 40 s + 32\n", "\n", "Input 2 to output 1:\n", " 16\n", "------------------------\n", "s^3 + 12 s^2 + 40 s + 32\n", "\n", "Input 2 to output 2:\n", "-2 s^3 - 20 s^2 - 48 s - 16\n", "---------------------------\n", " s^3 + 12 s^2 + 40 s + 32" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "array([-6.82842712, -4. , -1.17157288])" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def makeChain(sys,C,N=2):\n", " \"\"\"Make the chain of modules\"\"\"\n", " \n", " ## Prepend C component to sys\n", " CSYS = con.append(C,sys)\n", " Q = np.array([[2,3],[3,2]])\n", " inout = np.array([1,4])\n", " csys = con.connect(CSYS,Q,inout,inout)\n", "\n", "\n", " ## Recursively create chain\n", " Sys = sys\n", " for i in range(N-1):\n", " SYS = con.append(Sys,csys)\n", " Sys = con.connect(SYS,Q,inout,inout)\n", "\n", " return Sys,csys\n", "\n", "Sys,csys = makeChain(sys,makeC(Retroactive=True),N=2)\n", "\n", "con.ss2tf(csys)\n", "con.ss2tf(Sys)\n", "con.pole(Sys)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Analyse with and without retroactivity" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "==========================\n", "Retroactive = True\n", "==========================\n", "==========================\n", "Chain length N = 1\n", "==========================\n", "Chain poles: [-4.]\n", "Chain gain: [[-1. 1.]\n", " [ 1. -1.]]\n", "Analyse cys\n", "L: \n", " 2 s^3 + 16 s^2 + 32 s\n", "---------------------------------\n", "s^4 + 12 s^3 + 44 s^2 + 48 s + 16\n", "\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3XuUHVWZ9/Hv093pXCEJSWghAYIQUfQdwCDgvKhx8AIMErzwLljqwEJFl7JQxxmFYcalvDo6Osq8M7oUVBaKLi46RlGi3EyLiAhhuIYINJFLLpILdEJf0n36nOf9o3YnRXPO6UPqdNeuw++zVq0+p2p31XOq99O7atc+VebuiIiIxKYt7wBERESqUQMlIiJRUgMlIiJRUgMlIiJRUgMlIiJRUgMlIiJRUgMlIiJRUgM1hpkdb2a3m9l2M3vGzH5vZq8Ly842s9vyjrEVmNl5ZrbazIbM7Ipxyr7GzG4ws61mpi/uFYDyaHK8yDw6y8zuNrMdZrbezL5iZh2TFOoeUQOVYmZ7A78E/gvYB1gIfB4YyiEWM7NW/vtsBL4AXN5A2RJwLfCBCY1ImkJ5NKleTB7NAD4BzAeOBU4A/mHiQmsCd9cUJuBooLfGslcBO4Ey0DdaDpgK/DvwJPA08G1geli2DFgP/BOwFXgceG+d7XcDXwR+DwwChwKzge8Bm4ANJJWxPZQ/FPgtsD2s/5rUuhw4H1gXln0VaAvL2oB/Bp4ANgM/AGaHZYvD754VPtNW4KLUeo8BVgM7wuf9emrZccDtQC9wH7CsgX3+BeCKBv8+hyZVNv+6oqnu30l5FHEepX7n74Ff5F1f6saYdwAxTcDewDbg+8BJwNwxy88Gbhsz7xLgOpIjxb2AXwBfCsuWASPA10MCvgnoBw6rsf3uUJlfDXQAU4AVwKXATGBf4E7gw6H8VcBFIVGmAcen1uXAqhDXgcAjwAfDsnOAHuDlwCzgp8CVYdloYn0HmA4cQXLk+6qw/A/A+8PrWcBx4fXCsO9ODvG8NbxfMM4+VwPVYpPyKO48Sv3Oz4Av511f6saYdwCxTSRHeFeQHLGNhKTpCsuel1iAhUQ5JDXv9cCfw+vRxJqZWn4t8C81tt0NXJx63xUq9fTUvDOBVeH1D4DLgEVV1uXAian3HwVuCa9vAT6aWnYYSTdaRyqxFqWW3wmcEV7fStJdM3/M9j4zmpypeTcAZ42zv9VAteCkPIo3j0L5c8LfZn6jv5PH1Mp9s3vE3de6+9nuvgh4DbA/8B81ii8g6de928x6zawX+HWYP+pZd+9PvX8irLOWp1KvDyI5+tuUWv+lJEeAAJ8mSe47zWyNmZ1TZ13p7e4f3qeXdZAk8qi/pF4PkBzlQXId6BXAn8zsLjM7JRXr6aNxhliPB/ar81mlRSmPdokuj8zsNOBLwEnuvrVZ650IUY/gyJu7/ymMjPnw6KwxRbaS9HG/2t031FjNXDObmUquA4EH62029fopkiO/+e4+UiW+vwAfgmTUFHCzmd3q7j2hyAHAmtR2N4bXG0kSgdSyEZK+8EV1YsPdHwXODBee3wX8xMzmhVivdPcP1ft9eelRHlUJLqc8MrMTSbod/9bdH5iIbTSTzqBSzOyVZvYpM1sU3h9A0hVwRyjyNLDIzDoB3L1C8se+xMz2Db+z0MzePmbVnzezTjN7A3AK8ONG4nH3TcCNwNfMbG8zazOzQ8zsTWFbp4/GCjxLkpSV1Cr+0czmhs/xceCaMP8q4JNmdrCZzQL+leTC8AuSt8o+ep+ZLQifvTfMrgA/BN5hZm83s3Yzm2Zmy1LxjV1Ph5lNA9qB0fIdqeVuZsvCawtlO8P7aWY2dbxYJR/Ko2jz6G+AHwHvdvc7x4sxCnn3McY0kVygvJZklE9/+HkpsHdY3glcDzwDbA3zppFUzHUkI3LWAueHZctI+nkvIjlKfJJwYbTG9rsJF2BT82YD3wrr2Q7cw+5+7K+EGPuAx4BzU7+XHn20Dfgau0cttQGfJTla20KSFHPDssXhdzuqxRXKbg7bXAOclip3LMloqGfCeq8HDqzxWT8XtpOePheWHRD25bwxMaWnx/OuL5qURwXLo1UkZ3h9qelXedeXepOFwGUChCOXH3rSDz/Z23Zgie/upigMM3sfSXfPhXnHIvlTHu2ZVsgjXYOS6Lj7D/OOQaToWiGPdA1KRESipC4+ERGJks6gREQkSlFfg5o/f74vXry46rL+/n5mzpw5uQE1IMa4YowJ4oxrvJjuvvvure6+oGaBCNXLIyjm3yEvMcYVY0xQP66G8yjvYYT1pqVLl3otq1atqrksTzHGFWNM7nHGNV5MwGqPIDdezFQvjxr5zHmIMSb3OOOKMSb3+nE1mkeZuvjCF9zWmFnFzI6uU+5EM3vYzHrM7IIs2xRpVWZ2uZltNrOqd0gIX1j+z5BH95vZayc7RpHJlLWL70GS23RcWquAmbUD3yS5K+964C4zu87dH8q47T3i7oxUnIo77tDsMSJDZWdwuNzclWYUY0wQZ1zD5VwHDV0BfIPk5qXVnAQsCdOxJF88PXZSIquiXHHKIZegubkUY92AOOOKMSZI6kdWmRood18LYGb1ih0D9Lj7ulD2amA5MKEN1JPbBvjF/RtZ/fgzPPnMANv6hxkYKjNcroz/y1nd9OuJ38aLFWNMEF1ch81t420n5LNtd7/VzBbXKbIc+EHoIrnDzOaY2X6e3MpnomKi++EtdD+8mQc37mBT7yA7do4wMDxCE/7/1BdZ3dglxrgijOnDfzWVrKk0GYMkFvL8uwGvp85Rn5mdC5wL0NXVRXd3d9VyfX19VZeVK86PHylx0xMlyg4LZxn7zWzjoPnGtPZ2prS1096W3LrYLPzc009WxdDwMFM7O5u4xuxijAnijGuGDdescxGolksLSR7C9zyN5hHUzqWNfRUuf3CInt4Kne1w8N5tLJ7Zxqw5MLV9Ch1t0BZyCGvukOAY6wbEGVeMMQHM79iZPZfGu0gF3EzSlTd2Wp4q0w0cXeP33wN8N/X+/cA3GrlAtieDJL54/UN+0Gd+6f/443t9Y+9Azd+fKDFesIwxJvc448p7kATJPdwerLHslzz/YXq31Mq79LQngySe6Rvy//3lW/yoi2/0a+580odK5brraLYY64Z7nHHFGJN7cwZJjHsG5e5vydYEsoHkpoWjFoV5TXf9/Zu47NZ1/N3rD+Li5a+ZiE2I5GlScsndOf/qe9i8Y4hrP/J6jjxgTrM3IdKQyfii7l3AknBL+k7gDJKnazbdN1f18MqX7cW/nHL4RKxeJG/XAX8XRvMdB2z3Cbj+dP/67fzu0a18+sTD1DhJrrIOM3+nma0neTzz9WZ2Q5i/v5mtBPDk2SjnkTy2eC1wrbuvqbXOPfXwX57joU07OON1BzClXTfIkOIxs6uAPwCHmdl6M/uAmX3EzD4SiqwkeexDD8nzkz46EXGsuGcDnR1tnH70AeMXFplAWUfxrQBWVJm/ETg59X4lSXJNmJ/du4H2NuOUI+o9BVokXu5+5jjLHfjYRMZQKlf4xX0bOeGV+zJ7+pSJ3JTIuFriVKNSca67dyNvWDKf+bP0oFWRPXVbz1a29Q9z2lEL8w5FpDUaqJ4tfWzoHeRv/9d+eYciUmi/fXgLMzrbWXZYoW43KC2qJRqoR5/uA+Dw/ffOORKRYnt083Ms2XcWUzva8w5FpDUaqJ7NfZjBy+fPyjsUkULr2dzHIfsqjyQOrdFAbelj4ZzpTO/UUZ/Intqxs8TTO4Y4VA2URKI1GqjNfUoqkYwe25x0lR+6QLkkcSh8A1WuOOu29CmpRDLqCQ2UuvgkFoVvoDb2DjI0UtEZlEhGj23pZ0q7cdA+M/IORQRogQZq9KhPDZRINj2b+1g8byYduhOLRKLwNXFXt4S6+EQyeWyLruVKXArfQD22pY95MzuZOzO+56GIFMXwSIUnnxlQAyVRKXwDteW5IV42e1reYYgU2rMDw5QrrlySqBS+gXp2YJg5M3RTS5Esnh0YBmDOdPVESDwK30D1DpaUVCIZ9Q6UAHSwJ1EpfAO1faCkpBLJSA2UxKjQDZS7J2dQSiqRTLYPhi6+GeqNkHgUuoF6bmiEcsXVxSeS0a4zKD2kUCJS6AZqe0iq2TqDEsmkd7DElHZjhm64LBEpdAM1etQ3V90SIpn0DgwzZ0YnZpZ3KCK7FLuB2tVvrjMokSx6B0rq3pPoFLuBUr+5SFP0ajSsRKjgDVRyBqVrUCLZ9A6WmK3BRhKZgjdQo2dQSiyRLLbrjiwSoWI3UIMlZna209lR6I8hkrtnB0rMVQMlkSn0f/ak31xnTyJZDJedwVJZuSTRKXgDNcxsDZAQyWSg5ADKJYlOsRso3eZIJLP+5FKuckmiU+wGamBYX9IVyagvnEEplyQ2hW6gtg+WNMRcJKN+dfFJpArbQLm7vv0u0gSjZ1Dq4pPYFLaB2lmGkYorqUQy2n0NSl18EpfCNlB9w+GoT1/SFcmkv+R0tBkzdSdziUxhG6id5eTnrGkd+QYiUnCDI86saR26k7lEp7ANVKmcnEFNm1LYjyAShVIFpnXo7Enik+m/u5mdbmZrzKxiZkfXKfe4mT1gZvea2eos2xxVqiQ/pyqxpIWY2Ylm9rCZ9ZjZBVWWn21mW0Iu3WtmH8y6zVLZmaoDPYlQ1v6xB4F3AZc2UPbN7r414/Z2KVV0BiWtxczagW8CbwXWA3eZ2XXu/tCYote4+3nN2q7OoCRWmRood18L5NJ3rTMoaUHHAD3uvg7AzK4GlgNjG6imKlVg6lQd6El8JmuEgQM3mpkDl7r7ZbUKmtm5wLkAXV1ddHd3Vy23o38nYNx3z91sfTSe5Orr66sZc15ijAnijCvnmBYCT6XerweOrVLu3Wb2RuAR4JPu/tTYAo3mEcDg8AiMPBfV3yLGugFxxhVjTNCkuNy97gTcTNKVN3ZanirTDRxdZx0Lw899gfuAN463XXdn6dKlXsv//eGNftBnfulPbO2vWSYPq1atyjuEF4gxJvc44xovJmC1N1B392QC3gN8N/X+/cA3xpSZB0wNrz8M/Ga89dbLI3f3E7600t/7nTsa3EOTI8a64R5nXDHG5F4/rkbzaNwzKHd/S7YmENx9Q/i52cxWkHRl3JplnaUwzFwXd6WFbAAOSL1fFObt4u7bUm+/C3wl60ZLFZiqZ6pJhCa8VprZTDPba/Q18DaSM7BMdl+DUmJJy7gLWGJmB5tZJ3AGcF26gJntl3p7KrA260ZLFY3ikzhlHWb+TjNbD7weuN7Mbgjz9zezlaFYF3Cbmd0H3Alc7+6/zrJd2D2KT4MkpFW4+whwHnADScNzrbuvMbOLzezUUOz88NWO+4DzgbOzbrdUVh5JnLKO4lsBrKgyfyNwcni9Djgiy3aq0RmUtCJ3XwmsHDPvs6nXFwIXNnOb6uKTWBW2VpbK0NneRlubbs8ikkWp4mqgJEqFrZVKKpHmKFVg6hR18Ul8CvsfPkmqwoYvEgV3p1SGaTrYkwgVtlYO68KuSGalsuPoDEriVNgGSl18ItkNjSRfKFQuSYwKWytLFehUUolkMjSSDIdVAyUxKmyt1IVdkex2N1DKJYlPcRuosrr4RLIaCvcM04AjiVFha2WpAtN0BiWSibr4JGaFrZX69rtIdurik5gV9j+8RvGJZLeri0+5JBEqbK3UDS5Fsts5egala1ASocLWSj0iQCS73WdQOtiT+BT2P7yuQYlkN3oNapoO9iRCha2V6uITyU6DJCRmhWygKhVnxHUGJZKVbnUkMStkrRwuj3ZL6KhPJIuhks6gJF6FbKB2J1UhwxeJxpBG8UnEClkrd3VLKKlEMhnNpc525ZLEp5C1Uhd2RZpjaKRCh0Fbm+UdisgLFLKB2qlvv4s0xc5SGV3KlVgV8j+8bnAp0hxDIxXUUy6xKmTV3H0NSod+IlkMlSpMUfeeRKqYDZRG8Yk0xdCIuvgkXoX8D7/79izKLJEski4+nUFJnAraQGmQhEgz6BqUxKyQVVODJESaY6hUVgMl0Spk1dx1DUpdfCKZDI1UmNKuLj6JUyEbqJ3q4hNpip06g5KIFbJqahSfSHMM6xqURKyQVXP3IAl18YlkoVF8ErOCNlAVDNR3LpLR0EiZTh3nSaQK20BNaQMzNVAiWSR3ksg7CpHqClk1h3SDS5GmUBefxCxTA2VmXzWzP5nZ/Wa2wszm1Ch3opk9bGY9ZnZBlm2Ckkpa13i5YmZTzeyasPyPZrZ4T7dVqTjD5YoO9iRaWc+gbgJe4+5/BTwCXDi2gJm1A98ETgIOB840s8OzbFTffpdW1GCufAB41t0PBS4B/m1PtzdcTkbDKpckVpmqprvf6O4j4e0dwKIqxY4Betx9nbsPA1cDy7NsVze4lBbVSK4sB74fXv8EOMH28GLs6Nc11Bshsepo4rrOAa6pMn8h8FTq/Xrg2ForMbNzgXMBurq66O7ufkGZ2aUSr55Tqbosb319fdHFFWNMEGdcOcfUSK7sKuPuI2a2HZgHbE0XaiSPBkrOX+/fwdz2If0dGhRjXDHGBE2Ky93rTsDNwINVpuWpMhcBKwCr8vvvAb6bev9+4BvjbdfdWbp0qdeyatWqmsvyFGNcMcbkHmdc48UErPYG6u6eTI3kSsi9Ran3jwHz6623Xh418pnzEGNM7nHGFWNM7vXjajSPxj2Dcve31FtuZmcDpwAnhA2PtQE4IPV+UZgnIs/XSK6MlllvZh3AbGDb5IQnMrmyjuI7Efg0cKq7D9QodhewxMwONrNO4AzguizbFWlRjeTKdcBZ4fV7gN/UODAUKTzLUrfNrAeYyu4juDvc/SNmtj9JV8XJodzJwH8A7cDl7v7FBte/BXiixuL5jOl3j0SMccUYE8QZ13gxHeTuCyZq49VyxcwuJukSuc7MpgFXAkcBzwBnuPu6cdZZL4+gmH+HvMQYV4wxQf24GsqjTA1UnsxstbsfnXccY8UYV4wxQZxxxRjTRIvxM8cYE8QZV4wxQXPi0jcgREQkSmqgREQkSkVuoC7LO4AaYowrxpggzrhijGmixfiZY4wJ4owrxpigCXEV9hqUiIi0tiKfQYmISAtTAyUiIlEqZAPV7Md3NIOZPW5mD5jZvWa2Osc4LjezzWb2YGrePmZ2k5k9Gn7OjSCmz5nZhrC/7g3f/5nMmA4ws1Vm9pCZrTGzj4f5ue6ryRRjHkEcuRRjHtWJq2VzqXAN1EQ8vqOJ3uzuR+b8nYQrgBPHzLsAuMXdlwC3hPd5xwRwSdhfR7r7ykmOaQT4lLsfDhwHfCzUo7z31aSIPI8g/1y6gvjyCF5iuVS4BooJeHxHK3H3W0nuMJCWfkTD94HTIogpV+6+yd3/J7x+DlhLcqfwXPfVJFIe1RFjHsFLL5eK2EBVeyTBwpxiSXPgRjO7OzzqICZd7r4pvP4L0JVnMCnnhacxX55nV1p4Ku1RwB+Jd181W6x5BPHmUsx1oyVzqYgNVKyOd/fXknSZfMzM3ph3QNWEG4vG8N2CbwGHAEcCm4Cv5RGEmc0C/hv4hLvvSC+LaF+91ESfS5HVjZbNpSI2UFE+vsPdN4Sfm0mejXVMvhE9z9Nmth9A+Lk553hw96fdvezuFeA75LC/zGwKSUL9yN1/GmZHt68mSJR5BFHnUpR1o5VzqYgNVHSP7zCzmWa21+hr4G0kD5aLRfoRDWcBP88xFmBXhR31TiZ5f5mZAd8D1rr711OLottXEyS6PILocynKutHSudTIUw1jm4CTgUdIniZ6UQTxvBy4L0xr8owJuIrkNL9Ecl3hAySPBL8FeJTkCcn7RBDTlcADwP2hIu83yTEdT9LlcD9wb5hOzntfTfI+iCqPQkxR5FKMeVQnrpbNJd3qSEREolTELj4REXkJUAMlIiJRUgMlIiJRUgMlIiJRUgMlIiJRUgMlIiJRUgMlIiJRUgMlIiJRUgMlIiJRUgMlIiJRUgMlIiJRUgMlIiJRUgMlIiJRUgM1hpkdb2a3m9l2M3vGzH5vZq8Ly842s9vyjrHozGyqmX3PzJ4ws+fM7F4zO6lO+deY2Q1mttXMdPv9AlAeTbw9yKOzzOxuM9thZuvN7Ctm1jGZMb9YaqBSzGxv4JfAfwH7AAuBzwNDOcRiZtaqf58O4CngTcBs4J+Ba81scY3yJeBakmffSOSUR5PmxebRDOATwHzgWOAE4B8mPMos8nw4WWwTcDTQW2PZq4CdQBnoGy0HTAX+HXgSeBr4NjA9LFtG8lCxfwK2Ao8D762z/W7gi8DvgUHgUJKK9z2Sh5RtAL4AtIfyhwK/BbaH9V+TWpcD5wPrwrKvAm1hWRtJZX6C5DHMPwBmh2WLw++eFT7TVlIPjSN5nPRqYEf4vF9PLTsOuB3oJXng3LIXse/vB949TplDkyqbf13RVPfvpDyKOI9SZf8e+EXe9aVujHkHENME7A1sA74PnATMHbP8bOC2MfMuIXmK5T7AXsAvgC+FZcuAEeDrIQHfBPQDh9XYfneozK8mOTqaAqwALgVmAvsCdwIfDuWvAi4KiTINOD61LgdWhbgOJHly6gfDsnOAHpKnl84CfgpcGZaNJtZ3gOnAESRHvq8Ky/8AvD+8ngUcF14vDPvu5BDPW8P7BQ3s9y6Sf1qvHKecGqgCTMqjuPMoVf5nwJfzri91Y8w7gNgmkiO8K0iO2EZC0nSFZc9LLMBCohySmvd64M/h9WhizUwtvxb4lxrb7gYuTr3vCpV6emremcCq8PoHwGXAoirrcuDE1PuPAreE17cAH00tO4ykG60jlViLUsvvBM4Ir28l6a6ZP2Z7nxlNztS8G4CzxtnfU0geB31pA38bNVAFmZRH8eZRKH9O+NvMb6R8XlOr9s3uMXdf6+5nu/si4DXA/sB/1Ci+gKRf924z6zWzXuDXYf6oZ929P/X+ibDOWp5KvT6IpOJtSq3/UpIjQIBPkyT3nWa2xszOqbOu9Hb3D+/TyzpIEnnUX1KvB0iO8iC5DvQK4E9mdpeZnZKK9fTROEOsxwP71fqg4drAlcAwcF6tclI8yqNdossjMzsN+BJwkrtvHa98nqIewZE3d/+TmV0BfHh01pgiW0n6uF/t7htqrGaumc1MJdeBwIP1Npt6/RTJkd98dx+pEt9fgA9BMmoKuNnMbnX3nlDkAGBNarsbw+uNJIlAatkISV/4ojqx4e6PAmeGpHgX8BMzmxdivdLdP1Tv90eZmZFcE+gCTnb3UiO/J8WjPKoSXE55ZGYnknQ7/q27P9DINvKkM6gUM3ulmX3KzBaF9weQdAXcEYo8DSwys04Ad6+Q/LEvMbN9w+8sNLO3j1n1582s08zeAJwC/LiReNx9E3Aj8DUz29vM2szsEDN7U9jW6aOxAs+SJGUltYp/NLO54XN8HLgmzL8K+KSZHWxms4B/Jbkw/ILkrbKP3mdmC8Jn7w2zK8APgXeY2dvNrN3MppnZslR8Y32LpBvoHe4+WGU7bmbLwmszs2lAZ3g/zcymjher5EN5FG0e/Q3wI5JBFHeOF2MU8u5jjGkiuUB5Lckon/7w81Jg77C8E7geeAbYGuZNI6mY60hG5KwFzg/LlpH0815EcpT4JOHCaI3tdxMuwKbmzSaphOtJRhndw+5+7K+EGPuAx4BzU7+XHn20Dfgau0cttQGfJTla20KSFHPDssXhdzuqxRXKbg7bXAOclip3LMloqGfCeq8HDqzyOQ8K29gZ1jM6vTcsPyDsy3ljYkpPj+ddXzQpjwqWR6tIzvDSZX+Vd32pN1kIXCZAOHL5oSf98JO9bQeW+O5uisIws/eRdPdcmHcskj/l0Z5phTzSNSiJjrv/MO8YRIquFfJI16BERCRK6uITEZEo6QxKRESiFPU1qPnz5/vixYurLuvv72fmzJmTG1ADYowrxpggzrjGi+nuu+/e6u4LahaIUL08gmL+HfISY1wxxgT142o4j5o0rPRykiGTD9ZYbsB/kty36n7gtY2sd+nSpV7LqlWrai7LU4xxxRiTe5xxjRcTsNonZmj26STDjSvA0XXKnQg8HHLpgkbWXS+PGvnMeYgxJvc444oxJvf6cTWaR83q4rsiJE4tJwFLwnQuyfcRRGS3B0nuKHBrrQJm1g58kySfDie5E8HhkxOeyORrShefu99a5xkkAMuBH4SW8w4zm2Nm+3nyDe8JtWn7IE89M8i2viH6h8sMj1QolStU3Kn4rvibtr3HHi/R87t1TVtfM8QYE8QZ1zObRliWw3bdfS1Acueamo4Betx9XSh7NUluPTTR8ZXKFdZt6WfT9kF27BxhcHiE4bJTLleo+O77CjUrl2KsGxBnXDHGBDCjrzJ+oXFM1jWohTz/hovrw7wXNFBmdi7JWRZdXV10d3dXXWFfX1/NZYMjzq/+XOL3G0bYtjOHUYp/Wjv52xxPjDFBdHEdurdzTI16FYFqeXRstYKN5hHUz6UndpT5WU+Jh7aVGSrvWdB7LLK6sUuMcUUY01mv8Lr1rhHRDZJw98tIbn3P0Ucf7cuWLatarru7m2rLntw2wOmX3s7TO0r8zSv35Q1L5nPIglnMnzWVvaZ10NnRRkeb0WbJRDhgrX/g2rjbfncbx7/h+OasrElijAnijOv2226rWq+awcxuBl5WZdFF7v7zZm6r0TyC2rn0vdv+zBf+8BCzp0/hjGMWcdSBc1k4dzpzZ0xhemcHU9qNjrY22gyM5uZSjHUD4owrxpgA7rw9ey5NVgO1geS+UKMWhXlN1T80wrlXrmZnqcJPP/rXvPbAuc3exLhmTDH2njZl0rdbT4wxQZxxTeto0pFKFe7+loyrmJQ8AvjtI1v44vUP8ZZXdfHvpx/B7OmT+3eKsW5AnHHFGBNAR1v2XJqs70FdB/xduCv1ccD2ibj+9NUbHuaRp5/jv848KpfGSWSC3QUsCXfP7gTOIMmtphoYHuHjV9/DK7r24v+dceSkN04io5rSQJnZVSSPMD7MzNab2QfM7CNm9pFQZCXJ3YB7SG6r/9FmbDdtaKTMins28I4j9ueNryjU11REMLN3mtl6kifJXm9mN4T5+5vZSgBPHuNwHskTVtcC17r7mlrr3FM3PfQ0vQMlPnfqq5nRGd1Zu/mdAAANWklEQVRVAHkJadYovjPHWe7Ax5qxrVq6H97C9sESpx21cCI3IzIh3H0FsKLK/I3Ayan3K0kO+CbMins2sP/saRyzeJ+J3IzIuFrmVkc/v3cD82Z28oZD5+cdikhhbe0b4nePbmX5UQtpa8I1BJEsWqKBem5niZvXbuYdR+xPR3tLfCSRXFx//ybKFeed6omQCLTEf/O1m55jeKTCm3TtSSSTe558lpftPY1XdO2VdygirdFA9WzuA+DQfWflHIlIsfVs6WNJl/JI4tASDdRjW/qYPqWdhXOm5x2KSGFVKs5jm/s5ZIEaKIlDSzRQPZv7ePmCmbqoK5LBph07GSyV1RMh0WiZBkpHfSLZqKtcYlP4BmpgeIQNvYNKKpGM1EBJbArfQK3b0g8oqUSy6tncx5wZU5g3szPvUESAFmigdNQn0hyPbe7j0AWzxnsmlcikKXwD9diWPtrbjIPmzcg7FJFCe2yLruVKXArfQD2+bYCFc6YztaM971BECuu5nSW29Q9z8IKZeYciskvhG6hn+4eZN0t95iJZPNtfAtD1J4lK4Ruo3sFh5s5QUolk0Ts4DKBckqgUv4EaKDFHD1QTyaR3IDmDmjNDuSTxKHwDtX2gxGwllUgmvYNqoCQ+hW6gSuUKzw2NMGe6uiVEstg+kHTxzVYuSUQK3UBt11GfSFM8G7r4Zqu7XCJS6AZK/eYizdE7UGLW1A46Owr9L0FaTKFr4/Yw8miORh6JZNI7OKyzJ4lOoRuo0e9uaBSfSDbbB0rqiZDoFLqB0sgjkeboHVQDJfEpdgMVRh5pFJ9INr0Dw8ojiU6hG6jtgyXaDPaa1pF3KCKF1qsuPolQoRuo3oESs6dP0aPeRTJwd3XxSZQK3UA9OzCsEXwiGe0sQ7ni6uKT6BS6gdo+WNLQWJGM+oYdQLcMk+gUuoHqHSgxV0klkkl/KWmgdCdziU2xG6hBdfGJZNWXfFtD16AkOsVuoPrVxSeS1egZlL7wLrEpbAM1UvHkTuY66hPJZLSB0jUoiU1hG6iBkeSnjvpEsunbdQal7nKJS2EbqP4w8kjXoESy6S85MzrbdSdziU5ha+RwJWmgpne25xyJSLENl2GG8kgi1JQGysxONLOHzazHzC6osvxsM9tiZveG6YNZt1kqJz+nTVFiSfGZ2elmtsbMKmZ2dJ1yj5vZAyGPVjdj26UKTO1QHkl8Mt/EzszagW8CbwXWA3eZ2XXu/tCYote4+3lZtzeqVEl+TlW3hLSGB4F3AZc2UPbN7r61WRsulZ2pU5RHEp9m3GX1GKDH3dcBmNnVwHJgbAPVVKNdfGqgpBW4+1oAs8m/r+SwzqAkUs1ooBYCT6XerweOrVLu3Wb2RuAR4JPu/lSVMpjZucC5AF1dXXR3d1fd6HP9OwHjgXv/h+3r4kmuvr6+mjHnJcaYIM64YoxpDAduNDMHLnX3y6oVajSPAHYOjzDkcX3uWP8OMcYVY0zQpLjcPdMEvAf4bur9+4FvjCkzD5gaXn8Y+E0j6166dKnX8q8/uskP+swvvWfzczXL5GHVqlV5h/ACMcbkHmdc48UErPY9z5WbSbryxk7LU2W6gaPrrGNh+LkvcB/wxvG2Wy+P3N3f9uWV/n++ffuL2U0TLsa64R5nXDHG5F4/rkbzqBlnUBuAA1LvF4V56UZwW+rtd4GvZN1oSV18UjDu/pYmrGND+LnZzFaQdLHfmmWdpQpM1WAjiVAz/rvfBSwxs4PNrBM4A7guXcDM9ku9PRVYm3WjuwdJKLHkpcHMZprZXqOvgbeRnIFlkozi04GexCdzrXT3EeA84AaShudad19jZheb2amh2PlhCO19wPnA2Vm3OzrMXKOPpBWY2TvNbD3weuB6M7shzN/fzFaGYl3AbSGP7gSud/dfZ912qeJqoCRKTXlWuruvBFaOmffZ1OsLgQubsa1Ro11803QGJS3A3VcAK6rM3wicHF6vA45o9rZLZfVESJwKe9hUqoAZTGnX495FskiuQRX2X4G0sMLWytF+8zy+NyLSSkoVV0+ERKmwDdRw2dUtIdIEpbLOoCROha2VGnkkkl2l4oy4ckniVNhaWaro/mEiWQ2Xk+9rqDdCYlTY//AaeSSS3VBptIEq7L8CaWGFrZXq4hPJbmgk+UKheiMkRoWtlSMV17OgRDIaGlEXn8SrsA2UzqBEstt1BqVckggVtlYm16AKG75IFHbqGpRErLC1crii70GJZLX7GpRySeJT2AZKt2cRyW50FN80nUFJhApbK9XFJ5LdrkESOoOSCBX2P3xJXXwimWmQhMSssLVSo/hEsts9zFy5JPEpbK0sVdD3oEQy2nUnCeWSRKiQDdRIuUJFN7gUyUxdfBKzQtbK3Rd2Cxm+SDTUxScxK2St3FkaPepTt4RIFsoliVkhGygd9Yk0x9BIBQOmtOvJ1BKfQv6HVxefSHMMjVSY0g5maqAkPoX8D7/7wq66JUSyGCqV0XGexKqQVVMPWRNpjqGRClPadPYkcSrkf3g9w0akOZIGKu8oRKorZNUc7eKbpswSyWRopIy+oyuxKuR/+N1dfMoskSyGSurik3gVs4HSKD6RplAXn8SskFVz95cLCxm+SDR2ahSfRKyQVVODJESaI/kelLr4JE4FbaB0BiXSDEMjOoOSeBWyauoalEhzDI1U6FQaSaQKWTU1ik+kOYZK6uKTeBWzgRop027QruGxIpmoi09iVsiqqaGxIs2hXJKYNaVqmtmJZvawmfWY2QVVlk81s2vC8j+a2eIs29O336XVmNlXzexPZna/ma0wszk1ytXNtRdL9+KTmGVuoMysHfgmcBJwOHCmmR0+ptgHgGfd/VDgEuDfsmxzp779Lq3nJuA17v5XwCPAhWMLNJhrDSuVK5QrroM9iVYzzqCOAXrcfZ27DwNXA8vHlFkOfD+8/glwgmV4AI26JaTVuPuN7j4S3t4BLKpSrJFca9joaFgd7EmsOpqwjoXAU6n364Fja5Vx9xEz2w7MA7aOXZmZnQucC9DV1UV3d/cLNrhh007aqVRdlre+vr7o4ooxJogzrkhiOge4psr8RnINaCyPdgw7AJXSUAyf+Xki+Tu8QIxxxRgTNCkud880Ae8Bvpt6/37gG2PKPAgsSr1/DJg/3rqXLl3q1Tz69A6//Gc3V12Wt1WrVuUdwgvEGJN7nHGNFxOw2vc8V24OuTB2Wp4qcxGwArAqvz9urlWbauXRUKnsd/55m//0V7fs0b6aSDHWDfc444oxJvf6cTWaR804g9oAHJB6vyjMq1ZmvZl1ALOBbXu6wUP33Yv1s9VxLsXi7m+pt9zMzgZOAU4ISTxWI7nWsM6ONl63eB/6H1d/ucSpGTXzLmCJmR1sZp3AGcB1Y8pcB5wVXr8H+E2NBBR5STKzE4FPA6e6+0CNYo3kmkjLyNxAeXJh9zzgBmAtcK27rzGzi83s1FDse8A8M+sB/h7IPDxWpMV8A9gLuMnM7jWzbwOY2f5mthJq51peAYtMNIv5RMbMtgBP1Fg8nyqDLCIQY1wxxgRxxjVeTAe5+4LJCqYZxskjKObfIS8xxhVjTFA/robyKOoGqh4zW+3uR+cdx1gxxhVjTBBnXDHGNNFi/MwxxgRxxhVjTNCcuHR1VEREoqQGSkREolTkBuqyvAOoIca4YowJ4owrxpgmWoyfOcaYIM64YowJmhBXYa9BiYhIayvyGZSIiLQwNVAiIhKlQjZQzX4mTjOY2eNm9kD4kuXqHOO43Mw2m9mDqXn7mNlNZvZo+Dk3gpg+Z2Ybwv6618xOnuSYDjCzVWb2kJmtMbOPh/m57qvJFGMeQRy5FGMe1YmrZXOpcA1Us5+J02Rvdvcjc/5OwhXAiWPmXQDc4u5LgFuY/Dt5VIsJ4JKwv45095WTHNMI8Cl3Pxw4DvhYqEd576tJEXkeQf65dAXx5RG8xHKpcA0UTX4mTqtx91uBZ8bMTj+P6/vAaRHElCt33+Tu/xNeP0dy66CF5LyvJpHyqI4Y8wheerlUxAaq2jNxFuYUS5oDN5rZ3eFZPDHpcvdN4fVfgK48g0k5Lzzi/PI8u9LMbDFwFPBH4t1XzRZrHkG8uRRz3WjJXCpiAxWr4939tSRdJh8zszfmHVA14S7yMXy34FvAIcCRwCbga3kEYWazgP8GPuHuO9LLItpXLzXR51JkdaNlc6mIDVRTn4nTLO6+IfzcTPLAuWPyjeh5njaz/QDCz805x4O7P+3uZXevAN8hh/1lZlNIEupH7v7TMDu6fTVBoswjiDqXoqwbrZxLRWygonsmjpnNNLO9Rl8DbyN5Umos0s/jOgv4eY6xALsq7Kh3Msn7y8yM5DEwa93966lF0e2rCRJdHkH0uRRl3WjpXGrksbuxTcDJwCMkj46/KIJ4Xg7cF6Y1ecYEXEVyml8iua7wAWAeySiaR0keO75PBDFdCTwA3B8q8n6THNPxJF0O9wP3hunkvPfVJO+DqPIoxBRFLsWYR3Xiatlc0q2OREQkSkXs4hMRkZcANVAiIhIlNVAiIhIlNVAiIhIlNVAiIhIlNVAiIhIlNVAiIhKl/w9JN6zCZdbbqQAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Chain transfer function:\n" ] }, { "data": { "text/latex": [ "$$\\begin{bmatrix}\\frac{-2 s - 4}{s + 4}&\\frac{4}{s + 4}\\\\\\frac{4}{s + 4}&\\frac{-2 s - 4}{s + 4}\\\\ \\end{bmatrix}$$" ], "text/plain": [ "\n", "Input 1 to output 1:\n", "-2 s - 4\n", "--------\n", " s + 4\n", "\n", "Input 1 to output 2:\n", " 4\n", "-----\n", "s + 4\n", "\n", "Input 2 to output 1:\n", " 4\n", "-----\n", "s + 4\n", "\n", "Input 2 to output 2:\n", "-2 s - 4\n", "--------\n", " s + 4" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, { "name": "stdout", "output_type": "stream", "text": [ "==========================\n", "Retroactive = True\n", "==========================\n", "==========================\n", "Chain length N = 2\n", "==========================\n", "Chain poles: [-6.82842712 -4. -1.17157288]\n", "Chain gain: [[-0.5 0.5]\n", " [ 0.5 -0.5]]\n", "Analyse cys\n", "L: \n", " 2 s^3 + 16 s^2 + 32 s\n", "---------------------------------\n", "s^4 + 12 s^3 + 44 s^2 + 48 s + 16\n", "\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Chain transfer function:\n" ] }, { "data": { "text/latex": [ "$$\\begin{bmatrix}\\frac{-2 s^3 - 20 s^2 - 48 s - 16}{s^3 + 12 s^2 + 40 s + 32}&\\frac{16}{s^3 + 12 s^2 + 40 s + 32}\\\\\\frac{16}{s^3 + 12 s^2 + 40 s + 32}&\\frac{-2 s^3 - 20 s^2 - 48 s - 16}{s^3 + 12 s^2 + 40 s + 32}\\\\ \\end{bmatrix}$$" ], "text/plain": [ "\n", "Input 1 to output 1:\n", "-2 s^3 - 20 s^2 - 48 s - 16\n", "---------------------------\n", " s^3 + 12 s^2 + 40 s + 32\n", "\n", "Input 1 to output 2:\n", " 16\n", "------------------------\n", "s^3 + 12 s^2 + 40 s + 32\n", "\n", "Input 2 to output 1:\n", " 16\n", "------------------------\n", "s^3 + 12 s^2 + 40 s + 32\n", "\n", "Input 2 to output 2:\n", "-2 s^3 - 20 s^2 - 48 s - 16\n", "---------------------------\n", " s^3 + 12 s^2 + 40 s + 32" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, { "name": "stdout", "output_type": "stream", "text": [ "==========================\n", "Retroactive = True\n", "==========================\n", "==========================\n", "Chain length N = 5\n", "==========================\n", "Chain poles: [-7.80422607 -7.23606798 -6.35114101 -5.23606798 -4. -2.76393202\n", " -1.64885899 -0.76393202 -0.19577393]\n", "Chain gain: [[-0.2 0.2]\n", " [ 0.2 -0.2]]\n", "Analyse cys\n", "L: \n", " 2 s^3 + 16 s^2 + 32 s\n", "---------------------------------\n", "s^4 + 12 s^3 + 44 s^2 + 48 s + 16\n", "\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Chain transfer function:\n" ] }, { "data": { "text/latex": [ "$$\\begin{bmatrix}\\frac{-2 s^9 - 68 s^8 - 960 s^7 - 7280 s^6 - 3.203e+04 s^5 - 8.237e+04 s^4 - 1.183e+05 s^3 - 8.448e+04 s^2 - 2.304e+04 s - 1024}{s^9 + 36 s^8 + 544 s^7 + 4480 s^6 + 2.184e+04 s^5 + 6.406e+04 s^4 + 1.098e+05 s^3 + 1.014e+05 s^2 + 4.224e+04 s + 5120}&\\frac{1024}{s^9 + 36 s^8 + 544 s^7 + 4480 s^6 + 2.184e+04 s^5 + 6.406e+04 s^4 + 1.098e+05 s^3 + 1.014e+05 s^2 + 4.224e+04 s + 5120}\\\\\\frac{1024}{s^9 + 36 s^8 + 544 s^7 + 4480 s^6 + 2.184e+04 s^5 + 6.406e+04 s^4 + 1.098e+05 s^3 + 1.014e+05 s^2 + 4.224e+04 s + 5120}&\\frac{-2 s^9 - 68 s^8 - 960 s^7 - 7280 s^6 - 3.203e+04 s^5 - 8.237e+04 s^4 - 1.183e+05 s^3 - 8.448e+04 s^2 - 2.304e+04 s - 1024}{s^9 + 36 s^8 + 544 s^7 + 4480 s^6 + 2.184e+04 s^5 + 6.406e+04 s^4 + 1.098e+05 s^3 + 1.014e+05 s^2 + 4.224e+04 s + 5120}\\\\ \\end{bmatrix}$$" ], "text/plain": [ "\n", "Input 1 to output 1:\n", "-2 s^9 - 68 s^8 - 960 s^7 - 7280 s^6 - 3.203e+04 s^5 - 8.237e+04 s^4 - 1.183e+05 s^3 - 8.448e+04 s^2 - 2.304e+04 s - 1024\n", "-------------------------------------------------------------------------------------------------------------------------\n", " s^9 + 36 s^8 + 544 s^7 + 4480 s^6 + 2.184e+04 s^5 + 6.406e+04 s^4 + 1.098e+05 s^3 + 1.014e+05 s^2 + 4.224e+04 s + 5120\n", "\n", "Input 1 to output 2:\n", " 1024\n", "----------------------------------------------------------------------------------------------------------------------\n", "s^9 + 36 s^8 + 544 s^7 + 4480 s^6 + 2.184e+04 s^5 + 6.406e+04 s^4 + 1.098e+05 s^3 + 1.014e+05 s^2 + 4.224e+04 s + 5120\n", "\n", "Input 2 to output 1:\n", " 1024\n", "----------------------------------------------------------------------------------------------------------------------\n", "s^9 + 36 s^8 + 544 s^7 + 4480 s^6 + 2.184e+04 s^5 + 6.406e+04 s^4 + 1.098e+05 s^3 + 1.014e+05 s^2 + 4.224e+04 s + 5120\n", "\n", "Input 2 to output 2:\n", "-2 s^9 - 68 s^8 - 960 s^7 - 7280 s^6 - 3.203e+04 s^5 - 8.237e+04 s^4 - 1.183e+05 s^3 - 8.448e+04 s^2 - 2.304e+04 s - 1024\n", "-------------------------------------------------------------------------------------------------------------------------\n", " s^9 + 36 s^8 + 544 s^7 + 4480 s^6 + 2.184e+04 s^5 + 6.406e+04 s^4 + 1.098e+05 s^3 + 1.014e+05 s^2 + 4.224e+04 s + 5120" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, { "name": "stdout", "output_type": "stream", "text": [ "==========================\n", "Retroactive = False\n", "==========================\n", "==========================\n", "Chain length N = 1\n", "==========================\n", "Chain poles: [-4.]\n", "Chain gain: [[-1. 1.]\n", " [ 1. -1.]]\n", "Analyse cys\n", "L: \n", "0\n", "-\n", "1\n", "\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Chain transfer function:\n" ] }, { "data": { "text/latex": [ "$$\\begin{bmatrix}\\frac{-2 s - 4}{s + 4}&\\frac{4}{s + 4}\\\\\\frac{4}{s + 4}&\\frac{-2 s - 4}{s + 4}\\\\ \\end{bmatrix}$$" ], "text/plain": [ "\n", "Input 1 to output 1:\n", "-2 s - 4\n", "--------\n", " s + 4\n", "\n", "Input 1 to output 2:\n", " 4\n", "-----\n", "s + 4\n", "\n", "Input 2 to output 1:\n", " 4\n", "-----\n", "s + 4\n", "\n", "Input 2 to output 2:\n", "-2 s - 4\n", "--------\n", " s + 4" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, { "name": "stdout", "output_type": "stream", "text": [ "==========================\n", "Retroactive = False\n", "==========================\n", "==========================\n", "Chain length N = 2\n", "==========================\n", "Chain poles: [-5.23606798 -4. -0.76393202]\n", "Chain gain: [[-1. 0.]\n", " [ 1. 0.]]\n", "Analyse cys\n", "L: \n", "0\n", "-\n", "1\n", "\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Chain transfer function:\n" ] }, { "data": { "text/latex": [ "$$\\begin{bmatrix}\\frac{-2 s^3 - 4 s^2}{s^3 + 4 s^2}&\\frac{0}{1}\\\\\\frac{16}{s^3 + 10 s^2 + 28 s + 16}&\\frac{-2 s^3 - 16 s^2 - 32 s}{s^3 + 10 s^2 + 28 s + 16}\\\\ \\end{bmatrix}$$" ], "text/plain": [ "\n", "Input 1 to output 1:\n", "-2 s^3 - 4 s^2\n", "--------------\n", " s^3 + 4 s^2\n", "\n", "Input 1 to output 2:\n", " 16\n", "------------------------\n", "s^3 + 10 s^2 + 28 s + 16\n", "\n", "Input 2 to output 1:\n", "0\n", "-\n", "1\n", "\n", "Input 2 to output 2:\n", " -2 s^3 - 16 s^2 - 32 s\n", "------------------------\n", "s^3 + 10 s^2 + 28 s + 16" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, { "name": "stdout", "output_type": "stream", "text": [ "==========================\n", "Retroactive = False\n", "==========================\n", "==========================\n", "Chain length N = 5\n", "==========================\n", "Chain poles: [-5.23607422 -5.23607422 -5.23606798 -5.23605549 -4. -0.76393527\n", " -0.76393527 -0.76393202 -0.76392553]\n", "Chain gain: [[-1. 0.]\n", " [ 1. 0.]]\n", "Analyse cys\n", "L: \n", "0\n", "-\n", "1\n", "\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Chain transfer function:\n" ] }, { "data": { "text/latex": [ "$$\\begin{bmatrix}\\frac{-2 s^9 - 4 s^8}{s^9 + 4 s^8}&\\frac{0}{1}\\\\\\frac{1024}{s^9 + 28 s^8 + 328 s^7 + 2080 s^6 + 7728 s^5 + 1.709e+04 s^4 + 2.214e+04 s^3 + 1.638e+04 s^2 + 6400 s + 1024}&\\frac{-2 s^9 - 52 s^8 - 560 s^7 - 3216 s^6 - 1.056e+04 s^5 - 1.978e+04 s^4 - 2.01e+04 s^3 - 1.024e+04 s^2 - 2048 s}{s^9 + 28 s^8 + 328 s^7 + 2080 s^6 + 7728 s^5 + 1.709e+04 s^4 + 2.214e+04 s^3 + 1.638e+04 s^2 + 6400 s + 1024}\\\\ \\end{bmatrix}$$" ], "text/plain": [ "\n", "Input 1 to output 1:\n", "-2 s^9 - 4 s^8\n", "--------------\n", " s^9 + 4 s^8\n", "\n", "Input 1 to output 2:\n", " 1024\n", "------------------------------------------------------------------------------------------------------------\n", "s^9 + 28 s^8 + 328 s^7 + 2080 s^6 + 7728 s^5 + 1.709e+04 s^4 + 2.214e+04 s^3 + 1.638e+04 s^2 + 6400 s + 1024\n", "\n", "Input 2 to output 1:\n", "0\n", "-\n", "1\n", "\n", "Input 2 to output 2:\n", "-2 s^9 - 52 s^8 - 560 s^7 - 3216 s^6 - 1.056e+04 s^5 - 1.978e+04 s^4 - 2.01e+04 s^3 - 1.024e+04 s^2 - 2048 s\n", "------------------------------------------------------------------------------------------------------------\n", "s^9 + 28 s^8 + 328 s^7 + 2080 s^6 + 7728 s^5 + 1.709e+04 s^4 + 2.214e+04 s^3 + 1.638e+04 s^2 + 6400 s + 1024" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "for Retroactive in [True,False]:\n", " for N in NN:\n", " print('==========================')\n", " print('Retroactive =',Retroactive)\n", " print('==========================')\n", " C = makeC(Retroactive=Retroactive)\n", " Sys,csys = makeChain(sys,C,N=N)\n", " analyse(sys,Sys,csys=csys)\n", " print('Chain transfer function:')\n", " con.ss2tf(Sys)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Compute product of transfer functions" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "==========================\n", "Chain length N = 1\n", "==========================\n", "\n", " 4\n", "-----\n", "s + 4\n", "\n", "==========================\n", "Chain length N = 2\n", "==========================\n", "\n", " 16\n", "------------------------\n", "s^3 + 10 s^2 + 28 s + 16\n", "\n", "==========================\n", "Chain length N = 3\n", "==========================\n", "\n", " 64\n", "--------------------------------------------\n", "s^5 + 16 s^4 + 92 s^3 + 224 s^2 + 208 s + 64\n", "\n", "==========================\n", "Chain length N = 4\n", "==========================\n", "\n", " 256\n", "---------------------------------------------------------------------\n", "s^7 + 22 s^6 + 192 s^5 + 840 s^4 + 1920 s^3 + 2208 s^2 + 1216 s + 256\n", "\n", "==========================\n", "Chain length N = 5\n", "==========================\n", "\n", " 1024\n", "------------------------------------------------------------------------------------------------------------\n", "s^9 + 28 s^8 + 328 s^7 + 2080 s^6 + 7728 s^5 + 1.709e+04 s^4 + 2.214e+04 s^3 + 1.638e+04 s^2 + 6400 s + 1024\n", "\n" ] } ], "source": [ "## Initial value\n", "G21 = con.ss2tf(sys)[1,0]\n", "for i in range(N):\n", " print('==========================')\n", " print('Chain length N =',i+1)\n", " print('==========================')\n", " print(G21)\n", " G21 = con.series(G21,con.ss2tf(csys)[1,0])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Discussion\n", "- When the linear modules are concatenated using the standard **C** component, the properties of the chain are, as expected, the same as those from the modular BG approach\n", "- When the non-standard **C** component is used to avoid retroactivity, chain shows behavioral modularity\n", " - the steady-state (DC) gain of the chain *is* the product of the gain of each link\n", " - the poles of the chain are *the same* for each N\n", " - this is verified by directly computing the product of transfer functions\n", "- But the use of this non-standard **C** implies the use of an amplifier and therfore consumes power.\n", "- The *interaction loop gain* $L$ is discussed by Gawthrop and Crampin (2016). If $L=0$ there no retroactive interaction beween the links of the chain.\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.6.9" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 2 }