III、综合部分
第四章 线性多变量系统的综合与设计
4.1 引言
前面我们介绍的内容都属于系统的描述与分析。系统的描述主要解决系统的建模、各种数学模型(时域、频域、内部、外部描述)之间的相互转换等;系统的分析,则主要研究系统的定量变化规律(如状态方程的解,即系统的运动分析等)和定性行为(如能控性、能观测性、稳定性等)。而综合与设计问题则与此相反,即在已知系统结构和参数(被控系统数学模型)的基础上,寻求控制规律,以使系统具有某种期望的性能。一般说来,这种控制规律常取反馈形式,因为无论是在抗干扰性或鲁棒性能方面,反馈闭环系统的性能都远优于非反馈或开环系统。在本章中,我们将以状态空间描述和状态空间方法为基础,仍然在时域中讨论线性反馈控制规律的综合与设计方法。
4.1.1 问题的提法
给定系统的状态空间描述

若再给定系统的某个期望的性能指标,它既可以是时域或频域的某种特征量(如超调量、过渡过程时间、极、零点),也可以是使某个性能函数取极小或极大。此时,综合问题就是寻求一个控制作用u,使得在该控制作用下系统满足所给定的期望性能指标。
对于线性状态反馈控制律

对于线性输出反馈控制律

其中为参考输入向量。
由此构成的闭环反馈系统分别为



闭环反馈系统的系统矩阵分别为


即或。
闭环传递函数矩阵


我们在这里将着重指出,作为综合问题,将必须考虑三个方面的因素,即1)抗外部干扰问题;2)抗内部结构与参数的摄动问题,即鲁棒性(Robustness)问题;3)控制规律的工程实现问题。
一般说来,综合和设计是两个有区别的概念。综合将在考虑工程可实现或可行的前提下,来确定控制规律u;而对设计,则还必须考虑许多实际问题,如控制器物理实现中线路的选择、元件的选用、参数的确定等。
4.1.2 性能指标的类型总的说来,综合问题中的性能指标可分为非优化型和优化型性能指标两种类型。两者的差别为:非优化型指标是一类不等式型的指标,即只要性能值达到或好于期望指标就算是实现了综合目标,而优化型指标则是一类极值型指标,综合目标是使性能指标在所有可能的控制中使其取极小或极大值。
对于非优化型性能指标,可以有多种提法,常用的提法有:
1、以渐近稳定作为性能指标,相应的综合问题称为镇定问题;
2、以一组期望的闭环系统极点作为性能指标,相应的综合问题称为极点配置问题。从线性定常系统的运动分析中可知,如时域中的超调量、过渡过程时间及频域中的增益稳定裕度、相位稳定裕度,都可以被认为等价于系统极点的位置,因此相应的综合问题都可视为极点配置问题;
3、以使一个多输入多输出(MIMO)系统实现为“一个输入只控制一个输出”作为性能指标,相应的综合问题称为解耦问题。在工业过程控制中,解耦控制有着重要的应用;
4、以使系统的输出y(t)无静差地跟踪一个外部信号作为性能指标,相应的综合问题称为跟踪问题。
对于优化型性能指标,则通常取为相对于状态x和控制u的二次型积分性能指标,即

