4.8 Matlab问题能控能观.ppt_第1页
4.8 Matlab问题能控能观.ppt_第2页
4.8 Matlab问题能控能观.ppt_第3页
4.8 Matlab问题能控能观.ppt_第4页
4.8 Matlab问题能控能观.ppt_第5页
免费预览已结束,剩余59页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Ch.4 线性系统的能控性和能观性,Matlab问题(1/1),4.8 Matlab问题 本章涉及的计算问题主要有 状态能控性/能观性判定、 系统能控能观分解、 能控/能观规范形变换以及 能控/能观规范形实现。 下面分别介绍基于Matlab的上述问题的程序编制和计算方法。,状态能控性与能观性判定 (1/2),4.8.1 状态能控性与能观性判定 状态能控性与能观性是线性系统的重要结构性质,描述了系统的本质特征,是系统分析和设计的主要考量因素。 Matlab提供了用于状态能控性、能观性判定的 能控性矩阵函数ctrb()、 能观性矩阵函数obsv()和 能控性/能观性格拉姆矩阵函数gram(), 通

2、过对这些函数计算所得的矩阵求秩就可以很方便地判定系统的状态能控性、能观性。,状态能控性与能观性判定 (2/2),用户也可以根据能控性、能观性的各种判据,自己编制程序和函数来判定这两个系统的结构性质。 下面分别介绍 状态能控性判定 状态能观性判定,状态能控性判定 (1/10),1. 状态能控性判定 无论是连续还是离散的线性定常系统,采用代数判据判定状态能控性需要计算能控性矩阵。 Matlab提供的函数ctrb()可根据给定的系统模型,计算能控性矩阵 Qc=B AB An-1B 能控性矩阵函数ctrb()的主要调用格式为: Qc = ctrb(A,B) Qc = ctrb(sys) 其中,第1种输

3、入格式为直接给定系统矩阵A和输入矩阵B,第2种格式为给定状态空间模型sys。 输出矩阵Qc为计算所得的能控性矩阵。,状态能控性判定 (2/10),基于能控性矩阵函数ctrb()及能控性矩阵Qc的秩的计算,就可以进行连续线性定常系统的状态能控性的代数判据判定。 Matlab问题4-1 试在Matlab中判定例4-2的如下系统的状态能控性。,状态能控性判定(3/10),Matlab程序m4-1如下。 Matlab程序m4-1中的函数Judge_contr()通过调用能控性矩阵函数ctrb()和计算矩阵秩的函数rank(),完成能控性代数判据的判定。 函数Judge_contr()的源程序为,状态能

4、控性判定(4/10),Matlab程序m4-1执行结果如下。 表明所判定的系统状态不能控。,在上述程序和函数中,使用了2个Matlab基本矩阵函数rank()和size(),其定义和使用方法如下 1) 计算矩阵秩的函数rank()。 求矩阵秩的函数rank()的调用格式为: k = rank(A) k = rank(A,tol) 其中输入A为矩阵,输出k为矩阵A的秩。,状态能控性判定(5/10),虽然Matlab求矩阵秩采用了数值特性良好的计算奇异值的方法,但考虑到计算机浮点计算过程产生的数值计算误差可能使得判定秩有偏差,第2种调用格式可以给定判定矩阵奇异值的容许误差, 而对第1种格式系统将自

5、动设定一个容许误差tol。 2) 计算数组各维大小的函数size()。 函数size()在Matlab编程中非常有用,它可以在各个调用函数中随时求取所处理的数组的各维数的大小,而没有必要将数组的维数大小作为变量(参量)参与函数调用,所设计的程序简洁、易读易懂。,状态能控性判定(6/10),函数size()的主要调用格式为: d = size(X) m = size(X,dim) d1,d2,d3,.,dn = size(X) 其中,输出d为数组X的各维的大小组成的1维数组; m为数组X的第dim维的大小; d1,d2,d3,.,dn为数组X的各维的大小。 如,d=size(1 2 3; 4 5

6、 6)的输出为数组d=2 3, 而m,n =size(1 2 3; 4 5 6)的输出则是m和n分别为2和3。,状态能控性判定(7/10),由4.3.1节的定理4-12可知,线性定常离散系统(G,H)状态能控的充分必要条件为 rank Qc=rank Qc Gn 因此判定线性定常离散系统状态能控性的代数判据也需计算能控性矩阵 Qc=H GH Gn-1H 与连续系统类似,基于能控性矩阵函数ctrb()可以判定线性定常离散系统状态能控性。,状态能控性判定(8/10),状态能控性判定(9/10),Matlab问题4-2 试在Matlab中判定例4-12的如下系统的状态能控性。,Matlab程序m4-

