跳转到内容

控制系统/特征值和特征向量

来自维基教科书,开放世界中的开放书籍

特征值和特征向量

[编辑 | 编辑源代码]
无法从时变矩阵计算特征值和特征向量。如果系统是时变的,本章中描述的方法将不会产生有效的结果。

系统矩阵的特征值和特征向量在确定系统的响应中起着关键作用。重要的是要注意,只有方阵才有与其相关的特征值和特征向量。非方阵不能使用以下方法进行分析。

"eigen" 一词来自德语,意思是“自己的”,如“特征”,因此本章也可以称为“特征值和特征向量”。术语“特征值”和“特征向量”是最常用的。特征值和特征向量具有一些特性,使其成为分析中的宝贵工具,它们也与派生它们的矩阵具有许多宝贵的关系。计算系统矩阵的特征值和特征向量是开始分析系统矩阵时最应该做的事情之一,仅次于计算系统矩阵的矩阵指数。

系统的特征值和特征向量决定了各个系统状态变量(x 向量中的成员)之间的关系,系统对输入的响应以及系统的稳定性。此外,特征值和特征向量可用于通过谱分解计算系统矩阵的矩阵指数。本章的其余部分将讨论特征值、特征向量以及它们如何影响各自的系统。

特征方程

[编辑 | 编辑源代码]

系统矩阵 A 的特征方程表示为

[矩阵特征方程]

其中 λ 是称为特征值的标量值,v 是相应的特征向量。为了求解矩阵的特征值,我们可以取以下行列式

为了求解特征向量,我们可以添加一个额外的项,并求解v

另一个值得寻找的值是系统的左特征向量,在修改后的特征方程中定义为w

[左特征向量方程]

有关特征值、特征向量和左特征向量的更多信息,请阅读以下书籍中的相应部分

对角化

[编辑 | 编辑源代码]
注意
转移矩阵T 不应与离散系统的采样时间混淆。如果需要,我们将使用下标来区分两者。

如果矩阵A 具有完整的一组不同特征值,则该矩阵可以对角化。对角矩阵是一个仅在对角线上有元素的矩阵,矩阵中所有其他元素都为零。我们可以定义一个变换矩阵T,它满足对角化变换

这反过来将满足关系

方程的右侧可能看起来更复杂,但因为D 这里是对角矩阵(不要与输出方程中的前馈矩阵混淆),所以计算要容易得多。

我们可以用特征向量和左特征向量来定义转移矩阵和逆转移矩阵

我们将在本章稍后进一步讨论对角化的概念。

指数矩阵分解

[edit | edit source]
有关谱分解的更多信息,请参见
谱分解

指数矩阵可以分解为特征向量、特征值和左特征向量的总和,如下所示

请注意,此方程仅在矩阵 A 具有完整的一组 n 个不同特征值时以这种形式成立。由于 w'i 是一个行向量,而 x(0) 是初始系统状态的列向量,因此我们可以将这两个向量组合成一个标量系数 α

由于状态转移矩阵决定了系统对输入的响应方式,我们可以看到系统特征值和特征向量是系统响应的关键部分。让我们将这种分解代入状态方程的通用解


[状态方程谱分解]

我们将在接下来的部分讨论这个方程。

状态关系

[edit | edit source]

从上面的方程我们可以看到,状态向量 x(t) 的各个元素不能取任意值,而是通过系统右特征向量的加权和来关联。

解耦

[edit | edit source]
对于熟悉线性代数的人来说,矩阵 A 的左特征向量必须在矩阵 B 的 零空间 中才能解耦系统。

如果一个系统的设计满足以下关系

那么来自该特定特征值的系统响应将不受系统输入 u 的影响,我们说该系统已经 解耦。在实践中很难做到这一点。

条件数

[edit | edit source]

每个矩阵都有一个与之相关的特定数字,称为该矩阵的 条件数。条件数说明了关于矩阵的一些情况,它值得计算。条件数 k 的定义如下


[条件数]

条件数较小的系统更好,原因有以下几点

  1. 较大的条件数会导致系统出现较大的瞬态响应
  2. 较大的条件数会使系统特征值对系统变化更敏感。

我们将在后面的部分更多地讨论 特征值敏感性 的问题。

稳定性

[edit | edit source]

我们将在后面的章节中详细讨论稳定性,但现在是指出关于系统特征值的简单事实的好时机。注意,如果系统矩阵 A 的特征值是 *正* 的,或者(如果它们是复数)它们具有正实部,则系统状态(以及因此由 C 矩阵缩放的系统输出)将随着时间 *t* 趋于无穷大而趋于无穷大。本质上,如果特征值是正的,则系统将不满足 BIBO 稳定性的条件,因此将变得 *不稳定*。

另一个值得一提的因素是,制造的系统 *永远不会完全匹配系统模型*,并且在所用组件的规格中始终存在误差,*在一定的公差范围内*。因此,系统矩阵将略微不同于系统的数学模型(虽然好的系统不会有太大差异),因此系统的特征值和特征向量将与从模型中推导出的值不同。这些事实导致了一些结果。

  1. 具有高 *条件数* 的系统可能具有与从数学模型中推导出的特征值相差很大的特征值。这意味着物理系统的系统响应可能与模型的预期响应大不相同。
  2. 具有高条件数的系统可能仅仅由于制造过程中使用的组件的误差而变得 *不稳定*。

出于这些原因,系统特征值和系统矩阵的条件数是分析和设计系统时需要考虑的非常重要的变量。我们将在后面的章节中更详细地讨论稳定性主题。

非唯一特征值

[编辑 | 编辑源代码]

上面的分解只有在矩阵 *A* 具有完整的 n 个不同特征值(以及相应的特征向量)的情况下才有效。如果 *A* 没有 *n* 个不同的特征向量,则需要确定一组 **广义特征向量**。广义特征向量将产生一个类似矩阵,该矩阵处于 **Jordan 标准型** 中,而不是我们之前使用的对角形式。

广义特征向量

[编辑 | 编辑源代码]

广义特征向量可以使用以下公式生成


[广义特征向量生成方程]

如果 *d* 是给定特征值重复的次数,*p* 是从这些特征值推导出的唯一特征向量的数量,那么将有 *q = d - p* 个广义特征向量。广义特征向量是通过将正则特征向量代入上面的公式(*vn*)生成的。一些正则特征向量可能不会产生任何非平凡的广义特征向量。广义特征向量也可以代入上面的公式以生成额外的广义特征向量。重要的是要注意广义特征向量形成一个有序序列,并且在分析过程中必须保持顺序,否则结果将不正确。

示例:一个重复集

[编辑 | 编辑源代码]

我们有一个 5 × 5 矩阵 A,其特征值为 。对于 ,存在 1 个不同的特征向量 *a*。对于 ,存在 1 个不同的特征向量 *b*。从 *a* 中,我们生成广义特征向量 *c*,并且从 *c* 中我们可以生成向量 *d*。从特征向量 *b* 中,我们生成广义特征向量 *e*。按顺序排列,我们的特征向量列为

[a c d b e]

注意 *c* 和 *d* 如何按顺序排列在它们生成的特征向量 *a* 之后。此外,我们可以将其重新排列为

[b e a c d]

因为广义特征向量按顺序排列在它们生成的正则特征向量之后。正则特征向量可以按任何顺序排列。

示例:两个重复集

[编辑 | 编辑源代码]

我们有一个 4 × 4 矩阵 A,其特征值为 。对于 ,我们有两个特征向量,*a* 和 *b*。对于 ,我们有一个特征向量 *c*。

我们需要生成第四个特征向量 *d*。唯一需要另一个特征向量的特征值是 ,但是已经有两个特征向量与该特征值相关联,并且只有一个会生成非平凡的广义特征向量。要确定哪一个有效,我们需要将这两个向量代入生成公式

如果 *a* 生成正确的向量 *d*,我们将按如下顺序排列特征向量

[a d b c]

但是如果 *b* 生成正确的向量,我们可以按如下顺序排列

[a b d c]

Jordan 标准型

[编辑 | 编辑源代码]
有关 **Jordan 标准型** 的更多信息,请参见
矩阵形式

如果一个矩阵有一组完整的不同特征向量,则过渡矩阵T可以定义为这些特征向量的矩阵,并且结果变换矩阵将是一个对角矩阵。但是,如果特征向量不唯一,并且与矩阵相关联的许多广义特征向量,则过渡矩阵T将由正则特征向量和广义特征向量的有序集合组成。没有产生任何广义特征向量的正则特征向量(如果有)应该排在第一位,然后是产生广义特征向量的特征向量,以及它们产生的广义特征向量(按适当的顺序)。

一旦T矩阵生成,矩阵就可以通过它及其逆矩阵进行变换

J矩阵将是一个Jordan 块矩阵。Jordan 块矩阵的格式如下

其中D是由与广义特征向量无关的正则特征向量(如果有)产生的对角块。Jn块是标准的 Jordan 块,其大小对应于每个序列中的特征向量/广义特征向量的数量。在每个Jn块中,与该序列的正则特征向量相关的特征值位于主对角线上,并且在次对角线上有 1。

系统响应

[edit | edit source]

等价变换

[edit | edit source]

如果我们有一个非奇异的n × n矩阵P,我们可以定义一个变换向量“x bar”为

我们可以将整个状态空间方程组变换如下

其中

我们将矩阵P称为这两组方程之间的等价变换

需要注意的是,矩阵A特征值(对系统至关重要)在等价变换下不会改变。A的特征向量,以及的特征向量由矩阵P关联。

Lyapunov 变换

[edit | edit source]

如果满足以下条件,则变换矩阵P称为Lyapunov 变换

  • P(t)是非奇异的。
  • P(t)P'(t) 是连续的
  • P(t) 和逆变换矩阵 P-1(t) 对所有t都是有限的。

如果一个系统是时变的,那么使用 Lyapunov 变换将系统转换为具有恒定A矩阵的等效系统通常很有用。这在一般情况下并不总是可能的,但是如果A(t)矩阵是周期性的,则这是可能的。

系统对角化

[edit | edit source]

如果矩阵 *A* 是时不变的,我们可以用矩阵 *A* 的特征向量构建矩阵 *V*。矩阵 *V* 可以用来将矩阵 *A* 转化为对角矩阵。我们的新系统变为

由于我们的系统矩阵现在是对角矩阵(或约当标准型),状态转移矩阵的计算得到了简化

其中 Λ 是一个对角矩阵。

MATLAB 转换

[edit | edit source]

MATLAB 函数 ss2ss 可用于对系统应用等效变换。如果我们有一组矩阵 *A*、*B*、*C* 和 *D*,我们可以创建等效矩阵,如下所示

[Ap, Bp, Cp, Dp] = ss2ss(A, B, C, D, p);

其中 *p* 是等效变换矩阵。

华夏公益教科书