{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "[中文版](http://nbviewer.jupyter.org/github/w407022008/All-of-Notes/blob/master/System_Science_and_Control_Engineering/线性系统状态方程的解%20Solution%20of%20linear%20state%20space%20equation.ipynb)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Solution of linear system equation\n", "- Solution of State Equation of Linear Time-Invariant Continuous System\n", "- Solution of State Equation of Linear Time-Variant Continuous System\n", "- Discretization of state space model for linear continuous systems\n", "- Solution of State Equation of Linear Discrete System\n", " - Linear Time-Invariant System\n", " - Linear Time-Variant System" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Solution of State Equation of Linear Time-Invariant Continuous System\n", "\n", "Defining the state of a movement from the state of $t_0$ to the time of $t$ is a transfer process. Then the mathematical form describing such a process is written as: $$X(t)=\\phi(t-t_0)X(t_0)$$ $\\phi$ is called the state transition matrix." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- For a state differential equation:$\\dot X=AX+BU$,there is a Laplace transform:$X(s)=(sI-A)^{-1}X_0+(sI-A)^{-1}BU(s)$,Then there is a ** state response** (Laplace inverse transform):$$X(t)=L^{-1}((sI-A)^{-1}X_0)+L^{-1}((sI-A)^{-1}BU(s))$$\n", "$$=e^{A(t-t_0)}X_0+\\lmoustache _{t_0}^t e^{A(t-\\tau)}BU(\\tau)d\\tau$$\n", "$$=\\phi(t-t_0)X(t_0)+\\lmoustache_{t_0}^t\\phi(t-\\tau)BU(\\tau)d\\tau$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- For a state space model:$\\begin{cases} \\dot X=AX+BU \\\\ Y=CX+DU \\end{cases}$,there is a ** output response**:\n", "$$Y(t)=C\\phi(t-t_0)X(t_0)+\\lmoustache_{t_0}^tC\\phi(t-\\tau)BU(\\tau)d\\tau+DU(t)$$\n", "the product term$C\\phi(t-t_0)X(t_0)$ is called as **zero input response**,the convolution term$\\lmoustache_{t_0}^tC\\phi(t-\\tau)BU(\\tau)d\\tau$ is called as **zero state response**,the remaining item $DU(t)$ is called as **Input and Output Feed Forward**。\n", "> $\\phi(t-t_0)=e^{A(t-t_0)}X_0=I+A(t-t_0)+\\frac{A^2}{2!}(t-t_0)^2+\\cdots$\n", "if,$U(\\tau)=\\delta(\\tau)$(unit pulse function),and $X(t_0)=0$,then $Y(t)=h(t)$(unit impulse response),$h(t)=L^{-1}(C(sI-A)^{-1}B+D)$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## - Calculation of matrix exponential function in Matlab\n", "\n", "- Numeral Calculations:$e^{At}=expm(A*t)$\n", "``` matlab\n", "expm(A*t)\n", "```\n", "- Symbolic calculation:\n", "``` matlab\n", "syms x t\n", "f1='sin(x)^2+cos(x)^3-3';\n", "A=sym('[f1 0; 0 0]');\n", "expm(A*t)\n", "```" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "f1 =\n", "\n", " 'sin(x)^2+cos(x)^3-3'\n", "\n", " \n", "A =\n", " \n", "[ A1_1, A1_2]\n", "[ A2_1, A2_2]\n", " \n", " \n", "ans =\n", " \n", "A1_1*A2_2*t^2 - A1_2*A2_1*t^2\n", " \n", "\n" ] } ], "source": [ "syms x t\n", "f1='sin(x)^2+cos(x)^3-3'\n", "A = sym('A',[2 2])\n", "det(A*t)\n", "expm(A*t);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Solution of State Equation of Linear Time-Variant Continuous System\n", "\n", "For a state differential equation:$\\dot X(t)=A(t)X(t)+B(t)U(t)$,it exists **status response**:$$X(t)=\\Phi(t,t_0)X(t_0)+\\lmoustache_{t_0}^t\\Phi(t,\\tau)BU(\\tau)d\\tau$$\n", "the product term $\\Phi(t,t_0)X(t_0)$ is called as **zero input response**,the convolution term $\\lmoustache_{t_0}^t\\Phi(t,\\tau)BU(\\tau)d\\tau$ is called as **zero state response** \n", "Obviously, the **output response**:$$Y(t)=C(t)X(t)+D(t)U(t)=C(t)\\Phi(t,t_0)X(t_0)+C(t)\\lmoustache_{t_0}^t\\Phi(t,\\tau)BU(\\tau)d\\tau+D(t)U(t)$$\n", "> $\\Phi(t,t_0)=e^{\\lmoustache_{t_0}^tA(\\tau)d\\tau}$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Therefore, the linear continuous system state transition equation can be uniformly represented as:$$X(t)=\\Phi X(t_0)+\\lmoustache_{t_0}^t\\Phi BU(\\tau)d\\tau$$\n", "where,\n", "- Time-invariant system has:$\\Phi=\\phi(t-t_0)=e^{A(t-t_0)}$\n", "- Time-variant system has:$\\Phi=\\Phi(t,t_0)=e^{\\lmoustache_{t_0}^tA(\\tau)d\\tau}$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Discretization of state space model for linear continuous systems\n", "\n", "- Time-invariant system has a state equation:$\\dot X=AX+BU$,State transition equation:$X(t)=\\phi(t-t_0)X(t_0)+\\lmoustache_{t_0}^t\\phi(t-\\tau)BU(\\tau)d\\tau$\n", " Can be seen as:$$X((k+1)T)=\\phi(T)X(kT)+\\lmoustache_{kT}^{(k+1)T}\\phi((k+1)T-\\tau)BU(\\tau)d\\tau=\\phi(T)X(kT)+\\lmoustache_{0}^{T}\\phi(\\tau)d\\tau BU(kT)$$ \n", " Then there is,$\\begin{cases} G(T)=\\phi(T)=e^{AT} \\\\ H(T)=\\lmoustache_0^T\\phi(t)dtB=\\lmoustache_0^Te^{At}dtB \\end{cases}$ preserve first-order precision ('zoh'), there is:$\\begin{cases} G(T)=I+ AT \\\\ H(T)=BT \\end{cases}$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Time-variant system has a state equation:$\\dot X(t)=A(t)X(t)+B(t)U(t)$,State transition equation:$X(t)=\\Phi(t,t_0)X(t_0)+\\lmoustache_{t_0}^t\\Phi(t,\\tau)BU(\\tau)d\\tau$ Can be seen as:$$X((k+1)T)=\\phi((k+1)T,kT)X(kT)+\\lmoustache_{kT}^{(k+1)T}\\phi((k+1)T,\\tau)B(\\tau)U(\\tau)d\\tau=\\phi((k+1)T,kT)X(kT)+\\lmoustache_{kT}^{(k+1)T}\\phi((k+1)T,\\tau)Bd\\tau U(kT)$$\n", "Then there is,$\\begin{cases} G(kT)=\\phi((k+1)T,kT) \\\\ H(T)=\\lmoustache_{kT}^{(k+1)T}\\Phi((k+1)T,\\tau)B(\\tau)d\\tau \\end{cases}$ preserve first-order precision ('zoh'), there is:$\\begin{cases} G(T)=e^{\\lmoustache_{kT}^{(k+1)T}A(t)dt} \\\\ H(T)=\\lmoustache_{kT}^{(k+1)T}e^{\\lmoustache_{kT}^{(k+1)T}A(t)dt}B(\\tau)d\\tau \\end{cases}$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Continuous system discretization and discrete system continuity in Matlab\n", "\n", "``` matlab\n", "sys_dis=c2d(sys,Ts,'method') %①'zoh' :Zero-order hold (default),②'foh' :modified first-order hold\n", "sys_con=d2c(sys_dis,'method')\n", "```" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "G =\n", "\n", " 87.8953 149.7836\n", " 224.6754 387.4625\n", "\n", "\n", "A =\n", "\n", " 1.0000 2.0000\n", " 3.0000 5.0000\n", "\n", "\n" ] } ], "source": [ "A=[1 2;3 5];B=[2;2];C=[1 0];\n", "sys=ss(A,B,C,[]);\n", "sys_dis=c2d(sys,1,'zoh');\n", "sys_con=d2c(sys_dis);\n", "G=sys_dis.a\n", "A=sys_con.a" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Solution of State Equation of Linear Discrete System\n", "\n", "- Zero input response:[y,x,t]=initial(sys,$x_0$,t)\n", "- Step function response:[y,x,t]=step(sys,t)\n", "- Pulse function response:[y,x,t]=impulse(sys,t)\n", "- System response with input:[y,x,t]=lsim(sys,u,t,$x_0$) \n", " Where u is the specified input vector. it can also generate input:[u,t]=gensig(type,cycle time,total time,sampling time),type='sin';'square';'puls'" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n" ] }, { "data": { "image/png": "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\nkPIFA50AAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "impulse(sys)" ] } ], "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 }