4.5 状态重构问题与Luenberger状态观测器 前已指出,对于状态完全能控的线性定常系统,可以通过线性状态反馈任意配置闭环系统的极点。事实上,不仅是极点配置,而且系统镇定、解耦控制、线性二次型最优控制 (LQ)问题等,也都可由状态反馈实现。然而,在4.2 节介绍极点配置方法时,曾假设所有的状态变量均可有效地用于反馈。但在实际情况中,并非所有的状态度变量都可用于反馈。这时需要估计不可量测的状态变量。需特别强调,应避免将一个状态变量微分产生另一个状态变量,因为噪声通常比控制信号变化更迅速,所以信号的微分总是减小了信噪比。有时一个纯微分环节可使信噪比减小数倍。迄今已有多种无需使用微分来估计不能量测状态的方法。对不能量测状态变量的估计通常称为观测。估计或者观测状态变量的动态系统称为状态观测器,或简称观测器。如果状态观测器能观测到系统的所有状态变量,不管其是否能直接量测,这种状态观测器均称为全维状态观测器。有时,我们只需观测不可量测的状态变量,而不是可直接量测的状态变量。例如,由于输出变量是能量测的,并且它们与状态变量线性相关,因而无需观测所有的状态变量,而只需观测n-m个状态变量,这里n为状态向量的维数,m为输出向量的维数。 估计小于n个状态变量(n为状态向量的维数)的观测器称为降维状态观测器,或简称降价观测器。如果降维状态观测器的阶数是最小的,则称该观测器为最小阶状态观测器或最小阶观测器。本节将讨论全维状态观测器和最小阶状态观测器。 4.5.1 问题的提法 状态观测器基于可直接量测的输出变量和控制变量来估计状态变量。在前面讨论的能观测性概念在这里具有重要的作用。正如在下面将要看到的,当且仅当系统满足能观测性条件时,才能设计状态观测器。 在下面有关状态观测器的讨论中,我们用表示被观测的状态向量。在许多实际情况中,一般将被观测的状态向量用于状态反馈,以便产生期望的控制输入。 考虑如下线性定常系统  (4.27)  (4.28) 假设状态向量x可由如下动态方程  (4.29) 中的状态来近似,则该式表示状态观测器,其中称为观测器的增益矩阵。注意到状态观测器的输入为y和u,输出为。式(4.29)中右端最后一项包括可量测输出y与估计输出C之差的修正项。矩阵起到加权矩阵的作用。修正项监控状态变量。当此模型使用的矩阵A和B与实际系统使用的矩阵A和B之间存在差异时,由于动态模型和实际系统之间的差别,该附加修正项将减小这些影响。图4.5所示为带全维状态观测器的系统方块图。 下面将详细讨论用矩阵A和B以及附加的修正项来表征动态特性的状态观测器,其中的附加修正项包含可量测输出与估计输出之差。在讨论过程中,假设在此观测器模型中使用的矩阵A和B与实际系统使用的相同。 图4.5 全维状态观测器方块图 4.5.2 全维状态观测器的误差方程 在此讨论的状态观测器的阶数和系统的阶数相等。假设系统由式(4.27)和(4.28)定义。观测器的方程由式(4.29)定义。 为了得到观测器的误差方程,将式(4.27)减去式(4.29),可得  (4.30) 定义与之差为误差向量,即  则式(4.30)可改写为  (4.31) 由式(4.31)可看出,误差向量的动态特性由矩阵A - KeC的特征值决定。如果矩阵A -KeC是稳定矩阵,则对任意初始误差向量e (0),误差向量e (t)都将趋近于零。也就是说,不管x (0)和(0)的值如何,都将收敛到x (t)。如果所选的矩阵A - KeC的特征值使得误差向量的动态特性渐近稳定且足够快,则任意误差向量e (t)都将以足够快的速度趋近于零 (原点),此时将称为x (t)的渐近估计或重构。 如果系统是完全能观测的,下面将证明可以通过选择,使得A - KeC具有任意的期望特征值。也就是说,可以确定观测器的增益矩阵,以便产生期望的矩阵A - KeC。 4.5.3 对偶问题 全维状态观测器的设计问题,是确定观测器增益矩阵,使得由式(4.31)定义的误差动态方程,以足够快的响应速度渐近稳定(渐近稳定性和误差动态方程的响应速度由矩阵A-KeC的特征值决定)。因此,全维观测器的设计就归结为如何确定一个合适的,使得A-KeC具有期望的特征值。此时,全维状态观测器的设计问题实际上就变成了与4.2节讨论的极点配置相同的问题。 考虑如下的线性定常系统  在设计全维状态观测器时,我们可以求解其对偶问题。也就是说,求解如下对偶系统  的极点配置问题。假设控制输入为  如果对偶系统是状态完全能控的,则可确定状态反馈增益矩阵K,使得反馈闭环系统的系统矩阵得到一组期望的特征值。 如果μ1,μ2,…,μn是状态观测器系统矩阵的期望特征值,则可通过取相同的μi作为其对偶系统的状态反馈闭环系统的期望特征值,从而  注意到和的特征值相同,即有  比较特征多项式和观测器的系统矩阵(参见式(4.31))的特征多项式,可找出和的关系为  因此,观测器问题与极点配置问题具有对偶关系,即  在下面的讨论中,我们就可将给定线性定常系统的观测器设计问题,考虑为其对偶系统的极点配置问题,即首先由极点配置方法确定出其对偶系统的极点配置增益矩阵K,然后利用关系式,确定出原系统的观测器增益矩阵K。 4.5.4 可观测条件 如前所述,对于使A - KeC具有期望特征值的观测器增益矩阵的确定,其充要条件为原给定系统的对偶系统  是状态完全能控的。该对偶系统的状态完全能控的充要条件为  的秩为n 。而这正是由式(4.27)和(4.28)定义的原系统的状态完全能观测性条件。这意味着。由式(4.27)和(4.28)定义的系统的状态观测器存在的充要条件是系统完全能观测。 下面将利用上述对偶关系,介绍全维状态观测器的设计算法,包括相应的Bass-Gura算法、直接代入法,以及爱克曼公式。 4.5.5 全维状态观测器的Bass-Gura算法 考虑由下式定义的单输入单输出线性定常系统  (4.32)  (4.33) 式中,。假设系统是状态完全能观测的,又设系统结构如图4.5所示。 在设计全维状态观测器时,若将式(4.32)和(4.33)给出的系统变换为能观测标准形,则相应的设计问题就相当方便了。考虑对偶关系,将式(4.32)和(4.33)的系统变换为能观测标准形,可按下列步骤进行,即首先定义一个变换矩阵P,使得  (4.34) 式中R是能观测性矩阵  (4.35) 且对称矩阵W由式(4.6)定义,即  式中,是由式(4.32)给出的如下特征方程的系数  显然,由于假设系统是完全能观测的,所以矩阵WR的逆存在。 现定义一个新的n维状态向量ξ为 x = Pξ (4.36) 则式(4.32)和(4.33)为  (4.37)  (4.38) 式中  (4.39)  (4.40)  (4.41) 式(4.39)到(4.41)的推导见例4.7和4.8,此时式(4.37)和(4.38)即是能观测标准形。从而给定一个系统的状态方程和输出方程,如果系统是完全能观测的,并且通过采用式(4.36)的变换,将原系统的状态向量x变换为新的状态向量ξ,则可将给定系统的状态方程和输出方程变换为能观测标准形。注意,如果矩阵A已经是能观测标准形,则P = I。 如前所述,选择由  = (4.42) 给出的状态观测器的动态方程。现定义  (4.43) 将式(4.43)代入式(4.42),有  (4.44) 由式(4.37)减去式(4.44),可得  (4.45) 定义  则式(4.45)为  (4.46) 要求误差动态方程是渐近稳定的,且以足够快的速度趋于零。因此,确定矩阵的步骤是:首先选择观测器的极点(的特征值),然后确定,使其等于期望的观测器极点。注意,可得  式中  由于是一个n维向量,则令  (4.47) 参考式(4.41),有  和   特征方程为  即  或者  (4.48) 可见,每个δi只与特征方程中的一个系数有关。 假设误差动态方程的期望特征方程为  (4.49) 注意,期望的特征值μi确定了被观测状态以多快的速度收敛于系统的真实状态。比较式(4.48)和(4.49)的s同幂项的系数,可得  从而可得  于是,由式(4.47)得到  因此  (4.50) 式(4.50)确定了所需的状态观测器增益矩阵。 如前所述,式(4.50)也可通过其对偶问题由式(4.13)得到。也就是说,考虑对偶系统的极点配置问题,并求出对偶系统的状态反馈增益矩阵K。那么,状态观测器的增益矩阵可由确定(见例4.16)。 一旦选择了期望的特征值(或期望的特征方程),只要系统状态完全能观测,就能设计出全维状态观测器。 Luenberger曾经指出,当观测器期望极点的选择,使衰减太快,即使特征值的实部太负,将导致观测器的作用接近于一个微分器,从而使频带加宽,不能容忍地将高频噪声分量放大,而且也存在观测器的可实现性问题 (因为衰减速度太快,则矩阵较大),因此Luenberger建议,进行观测器本身的极点配置时,只需使观测器的期望极点比由此组成的闭环反馈系统的特征值稍大一些即可。一般地,选择的期望特征值,应使状态观测器的响应速度至少比所考虑的闭环系统快2~5倍。 如前所述,全维状态观测器的方程为  (4.51) 注意,迄今为止,我们假设观测器中的矩阵A和B与实际系统中的严格相同。实际上,这做不到。因此,误差动态方程不可能由式(4.46)给出,这意味着误差不可能趋于零。因此,应尽量建立观测器的准确数学模型,以使相应的误差小到令人满意的程度。 4.5.6 求状态观测器增益矩阵的直接代入法 与极点配置算法的情况类似,如果系统是低阶的(),可将矩阵直接代入期望的特征多项式进行计算。例如,若x是一个3维向量,则观测器增益矩阵可写为  将该代入期望的特征多项式  通过使上式两端s的同次幂系数相等,即可确定出、和的值。如果n =1,2或者3,其中n是状态向量x的维数,则该方法十分简便(虽然该方法可应用于n = 4, 5, 6, …的情况,但计算有可能非常繁琐)。 4.5.7 爱克曼公式(Ackermann’s Formula) 考虑如下的单输出线性定常系统  (4.52)  (4.53) 在4.2节中,我们已推导了用于式(4.52)系统极点配置的爱克曼公式,其结果已由式(4.18)给出,现重写为  对于由式(4.52)和(4.53)定义的对偶系统  上述极点配置的爱克曼公式可改写为  (4.54) 由于状态观测器的增益矩阵可由给出,这里的由式(4.54)确定。从而  (4.55) 式中,是状态观测器的期望特征多项式,即  这里,μ1, μ2, …,μn是期望的特征值。式(4.55)称为确定观测器增益矩阵的爱克曼公式。 4.5.8 最优选择的注释 参考图4.5,应当指出,作为对观测器动态方程修正的观测器增益矩阵,通过反馈信号来考虑系统中的未知因素。如果含有明显的未知因素,那么利用矩阵的反馈信号也应该比较大。然而另一方面,如果由于干扰和测量噪声使输出信号受到严重干扰,则输出y是不可靠的。因此,由矩阵引起的的反馈信号应该比较小。在决定矩阵时,应该仔细检查包含在输出y中的干扰和噪声的影响。 应强调的是观测器增益矩阵依赖于期望的特征方程  在许多情况中,μ1, μ2, …,μn的选取不是唯一的。有许多不同的特征方程可选作为期望的特征方程。对于每个期望的特征方程,可有不同的观测器增益矩阵。 在设计状态观测器时,最好在几个不同的期望特征方程的基础上决定观测器增益矩阵。 对不同的矩阵必须进行仿真验证,以评估系统的最终性能。当然,应从系统总体性能的观点来选取最好的。在许多实际问题中,最优矩阵的选取,归结为对快速响应及对干扰和噪声灵敏性之间的一种折衷。 ------------------------------------------------------------------------------ [例4.2] 考虑如下的线性定常系统  式中  设计一个全维状态观测器。设系统结构与图4.5所示相同。又设观测器的期望特征值为  由于状态观测器的设计实际上归结为确定一个合适的观测器增益矩阵,为此先检验能观测性矩阵,即  的秩为2。因此,该系统是完全能观测的,并且可确定期望的观测器增益矩阵。我们将用3种方法来求解该问题。 [解] 方法1:采用式(4.50)来确定观测器的增益矩阵。由于该状态空间表达式已是能观测标准形,因此变换矩阵。由于给定系统的特征方程为  因此  观测器的期望特征方程为  因此  故观测器增益矩阵可由式(4.50)求得如下  方法2:参见式(4.31)  观测器的特征方程为  定义  则此时特征方程为  (4.56) 由于期望的特征方程为  比较式(4.56)和以上方程,可得  即  方法3:采用式(4.55)给出的爱克曼公式。  式中  因此  从而  当然,无论采用什么方法,所得的都是相同的。 全维状态观测器由式(4.51)给出为  或者  ------------------------------------------------------------------------------ 与极点配置的情况类似,如果系统阶数n ≥ 4,则推荐使用方法1和3,这是因为在采用方法1和3时,所有矩阵都可由计算机实现,而方法2总是需要手工计算包含未知参数的特征方程。 4.5.9 系统设计的分离性原理:观测器的引入对闭环系统的影响 在极点配置的设计过程中,假设真实状态x(t)可用于反馈。然而实际上,真实状态x(t)可能无法量测,所以必须设计一个观测器,并且将观测到的状态用于反馈,如图4.6所示。因此,该设计过程分为两个阶段,第一个阶段是确定反馈增益矩阵K,以产生期望的反馈闭环系统的特征方程;第二个阶段是确定观测器的增益矩阵,以产生期望的观测器特征方程。 图4.6 观测-状态反馈控制系统 现在不采用真实状态x(t)而采用观测或重构的状态来研究对闭环反馈系统特征方程的影响。 考虑如下线性定常系统  且假定该系统状态完全能控且完全能观测。 对基于重构状态的线性状态反馈控制  利用该控制,状态方程为  (4.57) 将真实状态x(t)和重构状态之差定义为误差e(t),即  将误差向量代入式(4.57),得  (4.58) 注意,观测器的误差方程由式(4.31)给出,重写为  (4.59) 将式(4.58)和(4.59)合并,可得  (4.60) 式(4.60)描述了带观测器的状态反馈控制系统的动态特性。该系统的特征方程为  或  注意,观测-状态反馈控制系统的闭环极点由极点配置单独设计产生的极点和由观测器单独设计产生的极点两部分组成。这意味着,极点配置和观测器设计是相互独立的,它们可分别进行设计,并合并为观测-状态反馈控制系统。通常称这个性质为系统设计的分离性原理,这就给闭环系统的设计带来了极大的方便。注意,如果系统的阶次为n,则观测器的阶次也是n(如果采用全维状态观测器),因此整个闭环系统的阶次或特征方程为2n阶。 由状态反馈(极点配置)选择所产生的期望闭环极点,应使系统满足性能要求。观测器极点的选取通常使得观测器响应比系统的响应快得多。一个经验法则是选择观测器的响应至少比系统的响应快2~5倍。因为观测器通常不是硬件结构,而是计算软件,所以它可以加快响应速度,使重构状态迅速收敛到真实状态,观测器的最大响应速度通常只受到控制系统中的噪声和灵敏性的限制。注意,由于在极点配置中,观测器极点位于期望的闭环极点的左边,所以后者在响应中起主导作用。 4.5.10 控制器-观测器的传递函数 考虑如下线性定常系统  且假设该系统状态完全能观测,但x不能直接量测。又设采用观测-状态反馈控制为  (4.61) 如图4.6所示,则观测器方程为  (4.62) 对式(4.61)取拉普拉斯变换,则有  (4.63) 由式(4.62)定义的观测器方程的拉普拉斯变换为  (4.64) 设初始观测状态为零,即。将式(4.63)代入式(4.64),并对(s)求解,可得  (4.65) 将上述方程代入式(4.63),可得  这里,u和y均为纯量。式(4.65)给出了U (s)和-Y (s)之间的传递函数。 图4.7为该系统的方块图。注意,控制器的传递函数为  (4.66) 因此,通常称此传递函数为控制器-观测器传递函数。  图4.7 具有控制器-观测器系统的方块图 ------------------------------------------------------------------------------ [例12.3] 考虑下列线性定常系统的调节器设计问题。  (4.67)  (4.68) 式中  假设采用极点配置方法来设计该系统,并使其闭环极点为s =μi (i = 1, 2),其中。在此情况下,可得状态反馈增益矩阵K为  采用该状态反馈增益矩阵K,可得控制输入u为  假设采用观测-状态反馈控制替代真实状态反馈控制,即  式中,观测器的期望特征值选择为  现求观测器增益矩阵。并画出观测-状态反馈控制系统的方块图。再求该控制-观测器的传递函数U(s)/[-Y(s)],并画出系统的方块图。 [解] 对于式(4.67)给定的系统,其特征多项式为  因此  该观测器的期望特征方程为  因此  为了确定观测器增益矩阵,利用式(4.50),则有  式中  因此  (4.69) 式(4.69)给出了观测器增益矩阵。观测器的方程由式(4.51)定义,即  (4.70) 由于  所以,式(4.70)为  或  具有观测-状态反馈的系统方块图参见图4.6所示。 参照式(4.66),控制器-观测器的传递函数为  该系统的方块图参见图4.7所示。 设计的观测-状态反馈控制系统的动态特性由下列状态空间表达式描述。 给定线性定常系统为   全维状态观测器为  作为整体而言,该系统是4阶的,其系统特征方程为  该特征方程也可由图4.7所示的系统方块图得到。由于闭环传递函数为  则特征方程为  事实上,该观测-状态反馈控制系统的特征方程对于状态空间表达式和传递函数表达式是相同的。 ------------------------------------------------------------------------------ 4.5.11 最小阶观测器 迄今为止,我们所讨论的观测器都是重构所有的系统状态变量。实际上,有一些状态变量可以准确量测的。对这些可准确量测的状态变量就不必估计了。 假设状态向量x为n维向量,输出向量y为可量测的m维向量。由于m个输出变量是状态变量的线性组合,所以m个状态变量就不必进行估计,只需估计n-m个状态变量即可,因此,该降维观测器为n-m维观测器。这样的n-m维观测器就是最小阶观测器。图4.8所示为具有最小阶观测器的观测-状态反馈控制系统的方块图。  图4.8 具有最小阶观测器的观测-状态反馈控制系统 如果输出变量的量测中含有严重的噪声,且相对而言较不准确,那么利用全维观测器可以得到更好的系统性能。 为了介绍最小阶观测器的基本概念,又不涉及过于复杂的数学推导,我们将介绍输出为纯量(即m = 1)的情况,并推导最小阶观测器的状态方程。 考虑如下线性定常系统  式中,状态向量x可划分为(纯量)和(n-1维向量)两部分。这里,状态变量等于输出y,因而可直接量测,而是状态向量的不可量测部分。于是,经过划分的状态方程和输出方程为  (4.71)  (4.72) 式中,。 由式(4.71),状态可量测部分的状态方程为  或  (4.73) 式(4.73)左端各项是可量测的。式(4.73)可看作输出方程。在设计最小阶观测器时,可认为式(4.73)左端是已知量。因此,式(4.73)可将状态的可量测和不可量测部分联系起来。 由式(4.71),对于状态的不能量测部分  (4.74) 注意,Ab axa和Bbu这两项是已知量,式(4.74)为状态的不可量测部分的状态方程。 下面将介绍设计最小阶观测器的一种方法。如果采用全维状态观测器的设计方法,则最小阶观测器的设计步骤可以简化。 现比较全维观测器的状态空间表达式和最小阶观测器的状态空间表达式。 全维观测器的状态方程为  最小阶观测器的状态方程为  全维观测器的输出方程为  最小阶观测器的输出方程为  因此,最小阶观测器的设计步骤如下: 首先,注意到全维观测器由式(4.51)给出,将其重写为  (4.75) 然后,将表4.1所做的替换代入式(4.75),可得  (4.76) 式中,状态观测器增益矩阵是(n-1)×1维矩阵。在式(4.76)中,注意到为估计,需对微分,这是不希望的,因此有必要修改式(4.76)。 表4.1 给出式(4.76)的最小阶状态观测器方程所做的替换 全维状态观测器 最小阶状态观测器     A Abb  Bu Ab axa+Bbu  y   C Aab   (n×1维矩阵)  [(n-1)×1维矩阵]   注意到xa = y,将式(4.76)重写如下,可得  (4.77) 定义  及  (4.78) 则式(4.77)成为  (4.79) 从而式(4.79)和(4.78)一起确定了实际的最小阶观测器。 下面推导观测器的误差方程。利用式(4.73),将式(4.76)改写为  (4.80) 用式(4.80)减去式(4.74),可得  (4.81) 定义  于是,式(4.81)为  (4.82) 这就是最小阶观测器的误差方程。注意,e是(n-1)维向量。 如果矩阵  的秩为n-1(这是用于最小阶观测器的状态完全能观测性条件),则仿照在全维观测器设计中提出的方法,可选定最小阶观测器的误差状态方程。 由式(4.82)得到的最小阶观测器的期望特征方程为  (4.83) 式中,μ1,μ2,μn -1是最小阶观测器的期望特征值。观测器的增益矩阵确定如下:首先选择最小阶观测的期望特征值(即将特征方程(4.83)的根置于所期望的位置),然后采用在全维观测器设计中提出并经过适当修改的方法。例如,若采用由式(4.50)给出的确定矩阵的公式,则应将其修改为  (4.84) 式中的是(n -1)×1维矩阵,并且  这里,均为(n -1) ×(n -1)维矩阵。注意,是如下特征方程的系数:  同样,如果采用式(4.55)给出的爱克曼公式,则应将其修改为  (4.85) 式中  ------------------------------------------------------------------------------ [例4.4] 考虑系统  式中  假设输出y可准确量测,因此状态变量x1(等于y)不需要估计。试设计一个最小阶观测器(显然该最小阶观测器是二阶的)。此外,假设最小阶观测器的期望特征值为  参照式(4.83),该最小阶观测器的特征方程为  下面采用由式(4.85)给出的爱克曼公式(例4.20介绍用式(4.84)来确定)。  (4.86) 式中  由于  可得  式(4.86)成为  参照式(4.78)和(4.79),最小阶观测器的方程为  (4.87) 式中  注意到  因此,式(4.87)的最小阶观测器为  或  式中  或  如果采用观测-状态反馈,则控制输入为  式中的K为状态反馈增益矩阵(矩阵K不是在本例中确定的)。 ------------------------------------------------------------------------------ 4.5.12 具有最小阶状态观测器的观测-状态反馈控制系统 对于具有全维状态观测器的观测-状态反馈控制系统,我们已经指出,其闭环极点包括由极点配置设计单独给出的极点,加上由观测器设计单独给出的极点。因此,极点配置设计和全维观测器设计是相互独立的。 对于具有最小阶观测器的观测-状态反馈控制系统,可运用同样的结论。该系统的特征方程可推导为  (4.88) 详细情况请参见例4.13。具有最小阶观测器的观测-状态反馈控制系统的闭环极点,包括由极点配置的闭环极点(矩阵A-BK的特征值)和由最小阶观测器的闭环极点(矩阵)两部分组成。因此,极点配置设计和最小阶观测器设计是互相独立的。这也就是满足前述所谓的极点配置与观测器设计的分离性原理。 4.6 利用MATLAB设计状态观测器 本节将介绍用MATLAB设计状态观测器的若干例子。我们将举例说明全维状态观测器和最小阶状态观测器设计的MATLAB方法。 ------------------------------------------------------------------------------ [例4.5] 考虑一个调节器系统的设计。给定线性定常系统为  式中  且闭环极点为s =μi(i=1,2),其中  期望用观测-状态反馈控制,而不是用真实的状态反馈控制。观测器的期望特征值为  试采用MATLAB确定出相应的状态反馈增益矩阵K和观测器增益矩阵。 [解] 对于题中给定的系统,可利用如下MATLAB Program 4.5来确定状态反馈增益矩阵K和观测器增益矩阵。 MATLAB Program 4.5   % ------ Pole placement and design of observer ------ % ***** Design of a control system using pole-placement % technique and state observer. First solve pole-placement % problem ***** % ***** Enter matrices A,B,C,and D ***** A=[0 1;20.6 0]; B=[0;1] C=[1 0]; D=[0]; % ***** Check the rank of the controllability matrix Q ***** Q=[B A*B]; Rank(Q) ans= 2 % ***** Since the rank of the controllability matrix Q is 2, % arbitrary pole placement is possible ***** % ***** Enter the desired characteristic polynomial by % defining the following matrix J and computing poly(J) ***** J=[-1.8+2.4*i 0;0 -1.8-2.4*i]; Poly(J) ans= 1.000 3.6000 9.0000 % ***** Enter characteristic polynomial Phi ***** Phi=polyvalm(poly(J),A); % ***** State feedback gain matrix K can be given by ***** K=[0 1]*inv(Q)*Phi K= 3.6000 % ***** The following program determines the observer matrix Ke ***** % ***** Enter the observability matrix RT and check its rank ***** RT=[C’ A’*C’]; rank(RT) ans= 2 % ***** Since the rank of the observability matrix is 2, design of % the observer is possible ***** % **** Enter the desired characteristic polynomial by defining % the following matrix J0 and entering statement poly(JO) ***** JO=[-8 0;0 -8]; Poly(JO) ans= 1 16 64 % ***** Enter characteristic polynomial Ph ***** Ph=polyvalm(ply(JO),A); % ***** The observer gain matrix Ke is obtained from ***** Ke=Ph*(inv(RT’))*[0;1] Ke= 16.0000 84.60000   求出的状态反馈增益矩阵K为  观测器增益矩阵为  该观测-状态反馈控制系统是4阶的,其特征方程为  通过将期望的闭环极点和期望的观测器极点代入上式,可得  这个结果很容易通过MATLAB得到,如MATLAB Program 4.6所示(MATLAB Program 4.6是MATLAB Program 4.5的继续。矩阵A、B、C、K和已在MATLAB Program 4.5中给定)。 MATLAB Program 4.6   % ------- Characteristic polynomial ------- % ***** The characteristic polynomial for the designed system % is given by |sI-A+BK||sI-A+KeC| ***** % ***** This characteristic polynomial can be obtained by use of % eigenvalues of A-BK and A-KeC as follows ***** X=[eig(A-B*K);eig(A-Ke*C)] X= -1.8000+2.4000i -1.8000-2.4000i -8.0000 -8.0000 poly(X) ans= 1.0000 19.6000 130.6000 374.4000 576.0000   ------------------------------------------------------------------------------ [例4.6] 考虑与例4.4讨论的最小阶观测器设计相同的问题。该给定线性定常系统为  式中  假定状态变量x1(等于y)是可量测的,但未必是能观测的。试确定最小阶观测器的增益矩阵。期望的特征值为  试利用MATLAB方法求解。 [解] 下面介绍该问题的两个MATLAB程序。MATLAB Program 4.7采用变换矩阵P的方法,MATLAB Porgram 4.8采用爱克曼公式。 MATLAB Program 4.7   % -------- Design of minimum-order observer -------- % ***** This program uses transformation matrix P ***** % ***** Enter matrices A and B ***** A=[0 1 0;0 0 1;-6 -11 -6]; B=[0;0;1]; % ***** Enter matrices Aaa,Aab,Aba,Abb,Ba,and Bb. Note % that A=[Aaa Aab;Aba Abb] and B=[Ba;Bb] ***** Aaa=[0];Aab=[1 0];Aba=[0;-6];Abb=[0 1;-11 -6]; Ba=[0];Bb=[0;1]; % ***** Determine al and a2 of the characteristic polynomial % for the unobserved portion of the system ***** P=poly(Abb) P= 1 6 11 a1=P(2);a2=P(3); % ***** Enter the reduced observability matrix RT and matrix W ***** RT=[Aab’ Abb’*Aab’]; W=[a1 1;1 0]; % ***** Enter the desired characteristic polynomial by defining % the following matrix J and entering stastement poly(J) ***** J=[-2+2*sqrt(3)*i 0;0 -2-2*sqrt(3)*i]; JJ=poly(J) JJ= 1.0000 4.0000 16.0000 % ***** Determine aal and aa2 of the desired characteristic % polynomial ***** aa1=JJ(2);aa2=JJ(3); % ***** Observer gain matrix Ke for the minimum-order observer % is given by ***** Ke=inv(W*RT’)[aa2-a2;aa1-a1] Ke= -2 17   MATLAB Program 4.8   % ----- Design of minimum-order observer ----- % ***** This program is based on Ackermann’s formula ***** % ***** Enter matrices A and B ***** A=[0 1 0;0 0 1;-6 -11 -6]; B=[0;0;1]; % ***** Enter matrices Aaa,Aab,Aba,Abb,Ba,and Bb. Note % that A=[Aaa Aab;Aba Abb] and B=[Ba;Bb] ***** Aaa=[0];Aab=[1 0];Aba=[0;-6];Abb=[0 1;-11 -6]; Ba=[0];Bb=[0;1]; % ***** Enter the reduced observability matrix RT ***** RT=[Aab’ Abb’*Aab’]; % ***** Enter the desired characteristic polynomial by defining % the following matrix J and entering statement poly(J) ***** J=[-2+2*sqrt(3)*i 0;0 -2-2*sqrt(3)*i]; JJ=poly(J) JJ= 1.0000 4.0000 16.0000 % **** Enter characteristic polynomial Phi of matrix Abb ***** Phi=polyvalm(poly(J),Abb); % **** Observer gain matrix Ke for the minimum-order observer % is given by **** Ke=Phi*inv(RT’)*[0;1] Ke= -2 17  ------------------------------------------------------------------------------ 4.7 伺服系统设计 在经典控制理论中,我们通常按前馈传递函数中的积分器数目来划分系统的类型,如0型系统、I型系统等。I型系统在前馈通道中有一个积分器,且此系统的阶跃响应不存在稳态误差。本节将讨论I型伺服系统的极点配置方法,此时,将假定系统只有一个纯量控制输入u和一个纯量输出y,即仅考虑单输入单输出线性定常系统。 下面首先讨论针对I型被控对象(被控对象含积分器)的I型闭环伺服系统的设计问题,然后讨论针对0型被控对象(被控对象不含积分器)的I型闭环伺服系统的设计问题。 4.7.1 被控系统具有积分器的I型闭环伺服系统 考虑由下式定义的线性定常系统  (4.89)  (4.90) 式中,。 如前所述,假设控制输入u和系统输出y均为纯量。选择一组适当的状态变量,例如可以选择输出量等于其中的一个状态变量,这里假定输出量y等于x1。 图4.9给出了被控系统具有一个积分器时I型伺服闭环系统的一般结构。这里,假设y =x1。在分析中,假设参考输入r是阶跃函数。  图4.9 被控系统具有一个积分器的I型闭环伺服系统 在此系统中,采用如下的状态反馈控制规律  (4.91) 式中  假设在t = 0时施加参考输入(阶跃函数)。因此t > 0时,该系统的动态特性由式(4.89)和(4.91)描述,即  (4.92) 设计I型闭环伺服系统,使得闭环极点配置在期望的位置。这里设计的将是一个渐近稳定系统,y()趋于常值r(r为阶跃输入),u()趋于零。 在稳态时,  (4.93) 注意,r(t)是阶跃输入。对t > 0,有r()=r(t)=r(常值)。用式(4.92)减去(4.93),可得  (4.94) 定义  因此,式(4.94)成为  (4.95) 式(4.95)描述了误差动态特征。 因此,I型闭环伺服系统的设计转化为:对于给定的任意初始条件e(0),设计一个渐近稳定的调节器系统,使得e(t)趋于零。如果由式(4.89)确定的系统是状态完全能控的,则对矩阵A-BK,通过指定的期望特征值μ1,μ2,…,μn,可由4.2节介绍过的极点配置方法来确定线性反馈增益矩阵K。 x(t)和u(t)的稳态值求法如下:在稳态()时,由式(4.92)可得  由于A-BK的期望特征值均在s的左半平面,所以矩阵A-BK的逆存在。从而,x()可确定为  同样,u()可求得为  ------------------------------------------------------------------------------ [例4.7] 考虑被控系统传递函数具有一个积分器时的I型闭环伺服系统的设计。假设被控系统的传递函数为  试设计一个I型闭环伺服系统,使得闭环极点为。假设该系统的结构与图4.9所示相同,参考输入r是阶跃函数。 [解] 定义状态变量x1,x2和x3为 ,, 则该被控系统的状态空间表达式为  (4.96)  (4.97) 式中  参见图4.9并注意到n = 3,则控制输入u为  (4.98) 式中  此时,就可用极点配置方法确定状态反馈增益矩阵K。 现检验系统的能控性矩性。由于  的秩为3。因此,该系统是状态完全能控的,并且可任意配置极点。 将式(4.98)代入式(4.96),可得  (4.99) 式中的r为阶跃函数。因此,当t趋于无穷时,x(t)趋于定常向量x()。在稳态时,  (4.100) 从式(4.99)减去式(4.100),可得  定义  那么  (4.101) 式(4.101)确定了误差的动态特性。给定被控系统的特征方程为  因此  由于A-BK的期望特征值为  所以期望的特征方程为  因此  为了利用极点配置方法来确定矩阵K,采用式(4.13),将其重写为  (4.102) 由于式(4.96)已是能控标准形,所以P = I。因此  该系统的阶跃响应容易由计算机仿真求得。由于  由式(4.99),可得此闭环反馈系统的状态方程为  (4.103) 输出方程为  (4.104) 当r为单位阶跃函数时,求解式(4.103)和(4.104),即可得到y(t)对t的单位阶跃响应曲线。利用MATLAB Program 4.9,将可轻松地求出单位阶跃响应。相应的单位阶跃响应曲线如图4.10所示。 注意到,因此由式(4.100),可得  MATLAB Program 4.9   % ------ Unit-step response ------ % ***** Enter the state matrix A,control matrix B, output matrix C, % and direct transmission matrix D ***** A=[0 1 0;0 0 1;-160 -56 -14]; B=[0;0;160]; C=[1 0 0]; D=[0]; % ***** Enter step command and plot command ***** t=0:0.01:5; y=step(A,B,C,D,1,t); plot(t,y) grid title(‘Unit-Step Response’) xlabel(‘t Sec’) ylabel(‘Output y’)    图4.10 例4.7设计的系统之y(t)对t的单位阶跃响应曲线 由于  所以   显然,。在阶跃响应中没有稳态误差。 注意,由于  所以  即在稳态时,控制输入u为零。 ------------------------------------------------------------------------------ 4.7.2 被控系统中不含积分器时的I型闭环伺服系统的设计 如果被控系统中没有积分器(0型被控系统),则设计I型闭环伺服系统的基本原则是在误差比较器和系统间的前馈通道中插入一个积分器,如图4.11所示(当不含积分器时,图4.11所示方块图是I型闭环伺服系统的基本形式)。 由图中可得  (4.105)  (4.106)  (4.107)  (4.108) 式中,。 假设由式(4.105)定义的系统是状态完全能控的。该系统的传递函数为  图4.11 I型闭环伺服系统  为了避免插入的积分器在系统原点处与零点有相约的可能,假设在原点处没有零点。 假设在t = 0时施加参考输入(阶跃函数),则对t > 0,该系统的动态特性可由式(4.105)和(4.108)的组合来描述,即  (4.109) 试设计一个渐近稳定系统,使得、和分别趋于常值。因此,在稳态时,,并且。 注意,在稳态时  (4.110) 其中r(t)为阶跃输入,从而对t > 0,r() = r(t) = r(常值)。从式(4.109)中减去式(4.110),可得  (4.111) 定义  则式(4.111)可改写为  (4.112) 式中  (4.113) 由  定义一个新的n+1维误差向量e (t),因此式(4.112)成为  (4.114) 式中  且式(4.113)成为  (4.115) 这里  设计I型闭环伺服系统的基本思想是设计一个稳定的n+1阶调节器系统,对于给定的任意初始条件e (0),使新的误差向量e (t)趋于零。 式(4.114)和(4.115)描述了该n+1阶调节器系统的动态特征。如果由式(4.114)定义的系统状态完全能控,则通过指定该系统的期望特征方程,利用在4.2节中介绍的极点配置方法,即可确定矩阵。 x(t)、ξ(t)和u(t)的稳态值可确定如下:在稳态()时,由式(4.105)和(4.108)可得  将上述两式合并为如下向量-矩阵方程为  如果由  (4.116) 定义的矩阵的秩为n+1,则其逆存在,并且  同样地,由式(4.107)可得  因此  注意,如果由式(4.116)给出的矩阵的秩为n+1,则由式(4.114)定义的系统状态完全能控(参见例4.15),该问题的解可利用极点配置方法求得。 状态误差方程可通过将式(4.115)代入式(4.114)得到,即  (4.117) 如果矩阵的期望特征值(即期望闭环极点)确定为,则可确定状态反馈增益矩阵和积分增益常数。在实际设计中,必须考虑几个不同的矩阵(它对应于几组不同的期望特征值),且可进行计算机仿真,以便找出使系统总体性能最好的作为最终选择的矩阵。 在通常情况下,不是所有的状态变量均可直接量测。如果情况确实如此,我们必须采用观测器。图4.12所示为具有状态观测器的I型闭环伺服系统的方块图。  图4.12 具有状态观测器的I型闭环伺服系统 4.8 利用MATLAB设计控制系统举例 考虑倒立摆控制系统,如图4.13所示。在该例中,我们仅讨论摆和小车在图面内运动的情形。 希望尽可能地保持倒立摆垂直,并控制小车的位置。例如,以步进形式使小车移动。为控制小车的位置,需建造一个I型伺服系统。安装在小车上的倒立摆被控系统没有积分器(0型系统)。因此,将位置信号y(表示小车的位置)反馈到输入端,并且在前馈通道中插入一个积分器,如图4.14所示(将该系统与4.4节讨论的系统进行比较,后者没有输入作用于小车上)。假设摆的角度和角速度很小,以致于,和。又假设M、m和l的值与4.4节讨论的系统的对应数值相同。也就是说 M = 2千克, m = 0.1千克, l = 0.5米  图4.13 倒立摆控制系统  图4.14 倒立摆系统(当被控对象不含积分器时的I型闭环伺服系统) 参照4.4节(式(4.21)和(4.22)),该倒立摆控制系统的方程为  (4.118)  (4.119) 代入给定的数值,式(4.118)和(4.119)成为  (4.120)  (4.121) 定义状态变量为  因此,参照式(4.120)和(4.121)和图4.14,且考虑作为系统输出的小车位置x,可得该系统的方程为  (4.122)  (4.123)  (4.124)  (4.125) 式中  对于I型闭环伺服系统, 我们得到用式(4.114)给出的状态误差方程为  (4.126) 式中  及由式(4.115)给出的控制输入为  这里  现用极点配置方法确定所需的状态反馈增益矩阵,即采用式(4.13)确定矩阵。 下面首先介绍一种解析方法,然后再介绍MATLAB解法。 在进一步讨论前,必须检验矩阵的秩,其中  即  (4.127) 易知,该矩阵的秩为5。因此,由式(4.126)定义的系统是状态完全能控的,并可任意配置极点。相应由式(4.126)给出的系统的特征方程为  因此  为了使设计的系统获得适当的响应速度和阻尼(例如,在小车的阶跃响应中,约有4~5秒的调整时间和15%~16%的最大超调量),选择期望的闭环极点为 (i=1,2,3,4,5),其中  这是一组可能的期望闭环极点,也可选择其他的。因此,期望的特征方程为  于是  下一步求由式(4.4)给出的变换矩阵P  这里Q和W分别由式(4.5)和(4.6)给出,即   于是  矩阵P的逆为  参见式(4.13),矩阵计算为  因此  且  4.8.1 所设计系统的单位阶跃响应特性 确定了状态反馈增益矩阵K和积分增益常数,小车位置的阶跃响应可通过下列状态方程求得,即  (4.128) 由于  式(4.128)可写为  (4.129) 或  图4.15给出了x1(t)、x2(t)、x3(t)、x4(t)和ξ(t) ( = x5(t) ) 对t的响应曲线。图中,作用在小车上的输入r(t)为单位阶跃函数,即r(t) =1米。注意,x1=θ、x2=、x3 = x和x4=。所有的初始条件均等于零。 图4.15 x1(t)、x2(t)、x3(t)、x4(t)和x5(t) 对t的响应曲线 x3 (t) ( = x(t) )的阶跃响应正如所希望的那样,调整时间约为4.5秒,最大超调量约为11.8%。在位置曲线(x3(t) 对t的曲线)上,有一点很有趣,即最初的0.6秒左右,小车向后移动,使得摆向前倾斜。然后,小车在正方向加速运动。 x3(t) 对t的响应曲线清晰地显示了x3()趋于r。同样地,x1 () = 0、x2 () = 0、x4 () = 0和 = 1.1。这一结果可由以下分析方法予以证实。在稳态时,由式(4.122)和(4.125)可得  将其合并为  由于已求出矩阵  的秩为5,所以矩阵的逆存在。因此  参照方程(4.127),可得  因此  从而  由于  或  可得  由于,故由式 (4.125) 可得  从而  因此,对r = 1,可得  如图4.15所示。 应强调的是,在任意的设计问题中,如果响应速度和阻尼不十分满意,则必须修改期望的特征方程,并确定一个新的矩阵。必须反复进行计算机仿真,直到获得满意的结果为止。 4.8.2 用MATLAB确定状态反馈增益矩阵和积分增益常数 MATLAB Program 4.10可用于设计倒立摆控制系统。注意,在程序中,用符号A1、B1和KK分别表示、和,即  MATLAB Program 4.10   % ----- Design of an inverted pendulum control system ------ % ***** In this program we use Ackermann’s formula for % pole placement ***** % ***** This program determines the state feedback gain matrix % K=[k1 k2 k3 k4] and integral gain constant KI ***** % ***** Enter matrices A, B, C, and D ***** A=[0 1 0 0; 20.601 0 0 0; 0 0 0 1; -0.4905 0 0 0]; B=[0;-1;0;0.5]; C=[0 0 1 0]; D=[0]; % ***** Enter matrices A1 and B1 ***** A1=[A zeros(4,1);-C 0]; B1=[B;0]; % ***** Define the controllability matrix Q **** Q=[B1 A1*B1 A1^2*B1 A1^3*B1 A1^4*B1] ; % **** Check the rank of matrix Q ***** rank(Q) ans= 5 % **** Since the rank of Q is 5, the system is completely % state controllable. Hence, arbitrary pole placement is % possible ***** % **** Enter the desired characteristic polynomial, which % can be obtained by defining the following matrix J and % entering statement poly(J) ***** J=[-1+sqrt(3)*i 0 0 0 0; 0 -1-sqrt(3)*i 0 0 0; 0 0 -5 0 0; 0 0 0 -5 -5; 0 0 0 0 -5]; JJ=poly(J) JJ= 1.0000 17.0000 109.0000 335.0000 550.0000 500.0000 % **** Enter characteristic polynomial Phi ***** Phi=polyvalm(poly(J),A1); % ***** State feedback gain matrix K and integral gain constant % KI can be determined from ***** KK=[0 0 0 0 1]*(inv(Q))*Phi KK= -157.6336 -35.3733 -56.0652 -36.7466 50.9684 k1=KK(1), k2=KK(2), k3=KK(3), k4=KK(4), KI=-KK(5) k1= -157.6336 k2= -35.3733 k3= -56.0652 k4= -36.7466 KI= -50.9684   4.8.3 所设计系统的单位阶跃响应特性 一旦确定了反馈增益矩阵K和积分增益常数,小车的位置对阶跃的响应就可通过求解式(4.129)求得,现将其重写为  (4.130) 该系统的输出为x3(t),即  (4.131) 将由式(4.130)和(4.131)给出的系统矩阵(状态矩阵)、控制矩阵、输出矩阵及直接传输矩阵分别记为AA、BB、CC和DD。 MATLAB Program 4.11可用于给出所设计系统的阶跃响应曲线。注意,为了求得对单位阶跃的响应,需输入命令  图4.16给出了x1、x2、x3 ( = 输出y )、x4对t,以及x5( =ξ)对t的响应曲线(在图4.15中,这些响应曲线均表示在同一个图上)。 MATLAB Program 4.11   % ------ Step response of the designed system ------ % **** The following program is to obtain step response % of the inverted pendulum system just designed ***** % ***** Enter necessary matrices ***** A=[0 1 0 0;20.601 0 0 0;0 0 0 1;-0.4905 0 0 0]; B=[0;-1;0;0.5]; C=[0 0 1 0]; D=[0]; K=[-157.6336 -35.3733 -56.0652 -36.7466]; KI=-50.9684; AA=[A-B*K B*KI;-C 0]; BB=[0;0;0;0;1]; CC=[C 0]; DD=[0]; % **** Next, enter the following command **** t=0:0.02:6; [y,x,t]=step(AA,BB,CC,DD,1,t); plot(t,x) grid title(‘Response Curves x1, x2, x3, x4, x5 versus t’) xlabel(‘t Sec’) ylabel(‘x1, x2, x3, x4, x5’) text(1.3,0.04,’x1’) text(1.5,-0.34,’x2’) text(1.5,0.44,’x3’) text(2.33,0.26,’x4’) text(1.2,1.3,’x5’) % ***** The above response curves were presented in Figure 4.15 ***** % ***** To obtain response curves x1 versus t, x2 versus t, % x3 versus t, x4 versus t, and x5 versus t, separately, enter % the following command ***** x1=[1 0 0 0 0]*x’; x2=[0 1 0 0 0]*x’; x3=[0 0 1 0 0]*x’; x4=[0 0 0 1 0]*x’; x5=[0 0 0 0 1]*x’; subplot(3,2,1); plot(t,x1) ;grid title(‘x1 versus t’) xlabel(‘t Sec’) ylabel(‘x1’) subplot(3,2,2); plot(t,x2);grid title(‘x2 versus t’) xlabel(‘t Sec’) ylabel(‘x2’) subplot(3,2,3); plot(t,x3);grid title (‘x3 versus t’) xlabel(‘t Sec’) ylabel(‘x3’) subplot(3,2,4); plot(t,x4);grid title(‘x4 versus t’) xlabel(‘t Sec’) ylabel(‘x4’) subplot(3,2,5); plot(t,x5);grid title(‘x5 versus t’) xlabel(‘t Sec’) ylabel(‘x5’)    图4.16 x1、x2、x3 ( = 输出y )、x4和x5( =ξ)对t的曲线 习题 4.1 给定线性定常系统  式中  试将该状态空间表达式化为能控标准形和能观测标准形。 4.2 给定线性定常系统  式中  试将该状态方程化为能观测标准形。 4.3 给定线性定常系统  式中  采用状态反馈控制律,要求该系统的闭环极点为s = -2±j4,s = -10。试确定状态反馈增益矩阵K。 4.4 试用MATLAB求解习题4.3。 4.5 给定线性定常系统  试证明无论选择什么样的矩阵K,该系统均不能通过状态反馈控制来稳定。 4.6 调节器系统被控对象的传递函数为  定义状态变量为  利用状态反馈控制律,要求闭环极点为 (i=1,2,3),其中  试确定必需的状态反馈增益矩阵K。 4.7 试用MATLAB求解习题4.6。 4.8 给定线性定常系统  式中  试设计一个全维状态观测器。该观测器的期望特征值为。 4.9 考虑习题4.8定义的系统。假设输出y是可以准确量测的。试设计一个最小阶观测器,该观测器矩阵所期望的特征值为,即最小阶观测器所期望的特征方程为。 4.10 给定线性定常系统  式中  假设该系统的结构与图4.5所示的相同。试设计一个全维状态观测器,该观测器的期望特征值为。 4.11 给定线性定常系统   该观测器增益矩阵的一组期望的特征值为 。试设计一个全维观测器。 4.12 考虑习题4.11给出的同一系统。假设输出y可准确量测。试设计一个最小阶观测器。该最小阶观测器的期望特征值为。 4.13考虑图4.17所示的I型闭环伺服系统。图中的矩阵A、B和C为  试确定反馈增益常数和,使得闭环极点为。试利用计算机对所设计的系统进行仿真,并求该系统单位阶跃响应的计算机解,绘出y(t)对t的曲线。 图4.17 I型闭环伺服系统 4.14 考虑4.4节讨论的倒立摆系统。参见图4.2所示的原理图。假设 M = 2千克,m = 0.5千克,l = 1米 定义状态变量为  输出变量为  试推导该系统的状态空间表达式。 若要求闭环极点为  试确定状态反馈增益矩阵K。 利用已被求出的状态反馈增益矩阵K,用计算机仿真检验该系统的性能。试写出一个MATLAB程序,以求出该系统对任意初始条件的响应。对一组初始条件 米/秒 试求x1(t),x2(t),x3(t)和x4(t)对t的响应曲线。 4.15 考虑4.4节讨论的倒立摆系统。假设M、m和l 的值与4.4节中的相同。对于该系统,状态变量定义为  试求该系统的状态空间表达式。 假设采用状态反馈控制律,试设计一个稳定的控制系统。考虑以下两种情况下的期望闭环极点 情况1:; 情况2: 试确定在这两种情况下的状态反馈增益矩阵K。再求设计出的系统对初始条件  的响应,并比较这两种系统的响应。 4.16 考虑4.7节讨论的倒立摆系统。设计一个状态反馈增益矩阵K,其中已知和积分增益常数。假设该系统的期望闭环极点为 。试利用MATLAB确定增益矩阵K和积分增益常数。再求当单位阶跃输入作用于小车位置时的阶跃响应曲线。