{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "6abd7c8e-9383-4bcb-b016-fcc73d9e311f", "metadata": {}, "outputs": [], "source": [ "\"\"\"\n", "@author: Enrico Regolin\n", "\"\"\"\n", "# observability / controllability example\n", "import numpy as np" ] }, { "cell_type": "code", "execution_count": 34, "id": "75d73b09-c33d-4c40-bdd0-3579055199cc", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[1 0 0]\n", " [0 1 0]\n", " [0 0 1]]\n", "observability matrix rank = 3\n", "[[0 0 1]\n", " [0 1 2]\n", " [1 2 3]]\n", "controllability matrix rank = 3\n" ] } ], "source": [ "#A = np.array([[0,1,0] , [1,1,0], [0,0,1]])\n", "A = np.array([[0,1,0] , [0,0,1], [1,-1,2]])\n", "C = np.array([[1,0,0]])\n", "B = np.array( [ [0],[0],[1]])\n", "\n", "# build obs and ctb matrices\n", "m = C\n", "n = B\n", "Om = C\n", "Cm = B\n", "for i in range(A.shape[0]-1):\n", " m = np.matmul(m,A)\n", " n = np.matmul(A,n)\n", " Om = np.append(Om,m, axis = 0)\n", " Cm = np.append(Cm,n, axis = 1)\n", " \n", "# calculate rank \n", "print(Om)\n", "print(f'observability matrix rank = {np.linalg.matrix_rank(Om)}')\n", "print(Cm)\n", "print(f'controllability matrix rank = {np.linalg.matrix_rank(Cm)}')" ] }, { "cell_type": "code", "execution_count": 13, "id": "4bd7580b-3823-4e8e-86e2-b509c6299944", "metadata": {}, "outputs": [], "source": [ "# pole placement / Luenberger observer\n", "from scipy.signal import place_poles\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 35, "id": "48be081c-db51-40c4-bf44-27d0a78b3962", "metadata": { "collapsed": true, "jupyter": { "outputs_hidden": true }, "tags": [] }, "outputs": [ { "data": { "text/plain": [ "\u001b[0;31mSignature:\u001b[0m \u001b[0mplace_poles\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mA\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mB\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpoles\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmethod\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'YT'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrtol\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m0.001\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmaxiter\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m30\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mDocstring:\u001b[0m\n", "Compute K such that eigenvalues (A - dot(B, K))=poles.\n", "\n", "K is the gain matrix such as the plant described by the linear system\n", "``AX+BU`` will have its closed-loop poles, i.e the eigenvalues ``A - B*K``,\n", "as close as possible to those asked for in poles.\n", "\n", "SISO, MISO and MIMO systems are supported.\n", "\n", "Parameters\n", "----------\n", "A, B : ndarray\n", " State-space representation of linear system ``AX + BU``.\n", "poles : array_like\n", " Desired real poles and/or complex conjugates poles.\n", " Complex poles are only supported with ``method=\"YT\"`` (default).\n", "method: {'YT', 'KNV0'}, optional\n", " Which method to choose to find the gain matrix K. One of:\n", "\n", " - 'YT': Yang Tits\n", " - 'KNV0': Kautsky, Nichols, Van Dooren update method 0\n", "\n", " See References and Notes for details on the algorithms.\n", "rtol: float, optional\n", " After each iteration the determinant of the eigenvectors of\n", " ``A - B*K`` is compared to its previous value, when the relative\n", " error between these two values becomes lower than `rtol` the algorithm\n", " stops. Default is 1e-3.\n", "maxiter: int, optional\n", " Maximum number of iterations to compute the gain matrix.\n", " Default is 30.\n", "\n", "Returns\n", "-------\n", "full_state_feedback : Bunch object\n", " full_state_feedback is composed of:\n", " gain_matrix : 1-D ndarray\n", " The closed loop matrix K such as the eigenvalues of ``A-BK``\n", " are as close as possible to the requested poles.\n", " computed_poles : 1-D ndarray\n", " The poles corresponding to ``A-BK`` sorted as first the real\n", " poles in increasing order, then the complex congugates in\n", " lexicographic order.\n", " requested_poles : 1-D ndarray\n", " The poles the algorithm was asked to place sorted as above,\n", " they may differ from what was achieved.\n", " X : 2-D ndarray\n", " The transfer matrix such as ``X * diag(poles) = (A - B*K)*X``\n", " (see Notes)\n", " rtol : float\n", " The relative tolerance achieved on ``det(X)`` (see Notes).\n", " `rtol` will be NaN if it is possible to solve the system\n", " ``diag(poles) = (A - B*K)``, or 0 when the optimization\n", " algorithms can't do anything i.e when ``B.shape[1] == 1``.\n", " nb_iter : int\n", " The number of iterations performed before converging.\n", " `nb_iter` will be NaN if it is possible to solve the system\n", " ``diag(poles) = (A - B*K)``, or 0 when the optimization\n", " algorithms can't do anything i.e when ``B.shape[1] == 1``.\n", "\n", "Notes\n", "-----\n", "The Tits and Yang (YT), [2]_ paper is an update of the original Kautsky et\n", "al. (KNV) paper [1]_. KNV relies on rank-1 updates to find the transfer\n", "matrix X such that ``X * diag(poles) = (A - B*K)*X``, whereas YT uses\n", "rank-2 updates. This yields on average more robust solutions (see [2]_\n", "pp 21-22), furthermore the YT algorithm supports complex poles whereas KNV\n", "does not in its original version. Only update method 0 proposed by KNV has\n", "been implemented here, hence the name ``'KNV0'``.\n", "\n", "KNV extended to complex poles is used in Matlab's ``place`` function, YT is\n", "distributed under a non-free licence by Slicot under the name ``robpole``.\n", "It is unclear and undocumented how KNV0 has been extended to complex poles\n", "(Tits and Yang claim on page 14 of their paper that their method can not be\n", "used to extend KNV to complex poles), therefore only YT supports them in\n", "this implementation.\n", "\n", "As the solution to the problem of pole placement is not unique for MIMO\n", "systems, both methods start with a tentative transfer matrix which is\n", "altered in various way to increase its determinant. Both methods have been\n", "proven to converge to a stable solution, however depending on the way the\n", "initial transfer matrix is chosen they will converge to different\n", "solutions and therefore there is absolutely no guarantee that using\n", "``'KNV0'`` will yield results similar to Matlab's or any other\n", "implementation of these algorithms.\n", "\n", "Using the default method ``'YT'`` should be fine in most cases; ``'KNV0'``\n", "is only provided because it is needed by ``'YT'`` in some specific cases.\n", "Furthermore ``'YT'`` gives on average more robust results than ``'KNV0'``\n", "when ``abs(det(X))`` is used as a robustness indicator.\n", "\n", "[2]_ is available as a technical report on the following URL:\n", "https://hdl.handle.net/1903/5598\n", "\n", "References\n", "----------\n", ".. [1] J. Kautsky, N.K. Nichols and P. van Dooren, \"Robust pole assignment\n", " in linear state feedback\", International Journal of Control, Vol. 41\n", " pp. 1129-1155, 1985.\n", ".. [2] A.L. Tits and Y. Yang, \"Globally convergent algorithms for robust\n", " pole assignment by state feedback\", IEEE Transactions on Automatic\n", " Control, Vol. 41, pp. 1432-1452, 1996.\n", "\n", "Examples\n", "--------\n", "A simple example demonstrating real pole placement using both KNV and YT\n", "algorithms. This is example number 1 from section 4 of the reference KNV\n", "publication ([1]_):\n", "\n", ">>> from scipy import signal\n", ">>> import matplotlib.pyplot as plt\n", "\n", ">>> A = np.array([[ 1.380, -0.2077, 6.715, -5.676 ],\n", "... [-0.5814, -4.290, 0, 0.6750 ],\n", "... [ 1.067, 4.273, -6.654, 5.893 ],\n", "... [ 0.0480, 4.273, 1.343, -2.104 ]])\n", ">>> B = np.array([[ 0, 5.679 ],\n", "... [ 1.136, 1.136 ],\n", "... [ 0, 0, ],\n", "... [-3.146, 0 ]])\n", ">>> P = np.array([-0.2, -0.5, -5.0566, -8.6659])\n", "\n", "Now compute K with KNV method 0, with the default YT method and with the YT\n", "method while forcing 100 iterations of the algorithm and print some results\n", "after each call.\n", "\n", ">>> fsf1 = signal.place_poles(A, B, P, method='KNV0')\n", ">>> fsf1.gain_matrix\n", "array([[ 0.20071427, -0.96665799, 0.24066128, -0.10279785],\n", " [ 0.50587268, 0.57779091, 0.51795763, -0.41991442]])\n", "\n", ">>> fsf2 = signal.place_poles(A, B, P) # uses YT method\n", ">>> fsf2.computed_poles\n", "array([-8.6659, -5.0566, -0.5 , -0.2 ])\n", "\n", ">>> fsf3 = signal.place_poles(A, B, P, rtol=-1, maxiter=100)\n", ">>> fsf3.X\n", "array([[ 0.52072442+0.j, -0.08409372+0.j, -0.56847937+0.j, 0.74823657+0.j],\n", " [-0.04977751+0.j, -0.80872954+0.j, 0.13566234+0.j, -0.29322906+0.j],\n", " [-0.82266932+0.j, -0.19168026+0.j, -0.56348322+0.j, -0.43815060+0.j],\n", " [ 0.22267347+0.j, 0.54967577+0.j, -0.58387806+0.j, -0.40271926+0.j]])\n", "\n", "The absolute value of the determinant of X is a good indicator to check the\n", "robustness of the results, both ``'KNV0'`` and ``'YT'`` aim at maximizing\n", "it. Below a comparison of the robustness of the results above:\n", "\n", ">>> abs(np.linalg.det(fsf1.X)) < abs(np.linalg.det(fsf2.X))\n", "True\n", ">>> abs(np.linalg.det(fsf2.X)) < abs(np.linalg.det(fsf3.X))\n", "True\n", "\n", "Now a simple example for complex poles:\n", "\n", ">>> A = np.array([[ 0, 7/3., 0, 0 ],\n", "... [ 0, 0, 0, 7/9. ],\n", "... [ 0, 0, 0, 0 ],\n", "... [ 0, 0, 0, 0 ]])\n", ">>> B = np.array([[ 0, 0 ],\n", "... [ 0, 0 ],\n", "... [ 1, 0 ],\n", "... [ 0, 1 ]])\n", ">>> P = np.array([-3, -1, -2-1j, -2+1j]) / 3.\n", ">>> fsf = signal.place_poles(A, B, P, method='YT')\n", "\n", "We can plot the desired and computed poles in the complex plane:\n", "\n", ">>> t = np.linspace(0, 2*np.pi, 401)\n", ">>> plt.plot(np.cos(t), np.sin(t), 'k--') # unit circle\n", ">>> plt.plot(fsf.requested_poles.real, fsf.requested_poles.imag,\n", "... 'wo', label='Desired')\n", ">>> plt.plot(fsf.computed_poles.real, fsf.computed_poles.imag, 'bx',\n", "... label='Placed')\n", ">>> plt.grid()\n", ">>> plt.axis('image')\n", ">>> plt.axis([-1.1, 1.1, -1.1, 1.1])\n", ">>> plt.legend(bbox_to_anchor=(1.05, 1), loc=2, numpoints=1)\n", "\u001b[0;31mFile:\u001b[0m ~/opt/miniconda3/envs/moonlight/lib/python3.9/site-packages/scipy/signal/ltisys.py\n", "\u001b[0;31mType:\u001b[0m function\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "?place_poles" ] }, { "cell_type": "code", "execution_count": 39, "id": "a87c93e4-322c-47f9-a75a-d66f6a552b7c", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# desired eigenvalues of closed loop controlled system and observer\n", "ctrl_poles = 1*np.array([-10,-5,-4])\n", "obsrv_poles = 1*np.array([-5,-20,-10])\n", "\n", "# gains for pole placement\n", "K_placement = place_poles(A, B, ctrl_poles)\n", "L_placement = place_poles(A.T, C.T, obsrv_poles)\n", "K = K_placement.gain_matrix\n", "L = L_placement.gain_matrix.T\n", "\n", "# initialize arrays and logs\n", "x = np.array([1,0,-2],dtype = np.float64).T\n", "x_hat = np.zeros(x.shape)\n", "err_x = np.zeros(x.shape)\n", "u = 0\n", "y = 0\n", "y_hat = 0\n", "\n", "x_hist = x[np.newaxis,:]\n", "x_hat_hist = x_hat[np.newaxis]\n", "u_hist = np.array([0])\n", "x_ref_hist = np.array([0])\n", "\n", "\n", "t = 0\n", "dt = 0.001\n", "\n", "for _ in range(int(10/dt)):\n", " \n", " t+= dt\n", " x_ref = np.sin(t)\n", " \n", " # control action\n", " #err_x = x_ref*np.array([1,0,0]) - x_hat\n", " err_x = x_ref*np.array([1,0,0]) - x\n", " u = np.matmul(K,err_x)\n", " u = np.clip(u,-100,100)\n", "\n", " # observer\n", " err = y - y_hat\n", " x_hat_dot = np.matmul(A,x_hat) + np.matmul(B,u) + L[:,0]*err\n", " x_hat += x_hat_dot*dt\n", " y_hat = np.matmul(C,x_hat)\n", " \n", " # plant\n", " x_dot = np.matmul(A,x) + np.matmul(B,u)\n", " x += x_dot*dt\n", " y = np.matmul(C,x)\n", "\n", " # log history \n", " x_hist = np.append(x_hist, x[np.newaxis,:], axis = 0)\n", " x_hat_hist = np.append(x_hat_hist, x_hat[np.newaxis,:], axis = 0)\n", " u_hist = np.append(u_hist, u)\n", " x_ref_hist = np.append(x_ref_hist, x_ref)\n", " \n", "\n", "plt.rcParams[\"figure.figsize\"] = (10,10) \n", "t = dt*np.arange(u_hist.shape[0])\n", "fig,ax = plt.subplots(5,1)\n", "ax[0].plot(t,x_hist[:,0],t,x_hat_hist[:,0])\n", "ax[0].legend(['actual','estimated'], loc = 5)\n", "ax[1].plot(t,x_hist[:,1],t,x_hat_hist[:,1])\n", "ax[1].legend(['actual','estimated'], loc = 5)\n", "ax[2].plot(t,x_hist[:,2],t,x_hat_hist[:,2])\n", "ax[2].legend(['actual','estimated'], loc = 5)\n", "\n", "ax[3].plot(t,x_ref_hist,t,x_hat_hist[:,0])\n", "ax[3].legend(['reference','actual'], loc = 5)\n", "ax[4].plot(t,u_hist)\n", "ax[4].legend(['control'], loc = 5)" ] }, { "cell_type": "code", "execution_count": null, "id": "88da0833-29c5-4f31-a619-461ce5412cb7", "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.9.4" } }, "nbformat": 4, "nbformat_minor": 5 }