7、2如下。,状态能控性判定(10/10),Matlab程序m4-2执行结果如下。,状态能观性判定 (1/5),2. 状态能观性判定 无论对连续还是离散的线性定常系统,采用代数判据判定状态能观性需要计算定义的能观性矩阵 并要求能观性矩阵Qo的秩等于状态空间维数。 Matlab提供的函数obsv()可根据给定的系统模型计算能观性矩阵。,状态能观性判定 (2/5),能观性矩阵函数obsv()的主要调用格式为 Qo = obsv(A,C) Qo = obsv(sys) 其中第1种调用格式为直接输入系统矩阵A和输出矩阵C,第2种格式为输入状态空间模型sys; 输出矩阵Qo为计算所得的能观性矩阵。 基于能观

8、性矩阵函数obsv()及能观性矩阵Qo秩的计算,就可以进行连续和离散线性定常系统的状态能观性的代数判据判定。,状态能观性判定(3/5),Matlab问题4-3 试在Matlab中判定例4-13的如下系统的状态能观性。,Matlab程序m4-3如下。,状态能观性判定(4/5),其中函数Judge_obsv()的源程序为,Matlab程序m4-3执行结果如下。,状态能观性判定(5/5),其中函数Judge_obsv()的源程序为,Matlab程序m4-3执行结果如下。 表明所判定的系统状态能观。,线性系统的能控能观分解(1/2),4.8.2 线性系统的能控能观分解 4.5节介绍的线性定常系统的能控

9、能观分解,让我们清楚地了解动态系统哪些哪些子空间(子系统)状态完全能控,哪些完全不能控; 哪些子空间状态完全能观,哪些完全不能观。 在控制系统设计与综合时,能更好地有针对性地进行设计与综合。,线性系统的能控能观分解(2/2),Matlab提供了用于 状态能控性分解的函数ctrbf()和 状态能观性分解的函数obsvf()。 基于这2个函数,用户可以通过逐步分解,求得系统的能控能观分解。 为此,编著者设计了用于能控能观分解的Matlab函数ctrb_obsvf()。,能控性分解函数ctrbf()(1/5),1. 能控性分解函数ctrbf() 能控性分解函数ctrbf()的主要调用格式为 A_c,

10、B_c,C_c,Tc = ctrbf(A,B,C) A_c,B_c,C_c,Tc = ctrbf(A,B,C,tol) 其中,输入格式A,B和C为需按能控性分解的状态空间模型的各矩阵,tol为计算容许误差; 输出的A_c,B_c和C_c为能控性分解之后的状态空间模型的各矩阵; Tc为变换矩阵,系统进行的状态变换为,能控性分解函数ctrbf()(2/5),经函数ctrbf()能控性分解后,系统的状态空间模型为,Matlab问题4-4 试在Matlab中对例4-15的系统进行能控性分解。,能控性分解函数ctrbf()(3/5),Matlab程序m4-4如下。,Matlab程序m4-4执行结果如下。

11、,例4-15计算结果 (能控部分),结果完全等价,能控性分解函数ctrbf()(4/5),由于变换矩阵不唯一且状态变量向量中变量排列的次序不同,所得到的能控性分解模型也不唯一。 函数ctrbf()的能控性分解变换矩阵和状态变量的排列与4.5.1节的能控性分解定理4-20的有所不同,因此得到的能控性分解后的状态空间模型也有所不同,但本质是一致的。,能控性分解函数ctrbf()(5/5),与4.5.1节内容相对应,编著者开发了一个能控性分解函数ctrbf2(),可用于求取定理4-20的能控分解,其主要调用格式为 A_c,B_c,C_c,Tc,nc = ctrbf2(A,B,C) A_c,B_c,C

12、_c,Tc,nc = ctrbf2(A,B,C,tol) 其中,输出nc为能控子系统的维数,其他输入输出格式与Matlab函数ctrbf()一致。 读者可以使用该函数方便地将系统按能控性进行结构分解,这里不再赘述。,能观性分解函数obsvf()(1/5),2. 能观性分解函数obsvf() 能观性分解函数obsvf()的主要调用格式为 A_o,B_o,C_o,To = obsvf(A,B,C) A_o,B_o,C_o,To = obsvf(A,B,C,tol) 其中输入格式与能控性分解函数ctrbf()一致; 输出的A_o,B_o和C_o为能观性分解之后的状态空间模型的各矩阵; To为变换矩阵