其中加权阵或,且能观测。综合的任务就是确定,使相应的性能指标极小。通常,将这样的控制称为最优控制,确切地说是线性二次型最优控制问题,即LQ调节器问题。
4.1.3 研究综合问题的主要内容主要有两个方面:
1、可综合条件 可综合条件也就是控制规律的存在性问题。可综合条件的建立,可避免综合过程的盲目性。
2、控制规律的算法问题 这是问题的关键。作为一个算法,评价其优劣的主要标准是数值稳定性,即是否出现截断或舍入误差在计算积累过程中放大的问题。一般地说,如果问题不是病态的,而所采用的算法又是数值稳定的,则所得结果通常是好的。
4.1.4 工程实现中的一些理论问题在综合问题中,不仅要研究可综合条件和算法问题,而且要研究工程实现中提出的一系列理论问题。主要有:
1、状态重构问题 由于许多综合问题都具有状态反馈形式,而状态变量为系统的内部变量,通常并不能完全直接量测或采用经济手段进行量测,解决这一矛盾的途径是:利用可量测输出y 和输入u来构造出不能量测的状态x,相应的理论问题称为状态重构问题,即观测器问题和Kalman滤波问题。
2、鲁棒性(Robustness)问题
3、抗外部干扰问题
本章的组织结构如下。本章将首先讨论极点配置问题。将讨论利用极点配置方法来设计控制系统。这里将设计一个受制于初始条件的倒立摆系统,使其在规定的时间内,返回到垂直位置;其次还将讨论状态观测器的设计;最后研究含积分器的伺服系统和不含积分器的伺服系统。我们将设计一个倒立摆系统,当我们施加于小车一个阶跃输入时,仍可使该系统稳定(也就是说,摆不会倒下来)。
本章4.1节为引言。4.2节将讨论控制系统设计的极点配置方法,给出问题提法、可配置条件及极点配置的算法。4.3节将介绍利用MATLAB求解极点配置问题,并给出用于极点配置设计的MATLAB程序。4.4 节以倒立摆为例,给出用极点配置方法设计调节器型系统的一个例子,并分别介绍分析解法和MATLAB解法。
4.5节将介绍状态观测器。对于全维和最小阶观测器均将进行讨论,将介绍3种确定观测器增益矩阵Ke的方法,并引入控制器-观测器概念。4.6节讨论利用MATLAB设计状态观测器。4.7节研究伺服系统的设计,将讨论当含有积分器和不含积分器时I型伺服系统的设计。4.8节介绍用MATLAB设计控制系统的一个例子,将用MATLAB设计倒立摆控制系统。通过使用MATLAB,可得到所设计系统的单位阶跃响应曲线。
4.2 极点配置问题
本节介绍极点配置方法。首先假定期望闭环极点为s =μ1,s =μ2,…,s =μn。我们将证明,如果被控系统是状态能控的,则可通过选取一个合适的状态反馈增益矩阵K,利用状态反馈方法,使闭环系统的极点配置到任意的期望位置。
这里我们仅研究控制输入为标量的情况。将证明在s平面上将一个系统的闭环极点配置到任意位置的充要条件是该系统状态完全能控。我们还将讨论3种确定状态反馈增益矩阵的方法。
应当注意,当控制输入为向量时,极点配置方法的数学表达式十分复杂,本书将不讨论这种情况。还应注意,当控制输入是向量时,状态反馈增益矩阵并非唯一。可以比较自由地选择多于n个参数,也就是说,除了适当地配置n个闭环极点外,即使闭环系统还有其他需求,也可满足其部分或全部要求。
4.2.1 问题的提法
前面我们已经指出,在经典控制理论的系统综合中,不管是频率法还是根轨迹法,本质上都可视为极点配置问题。
给定单输入单输出线性定常被控系统
 (4.1)
式中。
选取线性反馈控制律为
 (4.2)
这意味着控制输入由系统的状态反馈确定,因此将该方法称为状态反馈方法。其中1×n维矩阵K称为状态反馈增益矩阵或线性状态反馈矩阵。在下面的分析中,假设u不受约束。
图4.1(a)给出了由式(4.1)所定义的系统。因为没有将状态x反馈到控制输入u中,所以这是一个开环控制系统。图4.1(b)给出了具有状态反馈的系统。因为将状态x反馈到了控制输入u中,所以这是一个闭环反馈控制系统。
(缺图,见更新版)
图4.1 (a) 开环控制系统 (b) 具有的闭环反馈控制系统
将式(4.2)代入式(4.1),得到

该闭环系统状态方程的解为
 (4.3)
