本章节Dr.Zooba的PPT在原理阐释上比较模糊,以教会你套公式怎么做题为主,建议参考B站DR_CAN视频:【Advanced控制理论】2_状态空间_State Space_哔哩哔哩_bilibili。本篇笔记在原理阐释部分以DR_CAN的视频笔记为主。

状态空间表示法

原理阐释

对于任意一个系统,其输入和输出可用微分方程表示,例如下图这个由弹簧、阻尼器、小物块构成的系统。小物块质量为m,位移为x,受力情况是:($\dot x$表示$x$的一阶导数,$\ddot x$表示二阶,以此类推)

  • 受拉力f(t)
  • 受阻尼力$f_B=B \dot x$
  • 受弹簧拉力$f_k=kx$

QQ_1723510708610

根据$F_{合力}=ma,a=v’=x’’$(位移的导数是速度,速度的导数是加速度),因此可以列出方程:

在上式中,记位移$x$是系统的输出,拉力$f(t)$是系统的输入。按照以往信号与系统的处理方式,会将该微分方程输入与输出各放一边后拉普拉斯变换。

但在现在控制理论中,会将其转化为状态空间方程的形式。一个信号经过微分器微分前后就是两个不同的状态(在离散系统中就是延迟器)。例如上式,$x$和$\dot x$就是两个不同的状态。在连续系统中$\dot x$就是$x$经过微分器之后的状态,而$\ddot x$是$\dot x$经过微分器之后的状态。在状态空间方程中,经过微分器即意味进入下一状态,因此状态空间方程是一阶微分方程组构成的。

将x记为状态$z_1$,$\dot x$记为状态$z_2$,称$z_1,z_2$位状态变量。原方程有:

其中,标记的两状态变量存在方程组:

  • $\dot z_1 = \dot x = z_2$
  • $\dot z_2 = \ddot x=\frac{1}{m}f(t)-\frac{k}{m}z_1-\frac{B}{m}z_2$

回顾一下使用矩阵表达方程,对于如下方程组:

可以写成系数矩阵乘变量矩阵的形式,如下图。(如果没看懂怎么计算的需要复习一下矩阵乘法)

QQ_1723513339220

将方程组的结果代入,就有下式

QQ_1723513603870

用矩阵来表达状态空间$z_1$和$z_2$的两个方程组:

前面提到系统的输出是位移$x$,又因记$x=z_1$,因此系统输出$y=x=z_1$。还可以再列一个系统输出的方程:

这两个矩阵方程记录了系统不同状态间的关系和输出与状态间的关系,被称为状态空间表达式。其可以概括地写为

其中ABCD为矩阵,A被称作plant coefficient matrix,B被称作 control matrix,C被称作output observation matrix,D被称作direct coupling matrix。$\boldsymbol {\dot x} $表示状态变量矩阵求导,u为输入矩阵,y为输出矩阵。这些矩阵构建的系统框图如下:

QQ_1723519860506

在前面弹簧系统的例子中:

状态空间方程与传递函数的关系

如果将状态空间方程组的左右进行拉普拉斯变换:

可以发现这两个方程通过状态变量矩阵X(s)联系在一起。而对于状态变量矩阵有:

其中$I$为单位矩阵。

记$(s\boldsymbol I -\boldsymbol A)^{-1}=\Phi(s)$,上式即可写成:$X(s)=\Phi(s) BU(s)$。将其代入$Y(s)$的等式中:

系统传递函数

逆矩阵的求法:$A^{-1}=\frac{A^*}{|A|}$

其中$A^*$为A的伴随矩阵,$|A|$为A的行列式

状态空间表示的通式

通常来说,在选择状态变量时,都是微分方程中的0阶、1阶、2阶等倒数,这样就可以通过状态变量矩阵的导数矩阵(即$\boldsymbol {\dot x}$)将他们相互连接起来构成方程组。

由上面的推导又可知,状态空间方程与传递函数间存在关系。下面进行进一步推导,将这个关系明晰起来。回到前面弹簧的例子中:

如下微分方程(s域变换后)。