13、,系统进行的状态变换为,能观性分解函数obsvf()(2/5),经函数obsvf()能观性分解后,系统的状态空间模型为,与能控性分解函数ctrbf()的使用方法完全一致,读者可非常方便地使用该函数进行系统的能观性分解(这里不再赘述)。 同样地,由于变换矩阵不唯一以及状态变量向量中变量排列的次序不同,所得到的能观性分解模型也不唯一。 函数obsv()得到的能观性分解状态空间模型与4.5.2节的能观性分解定理4-21的有所不同,但本质是一致的。,能观性分解函数obsvf()(3/5),与4.5.2节内容相对应,编著者开发了一个能观性分解函数obsvf2()可用于求取定理4-21的能观性分解,其主要

14、调用格式为 A_o,B_o,C_o,To,no = obsvf2(A,B,C) A_o,B_o,C_o,To,no = obsvf2(A,B,C,tol) 其中输出no为能观子系统的维数,其他输入输出与Matlab函数obsvf()一致。,能观性分解函数obsvf()(4/5),Matlab问题4-5 试在Matlab中对例4-16的系统进行能观性分解。,Matlab程序m4-5如下。,能观性分解函数obsvf()(5/5),Matlab程序m4-5执行结果如下。,例4-16计算结果 (能观部分),结果完全一致,能控能观分解函数ctrb_obsvf()(1/4),3. 能控能观分解函数ctrb

15、_obsvf() Matlab没有提供直接进行系统能控能观分解的函数,编著者根据4.5.3介绍的能控能观分解方法,开发了直接进行能控能观分解的函数ctrb_obsvf()。 能控能观分解函数ctrb_obsvf()的主要调用格式为 Aco,Bco,Cco,Tco,nco = ctrb_obsvf(A,B,C) Aco,Bco,Cco,Tco,nco = ctrb_obsvf(A,B,C,tol) 其中输入格式与能控性分解函数ctrbf()和能观性分解函数obsvf()一致; 输出的Aco,Bco和Cco为能控能观分解之后的状态空间模型的各矩阵;,能控能观分解函数ctrb_obsvf()(2/4

16、),Tco为变换矩阵,系统进行的状态变换为 nco为分解后4个子系统的维数组成的数组。 在这里,变换后状态变量的排列与4.5.3节定理4-22一致,为 能控但不能观、 能控又能观、 不能控也不能观以及 不能控但能观, nco中各元素即为按照状态变量排列顺序的4个子系统的维数。,能控能观分解函数ctrb_obsvf()(3/4),Matlab问题4-6 试在Matlab中对例4-17的如下系统进行能控能观分解。,Matlab程序m4-6如下。,能控能观分解函数ctrb_obsvf()(4/4),Matlab程序m4-6执行结果如下。 该系统经能控能观分解后,得到3个1维子系统,分别为能控但不能观

17、、能控又能观、不能控但能观。,例4-17计算结果,变量排列顺序不同, 结果完全一致,能控规范形和能观规范形 (1/2),4.8.3 能控规范形和能观规范形 4.6节介绍的线性定常系统的能控规范形和能观规范形,使得系统分析、设计与综合问题得以简化,更加有助于理解和问题求解。 建立系统的能控规范形和能观规范形是系统分析、设计与综合问题中的重要问题。 Matlab中提供的建立系统规范形的函数canon()只能用于建立对角线规范形和SISO系统的能控规范I形,没有提供建立其他规范形的可直接调用的函数。 编著者根据建立规范形的方法,开发了相应的建立能控规范形的函数ctr_canon()和建立能观规范形的

18、函数obsv_canon()。,能控规范形和能观规范形 (2/2),下面就分别介绍建立 能控规范形 能观规范形 的编著者设计的Matlab函数。,能控规范形(1/4),1. 能控规范形 能控规范形的函数ctr_canon()可以处理SISO和MIMO系统的能控规范形的建立问题,包括4.5.1和4.5.3节介绍的能控规范I和II形、旺纳姆能控规范II形和龙伯格能控规范II形等4种常用的能控规范形。 函数ctr_canon的主要调用格式为: sys_ctr,Tc=ctr_canon(sys, type) 其中,sys为需变换的系统的状态空间模型; sys_ctr为变换所得的状态空间模型; Tc为对

19、系统sys所作的变换的变换矩阵; type为所求的能控规范形的类型。,能控规范形(2/4),对应于能控规范I和II形、旺纳姆能控规范II形和龙伯格能控规范II形4种模型,符号串type分别为 1st、 2nd、 Wonham和 Luenb。,能控规范形(3/4),Matlab问题4-7 试在Matlab中求解如下SISO系统的能控规范I形和II形。,Matlab程序m4-7如下。,能控规范形(4/4),Matlab程序m4-7执行结果如下。,例4-19计算结果,结果完全一致,能控规范形(5/4),Matlab问题4-8 试在Matlab中求解例4-21的如下MIMO系统的旺纳姆能控规范II形。

