现代控制理论实验指导书(8)

2019-07-13 19:12

实验五 极点配置和状态观测器

一、实验目的

1. 掌握状态反馈和输出反馈的概念及性质。

2. 掌握利用状态反馈进行极点配置的方法。学会用MATLAB求解状态反馈矩阵。 3. 掌握状态观测器的设计方法。学会用MATLAB设计状态观测器。 4. 熟悉分离定理,学会设计带有状态观测器的状态反馈系统。 二、实验内容 1. 已知系统

??300??1????020?x??1?u x???????00?1???1?? y??0.40.26670.333?x3

(1)求解系统的零点、极点和传递函数,并判断系统的能控性和能观测性。

(2)分别选取K=[0 3 0],K=[1 3 2],K=[0 16 /3 –1/3]为状态反馈矩阵,求解闭环系统的零点、极点和传递函数,判断闭环系统的能控性和能观测性。它们是否发生改变?为什么? (3)任选三个输出反馈矩阵,求解闭环系统的零点、极点和传递函数,并判断系统的能控性和能观测性。它们是否发生改变? 为什么? 2. 已知系统

0??01?0??x??0?u ???001 x???????0?2?3???1?? y??100?x

(1)求解系统的极点。绘制系统的单位阶跃响应曲线,并确定系统的超调量和上升时间。 (2)求解状态反馈矩阵K,使闭环系统的极点为?3和?13。求解状态反馈系统?j22的传递函数。绘制该闭环系统的单位阶跃响应曲线,并确定系统的超调量和上升时间。与

原系统比较, 性能是否改善?

(3)设计一个全维观测器,使观测器的极点为-5,-5,-5。仿真状态观测器观测到的状态。 (4)设计一个降维观测器,使观测器的极点为-5。

(5)建立带全维状态观测器的状态反馈系统的状态空间表达式。求解带全维状态观测器的状态反馈系统的极点,是否是状态反馈系统和观测器的极点的组合?为什么?求解该闭环系统的传递函数,与状态反馈系统的传递函数是否一致?为什么?绘制该闭环系统的单位阶跃响应曲线,并确定系统的超调量和上升时间。与状态反馈系统的单位阶跃响应曲线比较,验证两种反馈是否等价。

三、附录

1. 状态反馈和输出反馈

设线性定常系统的状态空间表达式为

??Ax?Bu (3-5-1) xy?Cx

如果采用状态反馈控制规律u?r?Kx,其中r是参考输入,则状态反馈闭环系统的

状态空间表达式为

??(A?BK)x?Br xy?Cx (3-5-2)

其传递函数为Gk?C(sI?(A?BK)]?1B

如果采用输出反馈控制律u?r?Hy,其中r是参考输入,则输出反馈闭环系统的状态空间表达式为

??(A?BHC)x?Br xy?Cx (3-5-3)

其传递函数为Gk?[C(sI?(A?BHC)]?1B

2. 极点配置

如果SISO线性定常系统完全能控,则可通过适当的状态反馈, 将闭环系统极点配置到任意期望的位置。

假定期望的闭环极点为?1,?2,…,?n,则闭环系统的特征方程为

f*(s)?sI?(A?BK)?(s??1)(s??2)?(s??n)

?sn?a1sn?1???an?1s?an (3-5-4) 原系统的特征方程为

***f(s)?sI?A?sn?a1sn?1???an?1s?an (3-5-5)

状态反馈矩阵K可由下面两种方法得出。

1) K?[a?a]LUc (3-5-6) 其中 [a*?a]T?an?an*T?1?1?*an?1?an?1?a1?a1**? (3-5-7)

Uc?BABA2B?An?1B (3-5-8)

?an?1?a?n?2 L?????a1??1an?2?a11??an?3?1?? (3-5-9) ???1????1??2) K??0?01?Ucf*(A)(Ackermann公式) (3-5-10)

***其中 f*(A)?An?a1An?1???an?1A?anI

MATLAB提供的函数acker( )是用Ackermann公式求解状态反馈阵K。该函数的调用

格式为

K?acker(A,B,P)

