{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "[中文版](http://nbviewer.jupyter.org/github/w407022008/All-of-Notes/blob/master/System_Science_and_Control_Engineering/线性二次型最优控制问题%20LQ.ipynb)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Linear quadratic optimal control\n", "\n", "> Linear quadratic optimal control theory is the most mature, systematic and widely used branch of optimal control theory." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "State equations and output equations for linear time-variant systems:$$\\begin{cases} \\dot X(t)=A(t)X(t)+B(t)U(t) & ,X(t_0)=X_0\\\\ Y(t)=C(t)X(t)\\end{cases}$$\n", "Set the expected output to $z(t)$,the output error vector:$e(t)=z(t)-y(t)$ \n", "Introducing quadratic performance function:$J=\\frac{1}{2}e^T(t_f)Fe(t_f)+\\frac{1}{2}\\int_{t_0}^{t_f}[X^T(t)Q(t)X(t)+U^T(t)R(t)U(t)]dt$ \n", "Objective: Look for an optimal control input $U^*(t)$ to minimize the indicator function. \n", "Therefore, there are:\n", "- if $C(t)=I,z(t)=0$,then $Y(t)=X(t)=-e(t)$,and there is:$$J=\\frac{1}{2}X^T(t_f)FX(t_f)+\\frac{1}{2}\\int_{t_0}^{t_f}[X^T(t)Q(t)X(t)+U^T(t)R(t)U(t)]dt$$\n", "This is called the ** state adjustment problem**\n", "- if $z(t)=0$,then $Y(t)=-e(t)$,and there is$$J=\\frac{1}{2}Y^T(t_f)FY(t_f)+\\frac{1}{2}\\int_{t_0}^{t_f}[Y^T(t)Q(t)Y(t)+U^T(t)R(t)U(t)]dt$$\n", "This is called **output adjustment problem**\n", "- if $z(t)\\neq 0$,then $e(t)=z(t)-Y(t)$,and there is$$J=\\frac{1}{2}e^T(t_f)Fe(t_f)+\\frac{1}{2}\\int_{t_0}^{t_f}[X^T(t)Q(t)X(t)+U^T(t)R(t)U(t)]dt$$ This is called **output tracking problem**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## - Finite time linear quadratic state regulator problem\n", "\n", "Linear time-invariant system equation of state:$\\dot X(t)=A(t)X(t)+B(t)U(t)$,initial conditions:$X(t_0)=X_0,t\\in[t_0,t_f]$ \n", "Quadratic performance index function:$$J=\\frac{1}{2}X^T(t_f)FX(t_f)+\\frac{1}{2}\\int_{t_0}^{t_f}[X^T(t)Q(t)X(t)+U^T(t)R(t)U(t)]dt$$\n", "Necessary and Sufficient Conditions for Optimal Control Input $U^*(t)$:$$U^*(t)=-R^{-1}(t)B^T(t)P(t)X^*(t)=-K(t)X^*(t)$$\n", "The optimal trajectory is:$$\\dot X^*(t)=A(t)X^*(t)+B(t)U^*(t)=[A(t)-B(t)K(t)]X^*(t)$$\n", "The state transition equation is:$$X^*(t)=X_0e^{\\int_0^t(A(x)+B(x)K(x))dx}$$\n", "The optimal performance function is:$$J^*=\\frac{1}{2}X_0^TP(t_0)X_0$$\n", "where, P(t) satisfies:$$\\begin{cases}-\\dot P(t)+P(t)A(t)+A^T(t)P(t)-P(t)B(t)K(t)=-Q(t)\\\\ P(t_f)=F\\end{cases}$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## - Infinite time linear quadratic state regulator problem\n", "\n", "Linear time-invariant system equation of state:$\\dot X(t)=AX(t)+BU(t)$,initial conditions:$X(t_0)=X_0,t\\in[t_0,\\inf]$ \n", "Quadratic performance function:$$J=\\frac{1}{2}\\int_{t_0}^{\\inf}[X^T(t)Q(t)X(t)+U^T(t)R(t)U(t)]dt$$\n", "Necessary and Sufficient Conditions for Optimal Control Input $U^*(t)$:$$U^*(t)=-R^{-1}B^TPX^*(t)=-KX^*(t)$$\n", "The optimal trajectory is:$$\\dot X^*(t)=AX^*(t)+BU^*(t)=[A-BK]X^*(t)$$\n", "The state transition equation is:$$X^*(t)=X_0e^{(A+BK)t}$$\n", "The optimal performance function is:$$J^*=\\frac{1}{2}X_0^TPX_0$$\n", "where, P(t) satisfies:$$PA+A^TP-PBK=-Q$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Matlab code** \n", "- continious-time algebraic Riccati equations:\n", " ``` matlab\n", " [P,L,K]=care(A,B,Q,R);\n", " ```\n", " R(defaut I);K=$R^{-1}B^TP$;L(pole points)\n", "\n", "- linear-quadratic regulator\n", "``` matlab\n", "[K,P,L]=lqr(A,B,Q,R)\n", "```" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "EigenValue =\n", "\n", " 1\n", " 1\n", "\n", "\n", "EigenValueMod =\n", "\n", " -3.1421\n", " -1.4584\n", "\n", "\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "A=[1 0;1 1];B=[1;0];\n", "EigenValue=eig(A)\n", "Q=[10 0;0 10];\n", "K=lqr(A,B,Q,1);\n", "sys=ss(A-B*K,B,[1 0],[]);\n", "EigenValueMod=eig(sys.a)\n", "step(sys)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## - Optimal tracking problem\n", "\n", "- Linear time-invariant system state space model:$\\begin{cases}\\dot X(t)=AX(t)+BU(t)&,X(t_0)=X_0,t\\geq t_0\\\\Y=CX\\end{cases}$ \n", "Tracked reference variable $\\widetilde{y}$ is the output of the linear time-invariant system:$\\begin{cases} \\dot Z=FZ & ,Z(t_0)=Z_0\\\\ \\widetilde{y}=HZ\\end{cases}$ \n", "satisfy:$\\sum(A,B)$ fully controllable,$\\sum(A,C)$ fully observable,$\\sum(F,H)$ fully observable。 \n", "Quadratic performance function:$J(u)=\\int_0^{\\inf} [(Y-\\widetilde{y})^TQ(Y-\\widetilde y)+U^TRU]dt$ \n", "\n", "- This combination system can be equivalent:$$\\begin{cases}\\dot{\\bar{X}}(t)=\\bar{A} \\bar{X}(t)+\\bar{B}\\bar{U}(t)& \\bar{X}(t_0)=\\bar{X_0},t\\geq t_0 \\\\ J(u)=\\int_0^{\\inf}(\\bar{X}^T\\bar{Q}\\bar{X}+U^T\\bar{R}U)dt\\end{cases}$$\n", "where $\\bar{X}=\\begin{bmatrix}X\\\\Z\\end{bmatrix},\\bar{A}=\\begin{bmatrix}A&O\\\\O&F\\end{bmatrix},\\bar{B}=\\begin{bmatrix}B\\\\O\\end{bmatrix},\\bar{Q}=\\begin{bmatrix}C^TQC&-C^TQH\\\\-H^TQC&H^TQH\\end{bmatrix},\\bar{R}=R$ \n", "\n", "- The only positive definite solution of Riccati algebraic equation $\\bar{P}=\\begin{bmatrix}P_{11}&P_{12}\\\\P^T_{12}&P_{22}\\end{bmatrix}$ satisfy:$\\bar{P}\\bar{A}+\\bar{A}^T\\bar{P}+\\bar{Q}-\\bar{P}\\bar{B}\\bar{R}^{-1}\\bar{B}^T\\bar{P}=0$ \n", "Therefore, there is an optimal tracking control system input $U^*$:$$U^*(t)=-K^*_1X-K^*_2Z$$ where $\\begin{cases}K^*_1=R^{-1}B^TP\\\\K^*_2=R^{-1}B^TP_{12}\\end{cases}$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## - Robustness of optimal regulation system\n", "> The robustness indicators for measuring a system are: **phase angle margin**, **gain margin**,**non-linear feedback tolerance** \n", "\n", "! To be continued" ] } ], "metadata": { "kernelspec": { "display_name": "Matlab", "language": "matlab", "name": "matlab" }, "language_info": { "codemirror_mode": "octave", "file_extension": ".m", "help_links": [ { "text": "MetaKernel Magics", "url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md" } ], "mimetype": "text/x-octave", "name": "matlab", "version": "0.15.2" } }, "nbformat": 4, "nbformat_minor": 2 }