式中x(0)是外部干扰引起的初始状态。系统的稳态响应特性将由闭环系统矩阵A-BK的特征值决定。如果矩阵K选取适当,则可使矩阵A-BK构成一个渐近稳定矩阵,此时对所有的x(0)≠0,当t ( ∞时,都可使x(t) ( 0。一般称矩阵A-BK的特征值为调节器极点。如果这些调节器极点均位于s的左半平面内,则当t ( ∞时,有x(t) ( 0。因此我们将这种使闭环系统的极点任意配置到所期望位置的问题,称之为极点配置问题。
下面讨论其可配置条件。我们将证明,当且仅当给定的系统是状态完全能控时,该系统的任意极点配置才是可能的。
4.2.2 可配置条件
考虑由式(4.1)定义的线性定常系统。假设控制输入u的幅值是无约束的。如果选取控制规律为

式中K为线性状态反馈矩阵,由此构成的系统称为闭环反馈控制系统,如图4.1(b)所示。
现在考虑极点的可配置条件,即如下的极点配置定理。
定理4.1 (极点配置定理) 线性定常系统可通过线性状态反馈任意地配置其全部极点的充要条件是,此被控系统状态完全能控。
证明:由于对多变量系统证明时,需要使用循环矩阵及其属性等,因此这里只给出单输入单输出系统时的证明。但我们要着重指出的是,这一定理对多变量系统也是完全成立的。
 必要性。即已知闭环系统可任意配置极点,则被控系统状态完全能控。
现利用反证法证明。先证明如下命题:如果系统不是状态完全能控的,则矩阵A-BK的特征值不可能由线性状态反馈来控制。
假设式(4.1)的系统状态不能控,则其能控性矩阵的秩小于n,即

这意味着,在能控性矩阵中存在q个线性无关的列向量。现定义q个线性无关列向量为,选择n-q个附加的n维向量,使得

的秩为n 。因此,可证明

这些方程的推导可见例4.7。现定义

则有

式中,是一个q维的单位矩阵,是一个n-q维的单位矩阵。
注意到A22的特征值不依赖于K。因此,如果一个系统不是状态完全能控的,则矩阵的特征值就不能任意配置。所以,为了任意配置矩阵A-BK的特征值,此时系统必须是状态完全能控的。
 充分性。即已知被控系统状态完全能控(这意味着由式(4.5)给出的矩阵Q有逆),则矩阵A的所有特征值可任意配置。
在证明充分条件时,一种简便的方法是将由式(4.1)给出的状态方程变换为能控标准形。
定义非奇异线性变换矩阵P为
P = Q W (4.4)
其中Q为能控性矩阵,即
 (4.5)
 (4.6)
式中为如下特征多项式的系数。

定义一个新的状态向量,

如果能控性矩阵Q的秩为n(即系统是状态完全能控的),则矩阵Q的逆存在,并且可将式(4.1)改写为
 (4.7)
其中
 (4.8)
 (4.9)
式(4.8)和(4.9)的推导见例4.8和例4.9。式(4.7)为能控标准形。这样,如果系统是状态完全能控的,且利用由式(4.4)给出的变换矩阵P,使状态向量x变换为状态向量,则可将式(4.1)变换为能控标准形。
选取一组期望的特征值为μ1,μ2,…,μn,则期望的特征方程为
 (4.10)

 (4.11)
由于,从而由式(4.7),此时该系统的状态方程为

相应的特征方程为

事实上,当利用作为控制输入时,相应的特征方程与式(4.11)的特征方程相同,即非奇异线性变换不改变系统的特征值。这可简单说明如下。由于

该系统的特征方程为

对于上述能控标准形的系统特征方程,由式(4.8)、(4.9)和(4.11),可得

 (4.12)
这是具有线性状态反馈的闭环系统的特征方程,它一定与式(4.10)的期望特征方程相等。通过使s的同次幂系数相等,可得

对δi求解上述方程组,并将其代入式(4.11),可得
 (4.13)
因此,如果系统是状态完全能控的,则通过对应于式(4.13)所选取的矩阵K,可任意配置所有的特征值。
证毕
4.2.3 极点配置的算法
现在考虑单输入单输出系统极点配置的算法。
给定线性定常系统

若线性反馈控制律为

则可由下列步骤确定使A-BK的特征值为μ1,μ2,…,μn(即闭环系统的期望极点值)的线性反馈矩阵K(如果μi是一个复数特征值,则其共轭必定也是A-BK的特征值)。
第1步:考察系统的能控性条件。如果系统是状态完全能控的,则可按下列步骤继续。
第2步:利用系统矩阵A的特征多项式

确定出的值。
第3步:确定将系统状态方程变换为能控标准形的变换矩阵P。若给定的状态方程已是能控标准形,那么P = I。此时无需再写出系统的能控标准形状态方程。非奇异线性变换矩阵P可由式(4.4)给出,即

式中Q由式(4.5)定义,W由式(4.6)定义。
第4步:利用给定的期望闭环极点,可写出期望的特征多项式为

并确定出的值。
第5步:此时的状态反馈增益矩阵K为

4.2.4 注释
注意,如果是低阶系统(n ≤3),则将线性反馈增益矩阵K直接代入期望的特征多项式,可能更为简便。例如,若n = 3,则可将状态反馈增益矩阵K写为

进而将该矩阵K代入期望的特征多项式,使其等于,即

由于该特征方程的两端均为s的多项式,故可通过使其两端的s同次幂系数相等,来确定k1,k2,k3的值。如果n = 2或者n = 3,这种方法非常简便(对于n =4,5,6,…,这种方法可能非常繁琐)。
还有其他方法可确定状态反馈增益矩阵K。下面介绍著名的爱克曼公式,可用来确定状态反馈增益矩阵K。
4.2.5 爱克曼公式(Ackermann’s Formula)
考虑由式(4.1)给出的系统,重写为

假设该被控系统是状态完全能控的,又设期望闭环极点为。
利用线性状态反馈控制律

将系统状态方程改写为
 (4.14)
定义

则所期望的特征方程为:

由于凯莱-哈密尔顿定理指出应满足其自身的特征方程,所以
 (4.15)
我们用式(4.15)来推导爱克曼公式。为简化推导,考虑n = 3的情况。对任意正整数,下面的推导可方便地加以推广。
考虑下列恒等式

将上述方程分别乘以,并相加,则可得
 (4.16)
参照式(4.15)可得

也可得到

将上述最后两式代入式(4.16),可得

由于,故
 (4.17)
由于系统是状态完全能控的,所以能控性矩阵

的逆存在。在式(4.17)的两端均左乘能控性矩阵Q的逆,可得

上式两端左乘[0 0 1],可得

重写为

从而给出了所需的状态反馈增益矩阵K。
对任一正整数n,有  (4.18)
式(4.18)称为用于确定状态反馈增益矩阵K的爱克曼方程。
------------------------------------------------------------------------------
[例4.1] 考虑如下线性定常系统

式中

利用状态反馈控制,希望该系统的闭环极点为s = -2±j4和s = -10。试确定状态反馈增益矩阵K。
首先需检验该系统的能控性矩阵。由于能控性矩阵为:

所以得出detQ = -1。因此,rankQ = 3。因而该系统是状态完全能控的,可任意配置极点。
下面,我们来求解这个问题,并用本章介绍的3种方法中的每一种求解。
方法1:第一种方法是利用式(4.13)。该系统的特征方程为:

因此

期望的特征方程为

因此

参照式(4.13),可得

方法2:设期望的状态反馈增益矩阵为

并使和期望的特征多项式相等,可得


因此

从中可得



方法3:第三种方法是利用爱克曼公式。参见式(4.18),可得

由于




可得

显然,这3种方法所得到的反馈增益矩阵K是相同的。使用状态反馈方法,正如所期望的那样,可将闭环极点配置在s = -2±j4和s = -10处。
------------------------------------------------------------------------------
应当注意,如果系统的阶次n等于或大于4,则推荐使用方法1和3,因为所有的矩阵计算都可由计算机实现。如果使用方法2,由于计算机不能处理含有未知参数的特征方程,因此必须进行手工计算。
4.2.6 注释
对于一个给定的系统,矩阵K不是唯一的,而是依赖于选择期望闭环极点的位置(这决定了响应速度与阻尼),这一点很重要。注意,所期望的闭环极点或所期望状态方程的选择是在误差向量的快速性和干扰以及测量噪声的灵敏性之间的一种折衷。也就是说,如果加快误差响应速度,则干扰和测量噪声的影响通常也随之增大。如果系统是2阶的,那么系统的动态特性(响应特性)正好与系统期望的闭环极点和零点的位置联系起来。对于更高阶的系统,。所期望的闭环极点位置不能和系统的动态特性(响应特性)联系起来。因此,在决定给定系统的状态反馈增益矩阵K时,最好通过计算机仿真来检验系统在几种不同矩阵(基于几种不同的所期望的特征方程)下的响应特性,并且选出使系统总体性能最好的矩阵K。
4.3 利用MATLAB求解极点配置问题
用MATLAB易于解极点配置问题。现在我们来解在例4.1中讨论的同样问题。系统方程为

式中,

采用状态反馈控制,希望系统的闭环极点为s =μi(i=1,2,3),其中

现求所需的状态反馈增益矩阵K。
如果在设计状态反馈控制矩阵K时采用变换矩阵P,则必须求特征方程|sI-A|=0的系数、、和。这可通过给计算机输入语句
P = poly(A)
来实现。在计算机屏幕上将显示如下一组系数:
则。
为了得到变换矩阵P,首先将矩阵Q和W输入计算机,其中


然后可以很容易地采用MATLAB完成Q和W相乘。
其次,再求期望的特征方程。可定义矩阵J,使得

从而可利用如下poly(J)命令来完成,即

因此,有

即对于,可采用。
故状态反馈增益矩阵K可由下式确定:



采用变换矩阵P求解该例题的MATLAB程序如MATLAB Program 4.1所示。
MATLAB Program 4.1
%------Pole placement------
%*****Determinaton of state feedback gain matrix k by ues of
%transformation matrix P*****
%*****Enter matrices A and B*****
A=[0 1 0;0 0 1;-1 -5 -6];
B=[0;0;1];
%***** Define the controllability matrix Q*****
Q=[B A*B A^2*B];
%*****Check the rank of matrix Q*****
rank(Q)
ans=
3
%*****Since the rank of Q is 3,arbitrary pole placement is
% possible *****
%*****Obtain the coefficients of the characteristic polynomial
%|sI-A|,This can be done by entering statement poly(A)*****
JA=poly(A)
JA=
1.0000 6.0000 5.0000 1.0000
a1=JA(2);a2=JA(3);a3=JA(4);
%*****Define matrices W and P as follows*****
W=[a2 a1 1;a1 1 0;1 0 0];
P=Q*W;
%*****Obtain the desired chracteristic polynomial by defining
%the following matrix J and entering statement poly(J)*****
J=[-2+j*4 0 0;0 -2-j*4 0;0 0 -10];
JJ=poly(J)
JJ=
1 14 60 200
aa1=JJ(2);aa2=JJ(3);aa3=JJ(4);
%*****State feedback gain matrix K can be given by *****
K=[aa3-a3 aa2-a2 aa1-a1]*(inv(P))
K=
199 55 8
%*****Hence,k1,k2,and k3 are given by *****
k1=K(1),k2=K(2),k3=K(3)
k1=
199
k2=
55
k3=
8
如果采用爱克曼公式来确定状态反馈增益矩阵K,必须首先计算矩阵特征方程φ(A)。
对于该系统

在MATLAB中,利用Polyvalm可计算矩阵多项式φ(A)。对于给定的矩阵J,如前所示,poly(J)可计算特征多项式的系数。对于

利用MATLAB命令Polyvalm(Poly(J),A),可计算下列φ(A),即

实际上,
利用爱克曼公式,MATLAB Program 4.2将求出状态反馈增益矩阵K。
MATLAB Program 4.2
%--------Pole placement---------
%*****Determination of state feedback gain matrix K by use of
%Ackermann’s formula*****
%*****Enter matrices A and B*****
A=[0 1 0;0 0 1; -1 -5 -6];
B=[0;0;1];
%*****Define the controllability matrix Q*****
Q=[B A*B A^2*B];
%*****Check the rank of matrix Q*****
rank(Q)
ans=
3
%*****Since the rank of Q is 3,arbitrary pole placement is
%possible*****
%*****Obtain the desired characteristic polynomial by defining
%the following matrix J and entering statement poly(J)*****
J=[-2+j*4 0 0;0 -2-j*4 0;0 0 -10];
Poly(J)
ans=
1 14 60 200
%*****Compute the characteristic polynomial
%Phi=polyvalm(poly(J),A)*****
Phi=polyvalm(poly(J)A);
%*****State feedback gain matrix K can be given by*****
K=[0 0 1]*(inv(Q))*Phi
K=
55 8
%*****Hence,k1,k2,and k3 are given by*****
k1=k(1),k2=k(2),k3=k(3)
k1=
199
k2=
55
k3=
8
4.4 利用极点配置法设计调节器型系统
考虑如图4.2所示的倒立摆系统。图中,倒立摆安装在一个小车上。这里仅考虑倒立摆在图面内运动的二维问题。
(缺图,见更新版)
图4.2 倒立摆系统
希望在有干扰(如作用于质量m上的阵风施加于小车的这类外力)时,保持摆垂直。当以合适的控制力施加于小车时,可将该倾斜的摆返回到垂直位置,且在每一控制过程结束时,小车都将返回到参考位置x = 0。
设计一个控制系统,使得当给定任意初始条件(由于扰引起)时,用合理的阻尼(如对主导闭环极点有ζ=0.5),可快速地(如调整时间约为2秒)使摆返回至垂直位置,并使小车返回至参考位置(x = 0)。假设M、m和l的值为
M = 2千克,m = 0.1千克,l = 0.5米
进一步设摆的质量集中在杆的顶端,且杆是无质量的。
对于给定的角度θ和(/或)角速度的初始条件,设计一个使倒立摆保持在垂直位置的控制系统。此外,还要求控制系统在每一控制过程结束时,小车返回到参考位置。该系统何初始条件的干扰有效地做出响应(所期望的角θd总为零,并且所期望的小车的位置总在参考位置上。因此,该系统是一个调节器系统)。
这里,我们采用极点配置的状态反馈控制方法来设计控制器。如前所述,对任意极点配置的充要条件为系统状态完全能控。
设计的第一步是推导倒立摆系统的数学模型。
4.4.1 数学建模
参见3.6节,我们已推导了如图3-16 (a)所示的倒立摆系统的数学模型。当角度θ不大时,描述系统动态特性的方程为式(3.55)和(3.56)。将其重写如下为

式中,I是摆杆围绕其重心的转动惯量。由于该系统的质量集中在杆的顶端,所以重心就是摆球的中心。在分析中,假设摆围绕其重心的转动惯量为零,即I = 0。那么,其数学模型为
 (4.19)
 (4.20)
式(4.19)和(4.20)定义了如图4.2所示的倒立摆系统的数学模型(只要θ不大,线性化方程就是有效的)。
式(4.19)和(4.20)可改写为
 (4.21)
 (4.22)
式(4.21)可由式(4.19)和(4.20)消去得到。 式(4.22)可由式(4.19)和(4.20)消去得到。从式(4.21)可得系统的传递函数为

代入给定的数值,且注意到g = 9.81米/秒2,可得

显然,该倒立摆系统在负实轴上有一个极点(s = -4.539),另一个极点在正实轴上(s = 4.539),因此,该系统是开环不稳定的。
定义状态变量为

注意,θ表示摆杆围绕点P的旋转角,x表示小车的位置,将θ和x作为系统的输出,即

又由于θ和x均是易于量测的量。由状态变量的定义和式(4.21)和(4.22),可得
以向量-矩阵方程的形式表示,可得
 (4.23)
 (4.24)
式(4.23)和(4.24)给出了该倒立摆系统的状态空间表达式(注意,该系统的状态空间表达式不是唯一的,存在无穷多个这样的表达式)。
代入给定的M、m和l的值,可得

于是,式(4.23)和(4.24)可重写为:

式中

采用下列线性状态反馈控制方案

为此首先检验该系统是否状态完全能控。由于

的秩为4,所以系统是状态完全能控的。
系统的特征方程为

因此

其次,选择期望的闭环极点位置。由于要求系统具有相当短的调整时间(约2秒)和合适的阻尼(在标准的二阶系统中等价于ξ= 0.5),所以我们选择期望的闭环极点为(i =1,2,3,4),其中

在这种情况下,μ1,和μ2是一对具有ξ= 0.5和ωn = 4的主导闭环极点。剩余的两个极点μ3和μ4位于远离主导闭环极点对的左边。因此,μ3和μ4响应的影响很小。所以,可满足快速性和阻尼的要求。期望的特征方程为

因此

现采用式(4.13)来确定状态反馈增益矩阵K,即

式中P由式(4.4)得到,即

这里Q和W分别由式(4.5)和(4.6)得出。于是


变换矩阵P成为

因此

故状态反馈增益矩阵K为


反馈控制输入为

注意,这是一个调节器系统。期望的角θd总为零,且期望的小车的位置也总为零。因此,参考输入为零(将在4.6节考虑有参考输入时,对应的小车的运动问题)。图4.3为用于倒立摆系统的状态反馈控制结构图(因为该系统中的参考输入总为零,所以在图中没有画出)。
(缺图,见更新版)
图4.3 具有线性状态反馈控制的倒立摆系统
4.4.2 利用MATLAB确定状态反馈增益矩阵K
MATLAB Program 4.3是一种能求出所需状态反馈增益矩阵K的MATLAB程序。
MATLAB Program 4.3
%-------Design of an inverted pendulum control system--------
%*****This program determines the state-feedback gain
%matrix K = [k1,k2 k3 k4] by use of Ackermann’s
%formula*****
%*****Enter matrices A,B,C,and D*****
A=[0 1 0 0;
20.601 0 0 0;
0 0 0 0;
-0.4905 0 0 0];
B=[0;-1;0;0.5];
C=[1 0 0 0;
0 0 1 0];
D=[0;0];
%*****Define the controllability matrix Mand check its rank*****
Q=[B A*B A^2*B A^3*B];
rank(Q)
ans=
4
%*****Since the rank of Q is 4,the system is completely
%state controllable,Hence,arbitrary pole placement is
%possible*****
%*****Enter the desired characteristic polynomial,which
$can be obtained defining the following matrix J and
%entering statement poly(J)*****
J=[-2+2*sqrt(3)*i 0 0 0;
0 -2-2*sprt(3)*i 0 0;
0 0 -10 0;
0 0 0 -10
JJ=poly(J)
JJ=
1.0e+003*
0.0010 0.0240 0.1960 0.7200 1.6000
%*****Enter characteristic polynomial Phi*****
Phi=polyvalm(poly(J),A);
%*****State feedback gain matrix K can be determined
%from*****
K=[0 0 0 1]*(inv(Q))*Phi
K=
-298.1504 -60.6972 -163.09889 -73.3945
4.4.3 所得系统对初始条件的响应
当状态反馈增益矩阵确定后,系统的性能就可由计算机仿真来检验。为了求得对任意初始条件的响应,可按下列步骤进行:
系统的基本方程为状态方程

和线性反馈控制律

将上述控制输入代入状态方程,可得

将有关数据代入上式,即
 (4.25)
下面我们用MATLAB来求所设计的系统对初始条件的响应。
系统的状态方程为式(4.25)。假设初始条件为
 (4.26)
将式(4.25)重写为

式中

将初始条件向量定义为,即

则系统对初始条件的响应可通过求解下列方程得到(对初始条件的响应可参见4.4节),即

式中

MATLAB Program 4.4 将求出由式(4.25)定义的系统对由式(4.26)指定的初始条件的响应。注意,在给出的MATLAB程序中,使用下了列符号:


MATLAB Program 4.4
%------Response to intial condition-------
%*****This program obtains the response of the system
%xdot=(Ahat)x to the given initial condition x(0)*****
%*****Enter matricesA,B,and K to produce matrix AA
%=Ahat*****
A=[ 0 1 0 0;
20.601 0 0 0;
0 0 0 1;
-4.4905 0 0 0];
B=[0;-1;0;0.5];
K=[-298.1504 -60.6972 -163.0989 -73.3945];
AA=A-B*K;
%*****Enter the initial condition matrix BB=Bhat*****
BB=[0.1;0;0;0];
[x,z,t]=step(AA,BB,AA,BB);
x1=[1 0 0 0]*x’;
x2=[0 1 0 0]*x’;
x3=[0 0 1 0]*x’;
x4=[0 0 0 1]*x’;
%*****Plot response curves x1 versus t,x2 versus t,x3 versus t,
%and x4 versus t on one diagram*****
subplot(2,2,1);
plot(t,x1,);grid
title(‘x1(Theta) versus t’)
xlabel(‘t Sec’)
ylabel(‘x1 = Theta’)
subplot(2,2,2);
plot(t,x2);grid
title(‘x2(Theta dot) versus t’)
xlabel(‘t Sec’)
ylabel(‘x2 = Theta dot’)
subplot(2,2,3);
plot(t,x3);grid
title(‘x3 (Displacement of Cart) versus t’)
xlabel(’t Sec’)
ylabel(‘x3 = Displacement of Cart’)
subplot(2,2,4);
plot(t,x4);grid
title(‘x4(Velocity of Cart) versus t’)
xlabel(‘t Sec’)
ylabel(‘x4 = Velocity of Cart’)
图4.4画出了用MATLAB Program 4.4求得的响应曲线。这些曲线表明,当给定倒立摆系统的初始条件θ(0) = 0.1孤度,,x (0) = 0和时,它是如何返回到参考位置(θ= 0,x = 0)的。不难看出,这些响应曲线是令人满意的(这里,我们用subplot命令同时画出几个独立的曲线,并将它们画在同一张纸上)。
注意,该响应曲线依赖于所期望的特征方程(即所期望的闭环极点),这一点非常重要。对不同的期望特征方程,响应曲线(对相同的初始条件)是不同的。
较快的响应通常要求较大的控制信号。在设计这样的控制系统时,最好检验几组不同的期望闭环极点,并确定相应的矩阵K。在完成系统的计算机仿真并检验了响应曲线后,选择系统总体性能最好的矩阵K。系统总体性能最好的标准取决于具体情况,包括应考虑的经济因素。
(缺图,见更新版)
图4.4 倒立摆系统在初始条件作用下的响应

习题
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。