20、,Matlab程序m4-8如下。,能控规范形(6/4),Matlab程序m4-8执行结果如下。,例4-21计算结果,结果完全一致,能观规范形(1/4),2. 能观规范形 能观规范形的函数obsv_canon()可以处理SISO和MIMO系统的能观规范形的建立问题,包括4.5.2节介绍的能观规范I形和能观规范II形2种常用的能观规范形。 函数obsv_canon()的主要调用格式为: sys_obsv,To=obsv_canon(sys, type) 其中sys为需变换的系统的状态空间模型; sys_obsv为变换所得的状态空间模型; To为对系统sys所作的变换的变换矩阵, type为所求的能

21、观规范形的类型。,能观规范形(2/4),对应于能观规范I形和能观规范II形2种模型,符号串type分别为 1st和 2nd。,能观规范形(3/4),Matlab问题4-9 试在Matlab中求解如下SISO系统的能观规范I形和II形。,Matlab程序m4-9如下。,能观规范形(4/4),Matlab程序m4-9执行结果如下。,例4-20计算结果,结果完全一致,系统实现(1/2),4.8.4 系统实现 4.6节介绍的系统实现问题,讨论的是由传递函数阵如何求系统的状态空间模型实现以及最小实现问题,所实现的状态空间模型主要包括能控规范I/II形、能观规范I/II形。 Matlab中提供的建立状态空

22、间模型的系统实现函数ss()和canon()只能用于建立对角线规范形和SISO系统的能控规范I形,没有提供建立其他规范形的可直接调用的函数。 编著者根据系统实现的方法,开发了相应的建立SISO与MIMO系统的能控规范形的函数ctr_canon和建立能观规范形的函数obsv_canon。,系统实现(2/2),下面就分别介绍建立 能控规范形 能观规范形 的编著者设计的Matlab函数。,能控规范形(1/3),1. 能控规范形 由传递函数阵求能控规范形实现的函数ctr_canon与4.8.3节介绍的能控规范形的函数ctr_canon()为一个函数,但输入的格式不同。通过该函数,用户可以方便地求解SI

23、SO和MIMO系统的传递函数矩阵的能控规范I/II形2种实现。 应用于系统实现问题时,函数ctr_canon的主要调用格式为 sys_ctr=ctr_canon(sys, type) 其中sys为系统传递函数阵模型; sys_ctr为所求得的能控规范形实现, type为所求的能控规范形的类型。 对应于能控规范I/II形2种模型,符号串type分别为1st和2nd。,能控规范形(2/3),Matlab问题4-10 试在Matlab中求解例4-23的如下系统的能控规范I形实现。,Matlab程序m4-10如下。,能控规范形(3/3),Matlab程序m4-10执行结果如下。,例4-23计算结果,结

24、果完全一致,能观规范形(1/3),2. 能观规范形 由传递函数阵求系统能观规范形实现的函数obsv_canon与4.8.3节介绍的建立能观规范形的函数obsv_canon()为一个函数,但输入的格式不同。 通过该函数,用户可以方便地求解SISO和MIMO系统的传递函数矩阵的能观规范I/II形2种实现。 应用于系统实现问题时,函数obsv_canon的主要调用格式为 sys_obsv=obsv_canon(sys, type) 其中,sys为系统传递函数阵模型, sys_obsv为所求得的能观规范形实现, type为所求的能观规范形的类型。,能观规范形(2/3),对应于能观规范I/II形2种模型

25、,符号串type分别为1st和2nd。 Matlab问题4-11 试在Matlab中求解Matlab问题4-10的系统的能观规范II形。 Matlab程序m4-11如下。,能观规范形(3/3),Matlab程序m4-11执行结果如下。,4.7.2节计算结果,结果完全一致,最小实现(1/1),3. 最小实现 系统的状态空间最小实现是指传递函数阵实现中维数最小的实现,其最小实现的充分必要条件为状态能控且能观。 最小实现代表了系统最简单、最经济的结构,它给系统分析与综合带来低成本、高效率。 系统实现主要有求 状态空间模型的最小实现和 传递函数阵的最小实现。 下面分别介绍如何运用Matlab求解这2个

26、问题。,状态空间模型的最小实现(1/5),(1) 状态空间模型的最小实现 求状态空间模型的最小实现的方法是对其进行能控能观分解,所求得的能控能观子系统即为其最小实现。 Matlab提供了可以直接对系统的状态空间模型求最小实现的函数minreal()。 函数minreal()的主要调用格式为 min_sys,T = minreal(sys) 其中输入sys为给定的状态空间模型; min_sys为求得的最小实现状态空间模型; T为求最小实现进行的模型变换的变换矩阵。,MIMO传递函数阵的最小实现(2/5),函数min_tf2ss()的源程序如下:,MIMO传递函数阵的最小实现(3/5),函数min_tf

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论