其中A和B分别为系统矩阵和输入矩阵。P是期望极点构成的向量。

MATLAB提供的函数place( )也可求出状态反馈阵K。该函数的调用格式为

K?place(A,B,P)

函数place( )还适用于多变量系统极点配置,但不适用含有多重期望极点的问题。函数acker( )不适用于多变量系统极点配置问题,但适用于含有多重期望极点问题。 例5-1 已知系统的状态方程为

?21??1????xx?u ?????11??2?试求出使闭环系统极点为-1, 和-2的状态反馈阵K。 在命令窗中运行下列命令

>> A=[2 1;-1 1];B=[1;2];p=[-1 -2];k=acker(A,B,p) 返回 k =

4 1

或运行下列命令

>> A=[2 1;-1 1];B=[1;2];p=[-2 -1];k=place(A,B,p) 返回 k =

4.0000 1.0000 3. 部分极点配置

如果系统不完全能控的,则只能配置能控部分的极点,而不能控的极点不能任意配置,这种配置其中一部分极点的问题称为部分极点配置。

我们编制的函数bfjdpz( )可实现SISO系统的部分极点配置。该函数的调用格式为:

K?bfjdpz(A,B,C)

其中A,B分别为系统矩阵和输入矩阵。C为输出矩阵不能缺省,自然可任意设置。该函数的程序如下。

function K=bfjdpz(A,B,C) %部分极点配置 M=ctrb(A,B); m=rank(M); n=length(A);

[Af,Bf,Cf,Tf]=ctrbf(A,B,C) %按能控性进行分解 Ac=Af(n-m+1:n,n-m+1:n); Bc=Bf(n-m+1:n);

Pc=input('输入能配置的极点组成的向量') Kc=acker(Ac,Bc,Pc);

Kf=[ones(1,n-m) Kc]; %Kf为按能控性分解状态空间表达式对应的状态方馈阵,不能控

状态变量对应的反馈系数可任意设置

K=Kf*Tf;

例5-2 已知系统状态方程为

??100??0??x??0?u ???001 x???????0?31???1??试判断是否可以采用状态反馈分别配置以下两组闭环极点:{-2,-2,-1};{-2,-2,-3}。若

能配置,求出反馈阵K。

先运行下列命令判断能控性

>> A=[-1 0 0;0 0 1;0 -3 1];B=[0 0 1]';Uc=ctrb(A,B);m=rank(Uc) 返回 m = 2

可见系统是不完全能控的,而且其中有两个极点可以任意配置。在命令窗中调用此函数

>> K=bfjdpz(A,B,C) 返回 Af =

-1 0 0 0 0 -1 0 3 1 Bf =

0 0

-1 Cf =

-1 1 -1 Tf =

-1 0 0 0 1 0 0 0 -1

输入能配置的极点组成的向量

由上述能控性分解可见,极点-1是不能控的,另外两个极点是能控的。可判断利用状态反馈第一组极点可以配置,而第二组极点不能配置。在命令窗中输入第一组极点中能控的两个极点,即 [-2 -2] 返回 Pc =

-2 -2 K =

-1 1 5 4.状态观测器 1) 全维状态观测器

如果线性定常系统?(A,B,C)完全能观测,则可构造全维(基本)观测器。全维(基本)状态观测器的状态方程为

???(A?LC)x??Bu?Ly (3-5-11) x观测器的反馈矩阵L为LT??0?01?(Vo)?1fo(AT),其中Vo为系统的能观测矩

T*阵。fo(s)?(s??1)(s??2)?(s??n),其中?1,?2,…,?n 为期望的状态观测器的极点。观测器设计是极点配置的对偶问题,故可利用函数acker( )和place( )进行求解。

例5-3已知系统的状态空间表达式为

*??11??0????xx?u ????0?2??1?y??20?x

设计一个状态观测器使其极点为-10,-10。 在命令窗中运行下列命令

>> A=[-1 1;0 -2];B=[0 1]';C=[2 0];p=[-10 -10];L=(acker(A',C',p))’ 返回 L =


现代控制理论实验指导书(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:刑事诉讼法(复习题)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: