状态空间描述方法
状态空间是线性代数的一个很典型的抽象空间。到这里就只剩下抽象理解了,可以回顾一下前面线性代数的内容。
当我们开始用抽象空间思考控制的问题时,就可以使用相当强大的矩阵工具,应用各种矩阵分析的方法来解决问题,这些方法就是应用数学中的数学,也容易被做成试题的样子加以考查。
- *1)正确理解状态空间有关概念;
- *2)熟练掌握建立元件、系统状态空间表达式的方法;
- 4)熟练掌握由状态空间表达式求系统传递矩阵的方法;
如何理解状态空间
其实在非线性里面已经接触过了,只不过没有明目张胆的说出来。相平面法这个相平面就是二维状态空间,相轨迹就是状态轨迹。相平面法是状态空间在二维的特殊情况。
状态空间还是在讲微分方程的事情,只不过相比相平面描述的微分方程阶数更高了。
n阶微分方程的输出由输入和n个初始条件决定,n阶系统所含的独立无关状态变量个数为n,这时候高维空间就出来了,n个无关量组合成一个n维向量,对应的有n维空间,这时候就可以研究状态向量在状态空间里的事情了。就像相轨迹在相平面中一样。
人对系统的状态空间描述却是多样的,多样描述的背后是物理上的客观系统。数学上也想在不同描述中找出共同的东西即特征值、特征向量,标准型。因此也有一些手段把不同的状态空间表示方式进行转化,数学上就是各种矩阵的来回变换。因此对一个矩阵进行各种变换后,其性质是不变的,我觉得这个事情根本不需要证明,因为变来变去这些数学上的表达都在描述一个客观系统,这个客观系统不会因为我的表达方式变化而出现性质的变化。虽然这个解释很哲学,但是数学语言本质上就是这么个事情。
实际上这个客观空间和主观表达的事情充斥在线性代数里。
比如两个矩阵相似,讲的是用不同坐标系描述同一个变换,其中用对角矩阵描述的变换最让人喜欢。因为是同一个变换,所以变换后空间的维数(秩)不变,变换后单位高维单位几何体的体积相同(行列式相等)。
此外在多元积分学里,也有这种思想。典型的,积分的轮换对称性,体积不会因为我坐标系字母的变换而改变。
连续形式的状态空间表达式:
\[\begin{array}{l} \left\{ \begin{align} \boldsymbol{\dot{x}=Ax+Bu} \\ \boldsymbol{y=Cx+Du} \end{align} \right. \end{array} \tag{1}\]离散形式的状态空间表达式:
\[\begin{array}{l} \left\{ \begin{align} \boldsymbol{x}(k+1) = \boldsymbol{G}(k)\boldsymbol{x}(k) + \boldsymbol{H}(k)\boldsymbol{u}(k) \\ \boldsymbol{y}(k) = \boldsymbol{C}(k)\boldsymbol{x}(k) + \boldsymbol{D}(k)\boldsymbol{u}(k) \end{align} \right. \end{array} \tag{2}\]其中 \(\boldsymbol{x} \in \mathbb{R}^n\) , \(\mathbb{R}^n\) 为状态空间。在没有输入的情况下,从向量的角度来理解,向量的变化率等于对向量自己做一个变换。这个思路也挺新奇的,这个思路可以和指数矩阵联系起来,复数里复数指数可以代表旋转,那合理推测,是不是指数矩阵也可以代表旋转呢?只不过是对向量的旋转,而且这个想法想当合理,也和复数指数思路相同。
- A, the state matrix
- B, the input matrix
- C, the output matrix
- D, the direct transmission matrix
如何获得状态空间表达式
状态空间理论也是用另一种思路研究微分方程,自然可以通过微分方程或者传递函数导出状态空间表达式(间接法)。更直接一点,也可以直接选状态变量,这就是机理分析法(直接法)。
这一部分怎么说呢,数学工具,用多了就熟悉了。直接当作运算技巧学习也没啥问题。这里深入理解肯定也是有的,但是都是后面的东西,这里不妨就把他当做数学运算技巧。
从微分方程建立状态空间表达式其实和从传递函数建立状态空间表达式是一样的,微分方程不就是传递函数嘛,一个东西。前面经典控制理论,微分方程=传递函数,这里又多了一个等于。
从这两种建立状态空间表达式的方法不好接受的地方在于状态变量的选取。我第一次学的时候也很难接受,为啥状态变量要这么选呢?为啥这么选就能化成某个形式呢?
其实选状态变量这个事情是个反着理解容易接受。比如说我要这个对角系统矩阵,把系统矩阵反变换回去就是状态变量。从标准矩阵搞回去状态方程是很顺畅的,不会有人质疑为啥这么选状态变量,因为状态变量是变出来的不是选出来的。
学的时候嘛,为了整体逻辑的顺畅,就要牺牲细节上逻辑顺序的瑕疵。
这里不单独写如何建立了,放到后面标准型里,正反对照着来,这里列一个框架
建立状态空间表达式的方法:
- 机理建模:写微分方程,选状态变量
- 微分方程建立状态空间表达式
- 输入无导数项
- 输入有导数项
- 传递函数建立状态空间表达式
- 串联分解:可控标准型
- 只有单实极点:对角型
- 含有重实极点:约当阵
建立方法的核心问题就在于如何选择状态变量的问题。选择的目的就是直接写成合适的形式。
那么直接在后面学了标准型反变换回去,对比一下自然就知道怎么选了。
这里先来看看传递函数怎么找出状态空间表达式。传递函数这个词意味着系统单入单出。可控可观
第一个事情就是先看能不能搞成可控标准型。
串联分解,状态变量是中间的一个东西。通过这个中间量联系起了入和出。
然后还有个优秀的性质的矩阵,对角阵,其优秀性质使得当坐标系特别合适。
我们从对角阵反变换回去看,是一个阶跃加了位移的形式。那么状态变量就按照这个样子选。自然系统矩阵就是对角形式。
对角化是有条件的,线性代数的知识,所有特征值不同那是没啥问题的。n个特征向量张成n维空间,状态空间没有损失纬度。坏就坏在有相同特征值,如果特征向量能张成的纬度不够,就没法对角化了。
对于这种无法对角化的,可以变换成另一种形式的矩阵,约当阵。
机理建模和最最开始的建模是一样的。经典RLC电路建模,弹簧阻尼质量快建模。这些东西很熟悉了,毕竟经典分析的时候已经建立过一次微分方程了,其实有了微分方程直接从微分方程写状态空间岂不是更方便。
传递函数矩阵
前面有传递函数导出状态空间表达式,这里是反问题,既由状态空间方程导出传递函数。
由于状态空间可以描述多输入多输出系统,因此由这状态空间方程导出形式也不是传统的传递函数,而是传递函数矩阵。
\[\begin{array}{l} \left\{ \begin{align} \boldsymbol{\dot{x}=Ax+Bu} \\ \boldsymbol{y=Cx+Du} \end{align} \right. \end{array}\]简单的数学推导:
\[\boldsymbol{G}(s) = \boldsymbol{C}(s\boldsymbol{I-A})^{-1}\boldsymbol{B + D}\]这个式子的原型是
\[\left [ \begin{array}{c} Y_1(s) \\ Y_2(s) \\ \vdots \\ Y_q(s) \\ \end{array} \right ] = \left [ \begin{array} {} G_{11}(s) & G_{12}(s) &\dots &G_{1p}(s) \\ G_{21}(s) & G_{22}(s) &\dots &G_{2p}(s) \\ \vdots & \vdots & &\vdots \\ G_{q1}(s) & G_{q2}(s) &\dots &G_{qp}(s) \\ \end{array} \right ] \left [ \begin{array} {} U_{1}(s) \\ U_{2}(s) \\ \vdots \\ U_{p}(s) \\ \end{array} \right ]\]可以看出这是一系列的传递函数,\(G_{ij}(s)\)代表第i个输出与第j个输出之间的关系。